mirror of
https://github.com/containers/podman.git
synced 2025-06-27 05:26:50 +08:00
Cirrus: Combine pre-test checks into build task
Previously, two tasks always ran first, prior to anything else. One to verify network and external-service connectivity. Another to verify certain important `.cirrus.yml` standards are met. However, as the total number of tasks continues to grow, the need to keep these basic checks as dedicated prerequisites is of decreasing value/importance. Fold these two checks into a new `pretesting_script` component of the Fedora `build` task, on both `x86_64` and `aarch64`. Signed-off-by: Chris Evich <cevich@redhat.com>
This commit is contained in:
134
.cirrus.yml
134
.cirrus.yml
@ -77,79 +77,11 @@ gcp_credentials: ENCRYPTED[a28959877b2c9c36f151781b0a05407218cda646c7d047fc556e4
|
|||||||
aws_credentials: ENCRYPTED[4ca070bffe28eb9b27d63c568b52970dd46f119c3a83b8e443241e895dbf1737580b4d84eed27a311a2b74287ef9f79f]
|
aws_credentials: ENCRYPTED[4ca070bffe28eb9b27d63c568b52970dd46f119c3a83b8e443241e895dbf1737580b4d84eed27a311a2b74287ef9f79f]
|
||||||
|
|
||||||
|
|
||||||
# Attempt to prevent flakes by confirming all required external/3rd-party
|
# N/B: This matrix of build tasks are critical to CI, along with the following
|
||||||
# services are available and functional.
|
# aarch64 task. They build binaries for all CI platforms, and versions. On
|
||||||
ext_svc_check_task:
|
# success, the contents of the repository are preserved as an artifact for
|
||||||
alias: 'ext_svc_check' # int. ref. name - required for depends_on reference
|
# consumption by most subsequent CI tasks. This saves about 3-5 minutes of
|
||||||
name: "Ext. services" # Displayed Title - has no other significance
|
# otherwise duplicative effort in most tasks.
|
||||||
# Don't create this task for new tags so release process is more reliable
|
|
||||||
# Docs: ./contrib/cirrus/CIModes.md
|
|
||||||
only_if: $CIRRUS_TAG == ''
|
|
||||||
# Default/small container image to execute tasks with
|
|
||||||
container: &smallcontainer
|
|
||||||
image: ${CTR_FQIN}
|
|
||||||
# Resources are limited across ALL currently executing tasks
|
|
||||||
# ref: https://cirrus-ci.org/guide/linux/#linux-containers
|
|
||||||
cpu: 2
|
|
||||||
memory: 2
|
|
||||||
env:
|
|
||||||
TEST_FLAVOR: ext_svc
|
|
||||||
CTR_FQIN: ${FEDORA_CONTAINER_FQIN}
|
|
||||||
# NOTE: The default way Cirrus-CI clones is *NOT* compatible with
|
|
||||||
# environment expectations in contrib/cirrus/lib.sh. Specifically
|
|
||||||
# the 'origin' remote must be defined, and all remote branches/tags
|
|
||||||
# must be available for reference from CI scripts.
|
|
||||||
clone_script: &full_clone |
|
|
||||||
cd /
|
|
||||||
rm -rf $CIRRUS_WORKING_DIR
|
|
||||||
mkdir -p $CIRRUS_WORKING_DIR
|
|
||||||
git clone --recursive --branch=$DEST_BRANCH https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git $CIRRUS_WORKING_DIR
|
|
||||||
cd $CIRRUS_WORKING_DIR
|
|
||||||
git remote update origin
|
|
||||||
if [[ -n "$CIRRUS_PR" ]]; then # running for a PR
|
|
||||||
git fetch origin pull/$CIRRUS_PR/head:pull/$CIRRUS_PR
|
|
||||||
git checkout pull/$CIRRUS_PR
|
|
||||||
else
|
|
||||||
git reset --hard $CIRRUS_CHANGE_IN_REPO
|
|
||||||
fi
|
|
||||||
# Some test operations & checks require a git "identity"
|
|
||||||
_gc='git config --file /root/.gitconfig'
|
|
||||||
$_gc user.email "TMcTestFace@example.com"
|
|
||||||
$_gc user.name "Testy McTestface"
|
|
||||||
|
|
||||||
setup_script: &setup '$GOSRC/$SCRIPT_BASE/setup_environment.sh'
|
|
||||||
main_script: &main '/usr/bin/time --verbose --output="$STATS_LOGFILE" $GOSRC/$SCRIPT_BASE/runner.sh'
|
|
||||||
always: &runner_stats
|
|
||||||
runner_stats_artifacts:
|
|
||||||
path: ./*-${STATS_LOGFILE_SFX}
|
|
||||||
type: text/plain
|
|
||||||
|
|
||||||
|
|
||||||
# Execute some quick checks to confirm this YAML file and all
|
|
||||||
# automation-related shell scripts are sane.
|
|
||||||
automation_task:
|
|
||||||
alias: 'automation'
|
|
||||||
name: "Check Automation"
|
|
||||||
# This task is not needed for branches, tags, or cron runs.
|
|
||||||
# Docs: ./contrib/cirrus/CIModes.md
|
|
||||||
only_if: &is_pr "$CIRRUS_PR != ''"
|
|
||||||
container: *smallcontainer
|
|
||||||
env:
|
|
||||||
TEST_FLAVOR: automation
|
|
||||||
CTR_FQIN: ${FEDORA_CONTAINER_FQIN}
|
|
||||||
TEST_ENVIRON: container
|
|
||||||
clone_script: *full_clone
|
|
||||||
setup_script: *setup
|
|
||||||
main_script: *main
|
|
||||||
always: *runner_stats
|
|
||||||
|
|
||||||
|
|
||||||
# N/B: The two following tasks are critical. They build all binaries for all supported
|
|
||||||
# OS platforms and versions on x86_64 and aarch64. On success, the contents of the repository
|
|
||||||
# are preserved as an artifact. This saves most subsequent tasks about
|
|
||||||
# 3 minutes of otherwise duplicative effort. It also ensures that the
|
|
||||||
# exact same binaries used throughout CI testing, are available for
|
|
||||||
# future consumption|inspection by the final 'artifacts' task.
|
|
||||||
build_task:
|
build_task:
|
||||||
alias: 'build'
|
alias: 'build'
|
||||||
name: 'Build for $DISTRO_NV'
|
name: 'Build for $DISTRO_NV'
|
||||||
@ -186,9 +118,36 @@ build_task:
|
|||||||
CI_DESIRED_RUNTIME: runc
|
CI_DESIRED_RUNTIME: runc
|
||||||
env:
|
env:
|
||||||
TEST_FLAVOR: build
|
TEST_FLAVOR: build
|
||||||
clone_script: *full_clone
|
# NOTE: The default way Cirrus-CI clones is *NOT* compatible with
|
||||||
setup_script: *setup
|
# environment expectations in contrib/cirrus/lib.sh. Specifically
|
||||||
main_script: *main
|
# the 'origin' remote must be defined, and all remote branches/tags
|
||||||
|
# must be available for reference from CI scripts.
|
||||||
|
clone_script: &full_clone |
|
||||||
|
cd /
|
||||||
|
rm -rf $CIRRUS_WORKING_DIR
|
||||||
|
mkdir -p $CIRRUS_WORKING_DIR
|
||||||
|
git clone --recursive --branch=$DEST_BRANCH https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git $CIRRUS_WORKING_DIR
|
||||||
|
cd $CIRRUS_WORKING_DIR
|
||||||
|
git remote update origin
|
||||||
|
if [[ -n "$CIRRUS_PR" ]]; then # running for a PR
|
||||||
|
git fetch origin pull/$CIRRUS_PR/head:pull/$CIRRUS_PR
|
||||||
|
git checkout pull/$CIRRUS_PR
|
||||||
|
else
|
||||||
|
git reset --hard $CIRRUS_CHANGE_IN_REPO
|
||||||
|
fi
|
||||||
|
# Some test operations & checks require a git "identity"
|
||||||
|
_gc='git config --file /root/.gitconfig'
|
||||||
|
$_gc user.email "TMcTestFace@example.com"
|
||||||
|
$_gc user.name "Testy McTestface"
|
||||||
|
# Attempt to prevent flakes by confirming basic environment expectations,
|
||||||
|
# network service connectivity and essential container image availability.
|
||||||
|
prebuild_script: &prebuild $SCRIPT_BASE/prebuild.sh
|
||||||
|
# Standard setup stage call, used by nearly every task in CI.
|
||||||
|
setup_script: &setup '$GOSRC/$SCRIPT_BASE/setup_environment.sh'
|
||||||
|
# Attempt to prevent flakes by confirming automation environment and
|
||||||
|
# all required external/3rd-party services are available and functional.
|
||||||
|
# Standard main execution stage call, used by nearly every task in CI.
|
||||||
|
main_script: &main '/usr/bin/time --verbose --output="$STATS_LOGFILE" $GOSRC/$SCRIPT_BASE/runner.sh'
|
||||||
# Cirrus-CI is very slow uploading one file at time, and the repo contains
|
# Cirrus-CI is very slow uploading one file at time, and the repo contains
|
||||||
# thousands of files. Speed this up by archiving into tarball first.
|
# thousands of files. Speed this up by archiving into tarball first.
|
||||||
repo_prep_script: &repo_prep >-
|
repo_prep_script: &repo_prep >-
|
||||||
@ -196,7 +155,10 @@ build_task:
|
|||||||
repo_artifacts: &repo_artifacts
|
repo_artifacts: &repo_artifacts
|
||||||
path: ./repo.tbz
|
path: ./repo.tbz
|
||||||
type: application/octet-stream
|
type: application/octet-stream
|
||||||
always: *runner_stats
|
always: &runner_stats
|
||||||
|
runner_stats_artifacts:
|
||||||
|
path: ./*-${STATS_LOGFILE_SFX}
|
||||||
|
type: text/plain
|
||||||
|
|
||||||
|
|
||||||
build_aarch64_task:
|
build_aarch64_task:
|
||||||
@ -218,6 +180,7 @@ build_aarch64_task:
|
|||||||
CI_DESIRED_RUNTIME: crun
|
CI_DESIRED_RUNTIME: crun
|
||||||
TEST_FLAVOR: build
|
TEST_FLAVOR: build
|
||||||
clone_script: *full_clone
|
clone_script: *full_clone
|
||||||
|
prebuild_script: *prebuild
|
||||||
setup_script: *setup
|
setup_script: *setup
|
||||||
main_script: *main
|
main_script: *main
|
||||||
# Cirrus-CI is very slow uploading one file at time, and the repo contains
|
# Cirrus-CI is very slow uploading one file at time, and the repo contains
|
||||||
@ -242,10 +205,8 @@ validate_task:
|
|||||||
# to nonsequential PR merging practices, will be caught on a future PR,
|
# to nonsequential PR merging practices, will be caught on a future PR,
|
||||||
# build or test task failures.
|
# build or test task failures.
|
||||||
# Docs: ./contrib/cirrus/CIModes.md
|
# Docs: ./contrib/cirrus/CIModes.md
|
||||||
only_if: *is_pr
|
only_if: &is_pr "$CIRRUS_PR != ''"
|
||||||
depends_on:
|
depends_on:
|
||||||
- ext_svc_check
|
|
||||||
- automation
|
|
||||||
- build
|
- build
|
||||||
# golangci-lint is a very, very hungry beast.
|
# golangci-lint is a very, very hungry beast.
|
||||||
gce_instance: &bigvm
|
gce_instance: &bigvm
|
||||||
@ -281,8 +242,6 @@ validate_aarch64_task:
|
|||||||
# Docs: ./contrib/cirrus/CIModes.md
|
# Docs: ./contrib/cirrus/CIModes.md
|
||||||
only_if: *is_pr
|
only_if: *is_pr
|
||||||
depends_on:
|
depends_on:
|
||||||
- ext_svc_check
|
|
||||||
- automation
|
|
||||||
- build_aarch64
|
- build_aarch64
|
||||||
# golangci-lint is a very, very hungry beast.
|
# golangci-lint is a very, very hungry beast.
|
||||||
ec2_instance: *standard_build_ec2_aarch64
|
ec2_instance: *standard_build_ec2_aarch64
|
||||||
@ -377,7 +336,12 @@ consistency_task:
|
|||||||
only_if: *is_pr
|
only_if: *is_pr
|
||||||
depends_on:
|
depends_on:
|
||||||
- build
|
- build
|
||||||
container: *smallcontainer
|
container: &smallcontainer
|
||||||
|
image: ${CTR_FQIN}
|
||||||
|
# Resources are limited across ALL currently executing tasks
|
||||||
|
# ref: https://cirrus-ci.org/guide/linux/#linux-containers
|
||||||
|
cpu: 2
|
||||||
|
memory: 2
|
||||||
env:
|
env:
|
||||||
<<: *stdenvars
|
<<: *stdenvars
|
||||||
TEST_FLAVOR: consistency
|
TEST_FLAVOR: consistency
|
||||||
@ -929,8 +893,6 @@ image_build_task: &image-build
|
|||||||
# this task to a specific Cirrus-Cron entry with this name.
|
# this task to a specific Cirrus-Cron entry with this name.
|
||||||
# Docs: ./contrib/cirrus/CIModes.md
|
# Docs: ./contrib/cirrus/CIModes.md
|
||||||
only_if: $CIRRUS_CRON == 'multiarch'
|
only_if: $CIRRUS_CRON == 'multiarch'
|
||||||
depends_on:
|
|
||||||
- ext_svc_check
|
|
||||||
timeout_in: 120m # emulation is sssllllooooowwww
|
timeout_in: 120m # emulation is sssllllooooowwww
|
||||||
gce_instance:
|
gce_instance:
|
||||||
<<: *standardvm
|
<<: *standardvm
|
||||||
@ -1010,8 +972,6 @@ success_task:
|
|||||||
alias: success
|
alias: success
|
||||||
# N/B: ALL tasks must be listed here, minus their '_task' suffix.
|
# N/B: ALL tasks must be listed here, minus their '_task' suffix.
|
||||||
depends_on:
|
depends_on:
|
||||||
- ext_svc_check
|
|
||||||
- automation
|
|
||||||
- build
|
- build
|
||||||
- build_aarch64
|
- build_aarch64
|
||||||
- validate
|
- validate
|
||||||
|
@ -43,8 +43,6 @@ of this document, it's not possible to override the behavior of `$CIRRUS_PR`.
|
|||||||
## Cirrus Task contexts and runtime modes
|
## Cirrus Task contexts and runtime modes
|
||||||
|
|
||||||
### Intended general PR Tasks (*italic*: matrix)
|
### Intended general PR Tasks (*italic*: matrix)
|
||||||
+ ext_svc_check
|
|
||||||
+ automation
|
|
||||||
+ *build*
|
+ *build*
|
||||||
+ validate
|
+ validate
|
||||||
+ bindings
|
+ bindings
|
||||||
@ -76,8 +74,6 @@ of this document, it's not possible to override the behavior of `$CIRRUS_PR`.
|
|||||||
+ release_test
|
+ release_test
|
||||||
|
|
||||||
### Intended `[CI:DOCS]` PR Tasks:
|
### Intended `[CI:DOCS]` PR Tasks:
|
||||||
+ ext_svc_check
|
|
||||||
+ automation
|
|
||||||
+ *build*
|
+ *build*
|
||||||
+ validate
|
+ validate
|
||||||
+ swagger
|
+ swagger
|
||||||
@ -86,8 +82,6 @@ of this document, it's not possible to override the behavior of `$CIRRUS_PR`.
|
|||||||
+ success
|
+ success
|
||||||
|
|
||||||
### Intended `[CI:COPR]` PR Tasks:
|
### Intended `[CI:COPR]` PR Tasks:
|
||||||
+ ext_svc_check
|
|
||||||
+ automation
|
|
||||||
+ *build*
|
+ *build*
|
||||||
+ validate
|
+ validate
|
||||||
+ swagger
|
+ swagger
|
||||||
@ -96,8 +90,6 @@ of this document, it's not possible to override the behavior of `$CIRRUS_PR`.
|
|||||||
+ success
|
+ success
|
||||||
|
|
||||||
### Intend `[CI:BUILD]` PR Tasks:
|
### Intend `[CI:BUILD]` PR Tasks:
|
||||||
+ ext_svc_check
|
|
||||||
+ automation
|
|
||||||
+ *build*
|
+ *build*
|
||||||
+ validate
|
+ validate
|
||||||
+ consistency
|
+ consistency
|
||||||
@ -109,8 +101,6 @@ of this document, it's not possible to override the behavior of `$CIRRUS_PR`.
|
|||||||
+ artifacts
|
+ artifacts
|
||||||
|
|
||||||
### Intended Branch tasks (and Cirrus-cron jobs, except "multiarch"):
|
### Intended Branch tasks (and Cirrus-cron jobs, except "multiarch"):
|
||||||
+ ext_svc_check
|
|
||||||
+ *build*
|
|
||||||
+ swagger
|
+ swagger
|
||||||
+ *alt_build*
|
+ *alt_build*
|
||||||
+ osx_alt_build
|
+ osx_alt_build
|
||||||
@ -123,7 +113,6 @@ of this document, it's not possible to override the behavior of `$CIRRUS_PR`.
|
|||||||
+ artifacts
|
+ artifacts
|
||||||
|
|
||||||
### Intended for "multiarch" Cirrus-Cron (always a branch):
|
### Intended for "multiarch" Cirrus-Cron (always a branch):
|
||||||
+ ext_svc_check
|
|
||||||
+ image_build
|
+ image_build
|
||||||
+ meta
|
+ meta
|
||||||
+ success
|
+ success
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -eo pipefail
|
|
||||||
|
|
||||||
# This script attempts basic confirmation of functional networking
|
|
||||||
# by connecting to a set of essential external servers and failing
|
|
||||||
# if any cannot be reached. It's intended for use early on in the
|
|
||||||
# podman CI system, to help prevent wasting time on tests that can't
|
|
||||||
# succeed due to some outage or another.
|
|
||||||
|
|
||||||
# shellcheck source=./contrib/cirrus/lib.sh
|
|
||||||
source $(dirname $0)/lib.sh
|
|
||||||
|
|
||||||
cat ${CIRRUS_WORKING_DIR}/${SCRIPT_BASE}/required_host_ports.txt | \
|
|
||||||
while read host port
|
|
||||||
do
|
|
||||||
if [[ "$port" -eq "443" ]]
|
|
||||||
then
|
|
||||||
echo "SSL/TLS to $host:$port"
|
|
||||||
echo -n '' | \
|
|
||||||
err_retry 9 1000 "" openssl s_client -quiet -no_ign_eof -connect $host:$port
|
|
||||||
else
|
|
||||||
echo "Connect to $host:$port"
|
|
||||||
err_retry 9 1000 1 nc -zv -w 13 $host $port
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Verify we can pull metadata from a few key testing images on quay.io
|
|
||||||
# in the 'libpod' namespace. This is mostly aimed at validating the
|
|
||||||
# quay.io service is up and responsive. Images were hand-picked with
|
|
||||||
# egrep -ro 'quay.io/libpod/.+:latest' test | sort -u
|
|
||||||
TEST_IMGS=(\
|
|
||||||
alpine:latest
|
|
||||||
busybox:latest
|
|
||||||
alpine_labels:latest
|
|
||||||
alpine_nginx:latest
|
|
||||||
alpine_healthcheck:latest
|
|
||||||
badhealthcheck:latest
|
|
||||||
cirros:latest
|
|
||||||
)
|
|
||||||
|
|
||||||
echo "Checking quay.io test image accessibility"
|
|
||||||
for testimg in "${TEST_IMGS[@]}"; do
|
|
||||||
fqin="quay.io/libpod/$testimg"
|
|
||||||
echo " $fqin"
|
|
||||||
skopeo inspect --retry-times 5 "docker://$fqin" | jq . > /dev/null
|
|
||||||
done
|
|
74
contrib/cirrus/prebuild.sh
Executable file
74
contrib/cirrus/prebuild.sh
Executable file
@ -0,0 +1,74 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
# This script attempts to confirm functional networking and
|
||||||
|
# connectivity to essential external servers. It also verifies
|
||||||
|
# some basic environmental expectations and shell-script sanity.
|
||||||
|
# It's intended for use early on in the podman CI system, to help
|
||||||
|
# prevent wasting time on tests that can't succeed due to some
|
||||||
|
# outage, failure, or missed expectation.
|
||||||
|
|
||||||
|
source /etc/automation_environment
|
||||||
|
source $AUTOMATION_LIB_PATH/common_lib.sh
|
||||||
|
|
||||||
|
req_env_vars CI DEST_BRANCH IMAGE_SUFFIX TEST_FLAVOR TEST_ENVIRON \
|
||||||
|
PODBIN_NAME PRIV_NAME DISTRO_NV AUTOMATION_LIB_PATH \
|
||||||
|
SCRIPT_BASE CIRRUS_WORKING_DIR FEDORA_NAME UBUNTU_NAME \
|
||||||
|
VM_IMAGE_NAME
|
||||||
|
|
||||||
|
# There's no need to perform further checks on more than one
|
||||||
|
# CI platform. These variables are defined in .cirrus.yml
|
||||||
|
# shellcheck disable=SC2154
|
||||||
|
if [[ ! "${DISTRO_NV}" =~ ${FEDORA_NAME} ]]; then
|
||||||
|
echo "Skipping additional checks on $DISTRO_NV"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# shellcheck disable=SC2154
|
||||||
|
$SCRIPT_BASE/cirrus_yaml_test.py
|
||||||
|
|
||||||
|
ooe.sh dnf install -y ShellCheck # small/quick addition
|
||||||
|
|
||||||
|
shellcheck --color=always --format=tty \
|
||||||
|
--shell=bash --external-sources \
|
||||||
|
--enable add-default-case,avoid-nullary-conditions,check-unassigned-uppercase \
|
||||||
|
--exclude SC2046,SC2034,SC2090,SC2064 \
|
||||||
|
--wiki-link-count=0 --severity=warning \
|
||||||
|
$SCRIPT_BASE/*.sh hack/get_ci_vm.sh
|
||||||
|
|
||||||
|
# shellcheck disable=SC2154
|
||||||
|
cat ${CIRRUS_WORKING_DIR}/${SCRIPT_BASE}/required_host_ports.txt | \
|
||||||
|
while read host port
|
||||||
|
do
|
||||||
|
if [[ "$port" -eq "443" ]]
|
||||||
|
then
|
||||||
|
echo "SSL/TLS to $host:$port"
|
||||||
|
echo -n '' | \
|
||||||
|
err_retry 9 1000 "" openssl s_client -quiet -no_ign_eof -connect $host:$port
|
||||||
|
else
|
||||||
|
echo "Connect to $host:$port"
|
||||||
|
err_retry 9 1000 1 nc -zv -w 13 $host $port
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Verify we can pull metadata from a few key testing images on quay.io
|
||||||
|
# in the 'libpod' namespace. This is mostly aimed at validating the
|
||||||
|
# quay.io service is up and responsive. Images were hand-picked with
|
||||||
|
# egrep -ro 'quay.io/libpod/.+:latest' test | sort -u
|
||||||
|
TEST_IMGS=(\
|
||||||
|
alpine:latest
|
||||||
|
busybox:latest
|
||||||
|
alpine_labels:latest
|
||||||
|
alpine_nginx:latest
|
||||||
|
alpine_healthcheck:latest
|
||||||
|
badhealthcheck:latest
|
||||||
|
cirros:latest
|
||||||
|
)
|
||||||
|
|
||||||
|
echo "Checking quay.io test image accessibility"
|
||||||
|
for testimg in "${TEST_IMGS[@]}"; do
|
||||||
|
fqin="quay.io/libpod/$testimg"
|
||||||
|
echo " $fqin"
|
||||||
|
skopeo inspect --retry-times 5 "docker://$fqin" | jq -e . > /dev/null
|
||||||
|
done
|
@ -19,21 +19,6 @@ set -eo pipefail
|
|||||||
# shellcheck source=contrib/cirrus/lib.sh
|
# shellcheck source=contrib/cirrus/lib.sh
|
||||||
source $(dirname $0)/lib.sh
|
source $(dirname $0)/lib.sh
|
||||||
|
|
||||||
function _run_ext_svc() {
|
|
||||||
$SCRIPT_BASE/ext_svc_check.sh
|
|
||||||
}
|
|
||||||
|
|
||||||
function _run_automation() {
|
|
||||||
$SCRIPT_BASE/cirrus_yaml_test.py
|
|
||||||
|
|
||||||
req_env_vars CI DEST_BRANCH IMAGE_SUFFIX TEST_FLAVOR TEST_ENVIRON \
|
|
||||||
PODBIN_NAME PRIV_NAME DISTRO_NV CONTAINER USER HOME \
|
|
||||||
UID AUTOMATION_LIB_PATH SCRIPT_BASE OS_RELEASE_ID \
|
|
||||||
CG_FS_TYPE
|
|
||||||
bigto ooe.sh dnf install -y ShellCheck # small/quick addition
|
|
||||||
$SCRIPT_BASE/shellcheck.sh
|
|
||||||
}
|
|
||||||
|
|
||||||
function _run_validate() {
|
function _run_validate() {
|
||||||
# TODO: aarch64 images need python3-devel installed
|
# TODO: aarch64 images need python3-devel installed
|
||||||
# https://github.com/containers/automation_images/issues/159
|
# https://github.com/containers/automation_images/issues/159
|
||||||
@ -423,6 +408,8 @@ function _bail_if_test_can_be_skipped() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Defined by Cirrus-CI for all tasks
|
||||||
|
# shellcheck disable=SC2154
|
||||||
head=$CIRRUS_CHANGE_IN_REPO
|
head=$CIRRUS_CHANGE_IN_REPO
|
||||||
base=$(git merge-base $DEST_BRANCH $head)
|
base=$(git merge-base $DEST_BRANCH $head)
|
||||||
diffs=$(git diff --name-only $base $head)
|
diffs=$(git diff --name-only $base $head)
|
||||||
|
@ -228,13 +228,11 @@ esac
|
|||||||
# Required to be defined by caller: The primary type of testing that will be performed
|
# Required to be defined by caller: The primary type of testing that will be performed
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
case "$TEST_FLAVOR" in
|
case "$TEST_FLAVOR" in
|
||||||
ext_svc) ;;
|
|
||||||
validate)
|
validate)
|
||||||
dnf install -y $PACKAGE_DOWNLOAD_DIR/python3*.rpm
|
dnf install -y $PACKAGE_DOWNLOAD_DIR/python3*.rpm
|
||||||
# For some reason, this is also needed for validation
|
# For some reason, this is also needed for validation
|
||||||
make .install.pre-commit .install.gitvalidation
|
make .install.pre-commit .install.gitvalidation
|
||||||
;;
|
;;
|
||||||
automation) ;;
|
|
||||||
altbuild)
|
altbuild)
|
||||||
# Defined in .cirrus.yml
|
# Defined in .cirrus.yml
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -eo pipefail
|
|
||||||
|
|
||||||
# shellcheck source=./contrib/cirrus/lib.sh
|
|
||||||
source $(dirname $0)/lib.sh
|
|
||||||
|
|
||||||
cd $CIRRUS_WORKING_DIR
|
|
||||||
shellcheck --color=always --format=tty \
|
|
||||||
--shell=bash --external-sources \
|
|
||||||
--enable add-default-case,avoid-nullary-conditions,check-unassigned-uppercase \
|
|
||||||
--exclude SC2046,SC2034,SC2090,SC2064 \
|
|
||||||
--wiki-link-count=0 --severity=warning \
|
|
||||||
$SCRIPT_BASE/*.sh hack/get_ci_vm.sh
|
|
||||||
|
|
||||||
echo "Shellcheck: PASS"
|
|
Reference in New Issue
Block a user