tests: enable nightly test execution in gitlab CI

This adds several stages to the gitlab-ci.yaml file which are
triggered by a schedule specified in Gitlab->CI/CD->Schedules
This commit is contained in:
Jakub Rusz 2021-05-13 09:26:03 +02:00 committed by Alexander Todorov
parent beead86da6
commit 905c297bc7
5 changed files with 58 additions and 6 deletions

View file

@ -1,6 +1,7 @@
stages:
- init
- rpmbuild
- prepare-rhel-internal
- test
- finish
@ -26,6 +27,8 @@ init:
RPM:
stage: rpmbuild
extends: .terraform
rules:
- if: '$CI_PIPELINE_SOURCE != "schedule"'
variables:
EXTRA_REPO_PATH_SEGMENT: "gitlab/"
script:
@ -52,6 +55,8 @@ RPM:
Container:
stage: rpmbuild
extends: .terraform
rules:
- if: '$CI_PIPELINE_SOURCE != "schedule"'
variables:
EXTRA_REPO_PATH_SEGMENT: "gitlab/"
script:
@ -61,9 +66,33 @@ Container:
- RUNNER:
- aws/fedora-33-x86_64
Prepare-rhel-internal:
stage: prepare-rhel-internal
extends: .terraform
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
variables:
EXTRA_REPO_PATH_SEGMENT: "gitlab/"
script:
- schutzbot/prepare-rhel-internal.sh
artifacts:
paths:
- rhel-8.json
- rhel8internal.repo
- rhel-8-beta.json
- COMPOSE_ID
parallel:
matrix:
- RUNNER:
- aws/rhel-8.4-x86_64
INTERNAL_NETWORK: ["true"]
Base:
stage: test
extends: .terraform
rules:
- if: '$CI_PIPELINE_SOURCE != "schedule"'
- if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-[8-9]\.[\S]+/'
variables:
EXTRA_REPO_PATH_SEGMENT: "gitlab/"
script:
@ -96,6 +125,9 @@ Base:
OSTree:
stage: test
extends: .terraform
rules:
- if: '$CI_PIPELINE_SOURCE != "schedule"'
- if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-[8-9]\.[\S]+/'
variables:
EXTRA_REPO_PATH_SEGMENT: "gitlab/"
script:
@ -135,6 +167,9 @@ New OSTree:
Integration:
stage: test
extends: .terraform
rules:
- if: '$CI_PIPELINE_SOURCE != "schedule"'
- if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-[8-9]\.[\S]+/'
variables:
EXTRA_REPO_PATH_SEGMENT: "gitlab/"
script:
@ -164,7 +199,6 @@ Integration:
INTERNAL_NETWORK: ["true"]
DISTRO_CODE: ["rhel_90"]
.API_TESTS: &API_TESTS
TARGET:
- azure
@ -175,6 +209,9 @@ Integration:
API:
stage: test
extends: .terraform
rules:
- if: '$CI_PIPELINE_SOURCE != "schedule"'
- if: '$CI_PIPELINE_SOURCE == "schedule" && $RUNNER =~ /[\S]+rhel-[8-9]\.[\S]+/'
variables:
EXTRA_REPO_PATH_SEGMENT: "gitlab/"
script:

View file

@ -100,7 +100,8 @@ fi
if [ -f "rhel8internal.repo" ]; then
greenprint "Preparing repos for internal build testing"
sudo mv rhel8internal.repo /etc/yum.repos.d/
sudo rm -f /etc/yum.repos.d/osbuild*.repo
# Change back to removing osbuild*.repo when we have rpms in 8.5
sudo rm -f /etc/yum.repos.d/osbuild-composer.repo
fi
greenprint "Installing test packages for ${PROJECT}"

View file

@ -8,7 +8,12 @@ function greenprint {
ARCH=$(uname -m)
source ../tools/define-compose-url.sh
if [ -e ../tools/define-compose-url.sh ]
then
source ../tools/define-compose-url.sh
else
source ./tools/define-compose-url.sh
fi
# Create a repository file for installing the osbuild-composer RPMs
greenprint "📜 Generating dnf repository file"
@ -67,6 +72,7 @@ if ! s3cmd --version > /dev/null 2>&1; then
sudo pip3 -q install s3cmd
fi
JOB_NAME="${JOB_NAME:-${CI_JOB_ID}}"
REPO_DIR_LATEST="repo/${JOB_NAME}/latest/internal"
mkdir -p "$REPO_DIR_LATEST"

View file

@ -1,7 +1,7 @@
#!/bin/bash
set -euo pipefail
curl -L http://download.devel.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.4/COMPOSE_ID > COMPOSE_ID
curl -L http://download.devel.redhat.com/rhel-8/nightly/RHEL-8/latest-finished-RHEL-8.5/COMPOSE_ID > COMPOSE_ID
COMPOSE_ID=$(cat COMPOSE_ID)
# default to a nightly tree but respect values passed from ENV so we can test rel-eng composes as well
@ -10,3 +10,11 @@ COMPOSE_URL="${COMPOSE_URL:-http://download.devel.redhat.com/rhel-8/nightly/RHEL
# in case COMPOSE_URL was defined from the outside refresh COMPOSE_ID file,
# used for telegram messages in case of success/failure
curl -L "$COMPOSE_URL/COMPOSE_ID" > COMPOSE_ID
# Make sure the compose URL really exists
RETURN_CODE=$(curl --silent -o -I -L -s -w "%{http_code}" "${COMPOSE_URL}")
if [ "$RETURN_CODE" != 200 ]
then
echo "Compose URL $COMPOSE_URL returned error code $RETURN_CODE, exiting."
exit 1
fi

View file

@ -63,11 +63,11 @@ esac
# overrides for RHEL nightly builds testing
if [ -f "rhel-8.json" ]; then
sudo mv rhel-8.json /etc/osbuild-composer/repositories/
sudo cp rhel-8.json /etc/osbuild-composer/repositories/
fi
if [ -f "rhel-8-beta.json" ]; then
sudo mv rhel-8-beta.json /etc/osbuild-composer/repositories/
sudo cp rhel-8-beta.json /etc/osbuild-composer/repositories/
fi
# Generate all X.509 certificates for the tests