diff options
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 88 |
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: |