summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml53
1 files changed, 53 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 00000000..119d3825
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,53 @@
+default:
+ tags:
+ - docker
+ # Image from https://hub.docker.com/_/gcc/ based on Debian
+ image: gcc:9
+
+autotools:
+ stage: build
+ before_script:
+ - apt-get update &&
+ apt-get install -y libogg-dev
+ libtool-bin gettext zip
+ doxygen graphviz
+ # Create an unpriviledged user, required for tests.
+ - adduser --disabled-password --gecos "Gitlab CI" flac
+ script:
+ - ./autogen.sh
+ - ./configure
+ - make
+ - su -c 'make distcheck' flac
+
+cmake:
+ stage: build
+ before_script:
+ - apt-get update &&
+ apt-get install -y libogg-dev
+ cmake ninja-build
+ doxygen graphviz
+ # Create an unpriviledged user, required for tests.
+ - adduser --disabled-password --gecos "Gitlab CI" flac
+ script:
+ - mkdir _build
+ - cmake -S . -B _build -G "Ninja" -DCMAKE_BUILD_TYPE=Release
+ - chown -R flac .
+ - su -c 'cmake --build _build' flac
+ - su -c 'cd _build && ctest -V' flac
+
+makefile:
+ stage: build
+ before_script:
+ - apt-get update &&
+ apt-get install -y libogg-dev
+ # Create an unpriviledged user, required for tests.
+ - adduser --disabled-password --gecos "Gitlab CI" flac
+ script:
+ # The makefile doesn't create the `objs` tree it expects to use.
+ - mkdir -p objs/release/lib
+ - mkdir -p objs/release/bin
+ - mkdir -p objs/debug/lib
+ - mkdir -p objs/debug/bin
+ - chown -R flac .
+ - su -c 'make -f Makefile.lite' flac
+ - su -c 'make -f Makefile.lite test' flac