summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml88
1 files changed, 49 insertions, 39 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f35992f..5c8758e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,22 +6,25 @@
variables:
REGISTRY_HUB: "registry.gitlab.com/sane-project/ci-envs"
CONFIGURE_MINI: "--enable-silent-rules"
- CONFIGURE_FULL: "--with-usb --enable-avahi --enable-pnm-backend"
+ CONFIGURE_FULL: "--with-usb --enable-avahi --enable-pnm-backend --with-libcurl"
stages:
- - prepare
+ - tarball
- compile
- - archive
+ - snapshot
- release
-prepare:
- image: $REGISTRY_HUB:debian-stretch-mini
- stage: prepare
+# This job creates the source tarball that is the *sole* input to our
+# compile stage. The job is meant to be run on the stable release of
+# Debian GNU/Linux.
+
+make-dist:
+ image: $REGISTRY_HUB:debian-buster-mini
+ stage: tarball
script:
- git ls-files | xargs ./tools/style-check.sh
- ./autogen.sh
- ./tools/create-changelog.sh
- - ./tools/update-upstreams.sh
- ./configure
- make dist
artifacts:
@@ -38,15 +41,26 @@ prepare:
- ./configure $CONFIGURE_OPTS
- make -j2 -k $MAKE_FLAGS
-compile:debian-9-mini:
- image: $REGISTRY_HUB:debian-stretch-mini
+debian-9-full:
+ image: $REGISTRY_HUB:debian-stretch-full
+ variables:
+ CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
+ MAKE_FLAGS: "CFLAGS=-Werror CXXFLAGS=-Werror"
+ <<: *compile_definition
+
+debian-10-mini:
+ image: $REGISTRY_HUB:debian-buster-mini
variables:
CONFIGURE_OPTS: "$CONFIGURE_MINI"
MAKE_FLAGS: "CFLAGS=-Werror"
<<: *compile_definition
-compile:debian-9-full:
- image: $REGISTRY_HUB:debian-stretch-full
+# In addition to the regular compile check, the full Debian stable
+# environment is used to keep some of the HTML documentation that's
+# available from our website up-to-date.
+
+debian-10-full:
+ image: $REGISTRY_HUB:debian-buster-full
variables:
CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
MAKE_FLAGS: "CFLAGS=-Werror CXXFLAGS=-Werror"
@@ -62,43 +76,34 @@ compile:debian-9-full:
- doc/sanei-html
expire_in: 1 day
-compile:debian-10-mini:
- image: $REGISTRY_HUB:debian-buster-mini
- variables:
- CONFIGURE_OPTS: "$CONFIGURE_MINI"
- #MAKE_FLAGS: "CFLAGS=-Werror"
- <<: *compile_definition
-
-compile:debian-10-full:
- image: $REGISTRY_HUB:debian-buster-full
- variables:
- CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
- #MAKE_FLAGS: "CFLAGS=-Werror"
- <<: *compile_definition
-
-compile:fedora-29-clang:
- image: $REGISTRY_HUB:fedora-29-clang
+fedora-31-clang:
+ image: $REGISTRY_HUB:fedora-31-clang
variables:
CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
<<: *compile_definition
-compile:fedora-30-clang:
- image: $REGISTRY_HUB:fedora-30-clang
+alpine-3.11-musl:
+ image: $REGISTRY_HUB:alpine-3.11-musl
variables:
CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
<<: *compile_definition
-compile:alpine-3.10-musl:
- image: $REGISTRY_HUB:alpine-3.10-musl
- variables:
- CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
- <<: *compile_definition
+# This snapshot stage job makes sure that the source tarball has all
+# it needs to rebuild itself, install everything built and cleans up
+# without leaving any droppings behind when uninstalling. The build
+# result will be available as a snapshot for a limited time period.
+# People that prefer a source tarball to work with should use this
+# snapshot.
+# Some HTML documentation derived from this project's source is also
+# uploaded for use by our website so it uses the latest information.
+# It gets these artifacts from the full compile job on Debian stable,
+# hence the dependency.
-archive:
- image: $REGISTRY_HUB:debian-stretch-full
- stage: archive
+make-distcheck:
+ image: $REGISTRY_HUB:debian-buster-full
+ stage: snapshot
dependencies:
- - compile:debian-9-full
+ - debian-10-full
script:
- tar xzf sane-backends-*.tar.gz --strip-components=1
- rm sane-backends-*.tar.gz
@@ -109,8 +114,13 @@ archive:
- sane-backends-*.tar.gz
- lists
- doc/sanei-html
+ expire_in: 90 days
+
+# For release tags only, this manual job handles putting all of the
+# releasables on the Project Releases page. See the script for more
+# details.
-release:
+upload:
image: alpine
stage: release
before_script: