GIT_SUBMODULE_STRATEGY: recursive
GIT_STRATEGY: clone # sometimes unclean submodule dirs otherwise
RESPDIFF_PRIORITY: 5
+ DISTROTEST_PRIORITY: 6
RESPDIFF_COUNT: 1
RESPDIFF_FORCE: 0
RESPERF_FORCE: 0
- test
- extended
- deploy
+ - deploy-test
# build {{{
.build: &build
variables:
GIT_COMMITER_NAME: 'ci'
EMAIL: 'ci@nic'
+ except: null
script:
- ./scripts/make-dev-archive.sh
# }}}
# deploy {{{
-pkg:obs:devel:
+obs:trigger:
stage: deploy
only:
variables:
- - $OBS_BUILD == "1"
- refs:
- - nightly@knot/knot-resolver
+ - $OBS_REPO
dependencies:
- archive
+ environment:
+ name: OBS/$OBS_REPO
+ url: https://build.opensuse.org/package/show/home:CZ-NIC:$OBS_REPO/knot-resolver
+ tags:
+ - respdiff
script:
- scripts/make-distrofiles.sh
- - echo -e "[general]\napiurl = https://api.opensuse.org\n\n[https://api.opensuse.org]\nuser = CZ-NIC-automation\npass = $OBS_PASSWORD" > /root/.oscrc
- - scripts/build-in-obs.sh knot-dns-devel # build against latest development version of knot
- - scripts/build-in-obs.sh knot-resolver-devel # build against knot in knot-resolver-latest
+ - scripts/build-in-obs.sh $OBS_REPO
# copy snapshot of current master to nightly branch for further processing
# (this is workaround for missing complex conditions for job limits in Gitlab)
- 'curl --request POST --header "PRIVATE-TOKEN: $GITLAB_API_TOKEN" "https://gitlab.labs.nic.cz/api/v4/projects/147/repository/branches?branch=nightly&ref=master"'
- 'curl --request PUT --header "PRIVATE-TOKEN: $GITLAB_API_TOKEN" "https://gitlab.labs.nic.cz/api/v4/projects/147/repository/branches/nightly/protect"'
# }}}
+
+# deploy-test {{{
+.distrotest: &distrotest
+ stage: deploy-test
+ only:
+ variables:
+ - $OBS_REPO
+ when: delayed
+ start_in: 3 minutes # give OBS build some time
+ tags:
+ - respdiff
+ script:
+ - "osc results home:CZ-NIC:$OBS_REPO knot-resolver -a x86_64 -r $DISTROTEST_REPO -w"
+ - >
+ osc results home:CZ-NIC:$OBS_REPO knot-resolver -a x86_64 -r $DISTROTEST_REPO --csv | grep 'succeeded|$' -q || \
+ (echo "ERROR: build failed"; exit 1)
+ - export LABEL=gl$(date +%s)
+ - export COMMITDIR="/var/tmp/respdiff-jobs/$(git rev-parse --short HEAD)-$LABEL"
+ - export TESTDIR="$COMMITDIR/distrotest.$DISTROTEST_NAME"
+ - ln -s $COMMITDIR distrotest_commitdir
+ - sudo -u respdiff /var/opt/respdiff/contrib/job_manager/submit.py -w
+ -p $DISTROTEST_PRIORITY
+ $(sudo -u respdiff /var/opt/respdiff/contrib/job_manager/create.py
+ "$(git rev-parse --short HEAD)" -l $LABEL -t distrotest.$DISTROTEST_NAME)
+ - export EXITCODE=$(cat $TESTDIR/j*_exitcode)
+ - if [[ "$EXITCODE" != "0" ]]; then cat $TESTDIR/j*_vagrant.log; fi
+ - exit $EXITCODE
+ after_script:
+ - 'cp -t . distrotest_commitdir/distrotest.$DISTROTEST_NAME/j* ||:'
+ artifacts:
+ when: always
+ expire_in: 1 week
+ paths:
+ - ./j*
+
+obs:centos7:x86_64:
+ <<: *distrotest
+ variables:
+ DISTROTEST_NAME: centos7
+ DISTROTEST_REPO: CentOS_7_EPEL
+
+obs:debian9:x86_64:
+ <<: *distrotest
+ variables:
+ DISTROTEST_NAME: debian9
+ DISTROTEST_REPO: Debian_9.0
+
+obs:fedora29:x86_64:
+ <<: *distrotest
+ variables:
+ DISTROTEST_NAME: fedora29
+ DISTROTEST_REPO: Fedora_29
+
+obs:fedora30:x86_64:
+ <<: *distrotest
+ variables:
+ DISTROTEST_NAME: fedora30
+ DISTROTEST_REPO: Fedora_30
+
+obs:leap15:x86_64:
+ <<: *distrotest
+ variables:
+ DISTROTEST_NAME: leap15
+ DISTROTEST_REPO: openSUSE_Leap_15.0
+
+obs:ubuntu1604:x86_64:
+ <<: *distrotest
+ variables:
+ DISTROTEST_NAME: ubuntu1604
+ DISTROTEST_REPO: xUbuntu_16.04
+
+obs:ubuntu1804:x86_64:
+ <<: *distrotest
+ variables:
+ DISTROTEST_NAME: ubuntu1804
+ DISTROTEST_REPO: xUbuntu_18.04
+
+obs:ubuntu1904:x86_64:
+ <<: *distrotest
+ variables:
+ DISTROTEST_NAME: ubuntu1904
+ DISTROTEST_REPO: xUbuntu_19.04
+# }}}