Skip to content
Snippets Groups Projects
Unverified Commit 313fdfb1 authored by Tomáš Pecka's avatar Tomáš Pecka Committed by Tomáš Pecka
Browse files

Move release jobs to separate repository

parent 6abe0a87
No related branches found
No related tags found
1 merge request!110Move release jobs to separate repository
Pipeline #51897 passed with warnings
......@@ -3,19 +3,26 @@ image: alpine:3.9
stages:
- build
- test
- package
- release
- notify
 
.template:only:merge: &only-merge
only:
- merge_requests
.template:only:master: &only-master
only:
refs:
- master
.template:only:tag: &only-tag
only:
- /^v.*$/
except:
- branches
 
#######################################################################################################################
#######################################################################################################################
#######################################################################################################################
# build + test
 
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro.yml
.template:build:
dependencies: []
stage: build
......@@ -37,13 +44,32 @@ stages:
- cd build
- ctest . --output-on-failure -j $(grep -c processor /proc/cpuinfo)
 
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_alpine.yml
.config:alpine: &distro_alpine
<<: *only-merge
image: alpine:3.9
only:
- merge_requests
.config:archlinux: &distro_archlinux
<<: *only-merge
image: archlinux/base
.config:builder: &distro_builder
image: gitlab.fit.cvut.cz:5000/algorithms-library-toolkit/ci-docker-images/alt-builder:latest
.config:debian: &distro_debian
<<: *only-merge
image: amd64/debian:testing-slim
.config:opensuse:leap: &distro_opensuse-leap
<<: *only-merge
image: opensuse/leap:latest
.config:ubuntu:lts: &distro_ubuntu-lts
<<: *only-merge
image: ubuntu:latest
.config:ubuntu:rolling: &distro_ubuntu-rolling
<<: *only-merge
image: ubuntu:rolling
 
# -----------------------------------------------------------------------------
 
......@@ -61,14 +87,6 @@ test:alpine:
before_script:
- apk add --no-cache bash bc coreutils python3 cmake libexecinfo libxml2 tclap readline qt5-qtbase qt5-qtbase-x11 graphviz jsoncpp
 
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_arch.yml
.config:archlinux: &distro_archlinux
image: archlinux/base
only:
- merge_requests
# -----------------------------------------------------------------------------
 
build:archlinux:
......@@ -76,7 +94,6 @@ build:archlinux:
extends: .template:build
before_script:
- pacman -Syu --noconfirm base-devel cmake ninja python libxml2 tclap readline qt5-base graphviz jsoncpp
# - pacman -Syu --noconfirm binutils && strip --remove-section=.note.ABI-tag /usr/lib/libQt5Core.so.5 # qt hack
 
test:archlinux:
<<: *distro_archlinux
......@@ -85,15 +102,8 @@ test:archlinux:
- build:archlinux
before_script:
- pacman -Syu --noconfirm base-devel bash bc coreutils cmake ninja python libxml2 tclap readline qt5-base graphviz jsoncpp
# - pacman -Syu --noconfirm binutils && strip --remove-section=.note.ABI-tag /usr/lib/libQt5Core.so.5 # qt hack
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_builder.yml
 
.config:builder: &distro_builder
image: gitlab.fit.cvut.cz:5000/algorithms-library-toolkit/ci-docker-images/alt-builder:latest
except:
- tags
# -----------------------------------------------------------------------------
 
.build:builder:
<<: *distro_builder
......@@ -103,8 +113,6 @@ test:archlinux:
<<: *distro_builder
extends: .template:test
 
# -----------------------------------------------------------------------------
build:builder:gcc:
extends: .build:builder
 
......@@ -123,22 +131,13 @@ test:builder:clang:
dependencies:
- build:builder:clang
 
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_debian.yml
.config:debian: &distro_debian
image: amd64/debian:testing-slim
only:
- merge_requests
# -----------------------------------------------------------------------------
 
build:debian:
<<: *distro_debian
extends: .template:build
before_script:
- apt-get update
- apt-get install -y build-essential cmake ninja-build python3 libxml2-dev libtclap-dev libreadline-dev qtbase5-dev graphviz-dev libjsoncpp-dev
- apt-get update && apt-get install -y build-essential cmake ninja-build python3 libxml2-dev libtclap-dev libreadline-dev qtbase5-dev graphviz-dev libjsoncpp-dev
 
test:debian:
<<: *distro_debian
......@@ -146,16 +145,7 @@ test:debian:
dependencies:
- build:debian
before_script:
- apt-get update
- apt-get install -y build-essential bash cmake libxml2 libreadline7 libqt5widgets5 libqt5xml5 graphviz libjsoncpp1
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_opensuse.yml
.config:opensuse:leap: &distro_opensuse-leap
image: opensuse/leap:latest
only:
- merge_requests
- apt-get update && apt-get install -y build-essential bash cmake libxml2 libreadline7 libqt5widgets5 libqt5xml5 graphviz libjsoncpp1
 
# -----------------------------------------------------------------------------
 
......@@ -173,22 +163,13 @@ test:opensuse:leap:
before_script:
- zypper -n install bash cmake libxml2 readline libQt5Widgets5 libQt5Xml5 graphviz libjsoncpp19
 
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_ubuntu-lts.yml
.config:ubuntu:lts: &distro_ubuntu-lts
image: ubuntu:latest
only:
- merge_requests
# -----------------------------------------------------------------------------
 
build:ubuntu:lts:
<<: *distro_ubuntu-lts
extends: .template:build
before_script:
- apt-get update
- apt-get install -y build-essential cmake ninja-build python3 libxml2-dev libtclap-dev libreadline-dev qtbase5-dev graphviz-dev libjsoncpp-dev
- apt-get update && apt-get install -y build-essential cmake ninja-build python3 libxml2-dev libtclap-dev libreadline-dev qtbase5-dev graphviz-dev libjsoncpp-dev
 
test:ubuntu:lts:
<<: *distro_ubuntu-lts
......@@ -196,16 +177,7 @@ test:ubuntu:lts:
dependencies:
- build:ubuntu:lts
before_script:
- apt-get update
- apt-get install -y build-essential bash cmake libxml2 libreadline7 libqt5widgets5 libqt5xml5 graphviz libjsoncpp1
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# distro_ubuntu-rolling.yml
.config:ubuntu:rolling: &distro_ubuntu-rolling
image: ubuntu:rolling
only:
- merge_requests
- apt-get update && apt-get install -y build-essential bash cmake libxml2 libreadline7 libqt5widgets5 libqt5xml5 graphviz libjsoncpp1
 
# -----------------------------------------------------------------------------
 
......@@ -213,21 +185,19 @@ build:ubuntu:rolling:
<<: *distro_ubuntu-rolling
extends: .template:build
before_script:
- apt-get update
- apt-get install -y build-essential cmake ninja-build python3 libxml2-dev libtclap-dev libreadline-dev qtbase5-dev graphviz-dev libjsoncpp-dev
- apt-get update && apt-get install -y build-essential cmake ninja-build python3 libxml2-dev libtclap-dev libreadline-dev qtbase5-dev graphviz-dev libjsoncpp-dev
 
test:ubuntu:rolling:
<<: *distro_ubuntu-rolling
extends: .template:test
before_script:
- apt-get update
- apt-get install -y build-essential bash cmake libxml2 libreadline8 libqt5widgets5 libqt5xml5 graphviz libjsoncpp1
- apt-get update && apt-get install -y build-essential bash cmake libxml2 libreadline8 libqt5widgets5 libqt5xml5 graphviz libjsoncpp1
dependencies:
- build:ubuntu:rolling
 
 
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# doc.yml
#######################################################################################################################
# doc
 
doc:doc:
stage: build
......@@ -241,8 +211,8 @@ doc:doc:
- doc/
expire_in: 1 day
 
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# static-analysis.yml
#######################################################################################################################
# static analysis
 
.template:static-analysis:
stage: build
......@@ -254,11 +224,6 @@ doc:doc:
- popd
allow_failure: true # TODO: Remove
dependencies: []
only:
- merge_requests
- branches
except:
- tags
 
# -----------------------------------------------------------------------------
 
......@@ -274,333 +239,6 @@ static-analysis:clang-tidy:
- jq ".[].file" build/compile_commands.json | tr -d "\"" | grep -v "test-src" | xargs -n1 -P$(grep -c processor /proc/cpuinfo) clang-tidy -p build/
 
 
#######################################################################################################################
#######################################################################################################################
#######################################################################################################################
# package + release
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# release.yml
.template:only:snapshot: &release_snapshot
only:
refs:
- master
.template:only:tag: &release_stable
only:
- tags
- /^v.*$/
.template:package:
stage: package
tags:
- altbuilder
dependencies: []
script:
- LINUX=$(echo "$CI_JOB_NAME" | cut -d":" -f2)
- MODE=$(echo "$CI_JOB_NAME" | cut -d":" -f4)
- export DISTRIBUTION=$(echo "$CI_JOB_NAME" | cut -d":" -f3)
- if [[ $LINUX == "ubuntu" ]]; then LINUX="debian"; fi
- ./extra/scripts/CD/packaging/package.sh $MODE $LINUX package .
.docker: &docker
image: docker:dind
cache: {} # disable
services:
- docker:dind
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: "/certs"
before_script:
- apk add docker bash
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker info
.package:docker:
<<: *docker
extends: .template:package
artifacts:
paths:
- images.tar
expire_in: 1 day
package:docker::snapshot:
<<: *release_snapshot
extends: .package:docker
package:docker::stable:
<<: *release_stable
extends: .package:docker
.package:sources:
image: alpine:latest
extends: .template:package
before_script:
- apk add bash
artifacts:
paths:
- "*.tar.gz*"
expire_in: 1 day
package:sources::snapshot:
<<: *release_snapshot
extends: .package:sources
package:sources::stable:
<<: *release_stable
extends: .package:sources
.package:archlinux:
image: archlinux/base
extends: .template:package
artifacts:
paths:
- "*.pkg.tar.xz*"
expire_in: 1 day
variables:
PACKAGER: "Tomáš Pecka <peckato1@fit.cvut.cz>"
package:archlinux::snapshot:
<<: *release_snapshot
extends: .package:archlinux
package:archlinux::stable:
<<: *release_stable
extends: .package:archlinux
.package:debian:
extends: .template:package
artifacts:
paths:
- "*.deb"
- "*.ddeb"
- "*.changes"
- "*.buildinfo"
expire_in: 1 day
variables:
LOGNAME: "peckato1"
DEBFULLNAME: "Tomáš Pecka"
DEBEMAIL: "peckato1@fit.cvut.cz"
# ---------------------------
.package:debian:buster:
image: amd64/debian:buster
extends: .package:debian
.package:debian:bullseye:
image: amd64/debian:bullseye
extends: .package:debian
package:debian:buster:snapshot:
<<: *release_snapshot
extends: .package:debian:buster
package:debian:buster:stable:
<<: *release_stable
extends: .package:debian:buster
package:debian:bullseye:snapshot:
<<: *release_snapshot
extends: .package:debian:bullseye
package:debian:bullseye:stable:
<<: *release_stable
extends: .package:debian:bullseye
# ---------------------------
.package:ubuntu:bionic:
image: ubuntu:bionic
extends: .package:debian
.package:ubuntu:cosmic:
image: ubuntu:bionic
extends: .package:debian
.package:ubuntu:disco:
image: ubuntu:disco
extends: .package:debian
package:ubuntu:bionic:snapshot:
<<: *release_snapshot
extends: .package:ubuntu:bionic
package:ubuntu:bionic:stable:
<<: *release_stable
extends: .package:ubuntu:bionic
package:ubuntu:cosmic:snapshot:
<<: *release_snapshot
extends: .package:ubuntu:cosmic
package:ubuntu:cosmic:stable:
<<: *release_stable
extends: .package:ubuntu:cosmic
package:ubuntu:disco:snapshot:
<<: *release_snapshot
extends: .package:ubuntu:disco
package:ubuntu:disco:stable:
<<: *release_stable
extends: .package:ubuntu:disco
# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# release.yml
.template:release:
stage: release
dependencies: []
tags:
- altvm
script:
- LINUX=$(echo "$CI_JOB_NAME" | cut -d":" -f2)
- MODE=$(echo "$CI_JOB_NAME" | cut -d":" -f4)
- export DISTRIBUTION=$(echo "$CI_JOB_NAME" | cut -d":" -f3)
- if [[ $LINUX == "ubuntu" ]]; then LINUX="debian"; fi
- extra/scripts/CD/packaging/package.sh $MODE $LINUX deploy .
.release:docker:
<<: *docker
extends: .template:release
tags:
- altbuilder
environment:
name: docker-nightly
url: https://gitlab.fit.cvut.cz/algorithms-library-toolkit/automata-library/container_registry
release:docker::snapshot:
<<: *release_snapshot
extends: .release:docker
dependencies:
- package:docker::snapshot
release:docker::stable:
<<: *release_stable
extends: .release:docker
dependencies:
- package:docker::stable
.release:archlinux:
extends: .template:release
environment:
name: archlinux
url: https://repository.alt.pecka.me/archlinux/
release:archlinux::snapshot:
<<: *release_snapshot
extends: .release:archlinux
dependencies:
- package:archlinux::snapshot
release:archlinux:release:
<<: *release_stable
extends: .release:archlinux
dependencies:
- package:archlinux::stable
.release:debian:
extends: .template:release
environment:
name: debian
url: https://repository.alt.pecka.me/debian/
release:debian:buster:snapshot:
<<: *release_snapshot
extends: .release:debian
dependencies:
- package:debian:buster:snapshot
release:debian:buster:stable:
<<: *release_stable
extends: .release:debian
dependencies:
- package:debian:buster:stable
release:debian:bullseye:snapshot:
<<: *release_snapshot
extends: .release:debian
dependencies:
- package:debian:bullseye:snapshot
release:debian:bullseye:stable:
<<: *release_stable
extends: .release:debian
dependencies:
- package:debian:bullseye:stable
release:ubuntu:bionic:snapshot:
<<: *release_snapshot
extends: .release:debian
dependencies:
- package:ubuntu:bionic:snapshot
release:ubuntu:bionic:stable:
<<: *release_stable
extends: .release:debian
dependencies:
- package:ubuntu:bionic:stable
release:ubuntu:cosmic:snapshot:
<<: *release_snapshot
extends: .release:debian
dependencies:
- package:ubuntu:cosmic:snapshot
release:ubuntu:cosmic:stable:
<<: *release_stable
extends: .release:debian
dependencies:
- package:ubuntu:cosmic:stable
release:ubuntu:disco:snapshot:
<<: *release_snapshot
extends: .release:debian
dependencies:
- package:ubuntu:disco:snapshot
release:ubuntu:disco:stable:
<<: *release_stable
extends: .release:debian
dependencies:
- package:ubuntu:disco:stable
.release:sources:
extends: .template:release
environment:
name: sources
url: https://repository.alt.pecka.me/sources/
release:sources::snapshot:
<<: *release_snapshot
extends: .release:sources
dependencies:
- package:sources::snapshot
release:sources::stable:
<<: *release_stable
extends: .release:sources
dependencies:
- package:sources::stable
#######################################################################################################################
#######################################################################################################################
#######################################################################################################################
# notify
 
......@@ -609,18 +247,23 @@ release:sources::stable:
before_script:
- apk add --no-cache curl
dependencies: []
only:
refs:
- master
 
# -----------------------------------------------------------------------------
 
notify:pyalib:
<<: *only-master
extends: .template:notify
script:
- curl -X POST -F token="$TOKEN_TRIGGER_PYALIB" -F ref=master https://gitlab.fit.cvut.cz/api/v4/projects/11497/trigger/pipeline
 
notify:website:
notify:release:stable:
<<: *only-tag
extends: .template:notify
script:
- curl -X POST -F token="$TOKEN_TRIGGER_RELEASE" -F ref=master -F "variables[RELEASE_REF]=$CI_COMMIT_TAG" -F "variables[RELEASE_MODE]=stable" https://gitlab.fit.cvut.cz/api/v4/projects/17683/trigger/pipeline
notify:release:snapshot:
<<: *only-master
extends: .template:notify
script:
- curl -X POST -F token="$TOKEN_TRIGGER_WEBSITE" -F ref=master https://gitlab.fit.cvut.cz/api/v4/projects/15509/trigger/pipeline
- curl -X POST -F token="$TOKEN_TRIGGER_RELEASE" -F ref=master -F "variables[RELEASE_REF]=CI_COMMIT_SHA" -F "variables[RELEASE_MODE]=snapshot" https://gitlab.fit.cvut.cz/api/v4/projects/17683/trigger/pipeline
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment