This commit updates to images v0.117.0 so that the cross-distro.sh test works again (images removed fedora-39.json in main but the uses the previous version of images that includes fedora-39 so there is a mismatch (we should look into if there is a way to get github.com/osbuild/images@latest instead of main in the cross-arch test). It also updates all the vendor stuff that got pulled via the new images release (which is giantonormous). This update requires updating the Go version to 1.22.8
211 lines
6.2 KiB
YAML
211 lines
6.2 KiB
YAML
---
|
|
|
|
# Main collection of env. vars to set for all tasks and scripts.
|
|
env:
|
|
####
|
|
#### Global variables used for all tasks
|
|
####
|
|
# Overrides default location (/tmp/cirrus) for repo clone
|
|
CIRRUS_WORKING_DIR: "/var/tmp/go/src/github.com/containers/storage"
|
|
# Shell used to execute all script commands
|
|
CIRRUS_SHELL: "/bin/bash"
|
|
# Automation script path relative to $CIRRUS_WORKING_DIR)
|
|
SCRIPT_BASE: "./contrib/cirrus"
|
|
# No need to go crazy, but grab enough to cover most PRs
|
|
CIRRUS_CLONE_DEPTH: 50
|
|
|
|
####
|
|
#### Cache-image names to test with (double-quotes around names are critical)
|
|
###
|
|
FEDORA_NAME: "fedora-41"
|
|
DEBIAN_NAME: "debian-13"
|
|
|
|
# GCE project where images live
|
|
IMAGE_PROJECT: "libpod-218412"
|
|
# VM Image built in containers/automation_images
|
|
IMAGE_SUFFIX: "c20250107t132430z-f41f40d13"
|
|
FEDORA_CACHE_IMAGE_NAME: "fedora-${IMAGE_SUFFIX}"
|
|
DEBIAN_CACHE_IMAGE_NAME: "debian-${IMAGE_SUFFIX}"
|
|
|
|
####
|
|
#### Command variables to help avoid duplication
|
|
####
|
|
# Command to prefix every output line with a timestamp
|
|
# (can't do inline awk script, Cirrus-CI or YAML mangles quoting)
|
|
_TIMESTAMP: 'awk --file ${CIRRUS_WORKING_DIR}/${SCRIPT_BASE}/timestamp.awk'
|
|
_DFCMD: 'df -lhTx tmpfs'
|
|
_RAUDITCMD: 'cat /var/log/audit/audit.log'
|
|
_UAUDITCMD: 'cat /var/log/kern.log'
|
|
_JOURNALCMD: 'journalctl -b'
|
|
|
|
gcp_credentials: ENCRYPTED[c87717f04fb15499d19a3b3fa0ad2cdedecc047e82967785d101e9bc418e93219f755e662feac8390088a2df1a4d8464]
|
|
|
|
# Default timeout for each task
|
|
timeout_in: 120m
|
|
|
|
# Default VM to use unless set or modified by task
|
|
gce_instance:
|
|
image_project: "${IMAGE_PROJECT}"
|
|
zone: "us-central1-b" # Required by Cirrus for the time being
|
|
cpu: 2
|
|
memory: "4Gb"
|
|
disk: 200
|
|
image_name: "${FEDORA_CACHE_IMAGE_NAME}"
|
|
|
|
|
|
linux_testing: &linux_testing
|
|
depends_on:
|
|
- lint
|
|
gce_instance: # Only need to specify differences from defaults (above)
|
|
image_name: "${VM_IMAGE}"
|
|
|
|
# Separate scripts for separate outputs, makes debugging easier.
|
|
setup_script: '${CIRRUS_WORKING_DIR}/${SCRIPT_BASE}/setup.sh |& ${_TIMESTAMP}'
|
|
build_and_test_script: '${CIRRUS_WORKING_DIR}/${SCRIPT_BASE}/build_and_test.sh |& ${_TIMESTAMP}'
|
|
|
|
always:
|
|
df_script: '${_DFCMD} || true'
|
|
rh_audit_log_script: '${_RAUDITCMD} || true'
|
|
debian_audit_log_script: '${_UAUDITCMD} || true'
|
|
journal_log_script: '${_JOURNALCMD} || true'
|
|
|
|
|
|
fedora_testing_task: &fedora_testing
|
|
<<: *linux_testing
|
|
alias: fedora_testing
|
|
name: &std_test_name "${OS_NAME} ${TEST_DRIVER}"
|
|
env:
|
|
OS_NAME: "${FEDORA_NAME}"
|
|
VM_IMAGE: "${FEDORA_CACHE_IMAGE_NAME}"
|
|
# Not all $TEST_DRIVER combinations valid for all $VM_IMAGE types.
|
|
matrix: &test_matrix
|
|
- env:
|
|
TEST_DRIVER: "vfs"
|
|
- env:
|
|
TEST_DRIVER: "overlay"
|
|
- env:
|
|
TEST_DRIVER: "overlay-transient"
|
|
- env:
|
|
TEST_DRIVER: "fuse-overlay"
|
|
- env:
|
|
TEST_DRIVER: "fuse-overlay-whiteout"
|
|
- env:
|
|
TEST_DRIVER: "btrfs"
|
|
|
|
|
|
# aufs was dropped between 20.04 and 22.04, can't test it
|
|
debian_testing_task: &debian_testing
|
|
<<: *linux_testing
|
|
alias: debian_testing
|
|
name: *std_test_name
|
|
env:
|
|
OS_NAME: "${DEBIAN_NAME}"
|
|
VM_IMAGE: "${DEBIAN_CACHE_IMAGE_NAME}"
|
|
# Not all $TEST_DRIVER combinations valid for all $VM_IMAGE types.
|
|
matrix:
|
|
- env:
|
|
TEST_DRIVER: "vfs"
|
|
- env:
|
|
TEST_DRIVER: "overlay"
|
|
- env:
|
|
TEST_DRIVER: "fuse-overlay"
|
|
- env:
|
|
TEST_DRIVER: "fuse-overlay-whiteout"
|
|
- env:
|
|
TEST_DRIVER: "btrfs"
|
|
|
|
|
|
lint_task:
|
|
alias: lint
|
|
env:
|
|
CIRRUS_WORKING_DIR: "/go/src/github.com/containers/storage"
|
|
container:
|
|
image: golang
|
|
modules_cache:
|
|
fingerprint_script: cat go.sum
|
|
folder: $GOPATH/pkg/mod
|
|
build_script: |
|
|
apt-get update
|
|
apt-get install -y libbtrfs-dev
|
|
test_script: |
|
|
make TAGS=regex_precompile local-validate
|
|
make lint
|
|
make clean
|
|
|
|
|
|
# Update metadata on VM images referenced by this repository state
|
|
meta_task:
|
|
alias: meta
|
|
|
|
container:
|
|
image: "quay.io/libpod/imgts:latest"
|
|
cpu: 1
|
|
memory: 1
|
|
|
|
env:
|
|
# Space-separated list of images used by this repository state
|
|
IMGNAMES: |-
|
|
${FEDORA_CACHE_IMAGE_NAME}
|
|
${DEBIAN_CACHE_IMAGE_NAME}
|
|
BUILDID: "${CIRRUS_BUILD_ID}"
|
|
REPOREF: "${CIRRUS_CHANGE_IN_REPO}"
|
|
GCPJSON: ENCRYPTED[244a93fe8b386b48b96f748342bf741350e43805eee81dd04b45093bdf737e540b993fc735df41f131835fa0f9b65826]
|
|
GCPNAME: ENCRYPTED[91cf7aa421858b26b67835978d224b4a5c46afcf52a0f1ec1b69a99b248715dc8e92a1b56fde18e092acf256fa80ae9c]
|
|
GCPPROJECT: ENCRYPTED[79b0f7eb5958e25bc7095d5d368fa8d94447a43ffacb9c693de438186e2f767b7efe9563d6954297ae4730220e10aa9c]
|
|
CIRRUS_CLONE_DEPTH: 1 # source not used
|
|
|
|
script: '/usr/local/bin/entrypoint.sh |& ${_TIMESTAMP}'
|
|
|
|
|
|
vendor_task:
|
|
alias: vendor
|
|
container:
|
|
image: golang
|
|
modules_cache:
|
|
fingerprint_script: cat go.sum
|
|
folder: $GOPATH/pkg/mod
|
|
build_script: make vendor
|
|
test_script: hack/tree_status.sh
|
|
|
|
cross_task:
|
|
alias: cross
|
|
container:
|
|
image: golang:1.22
|
|
build_script: make cross
|
|
|
|
gofix_task:
|
|
alias: gofix
|
|
container:
|
|
image: golang:1.22
|
|
build_script: go fix ./...
|
|
test_script: git diff --exit-code
|
|
|
|
codespell_task:
|
|
alias: codespell
|
|
container:
|
|
image: python
|
|
build_script: pip install codespell
|
|
test_script: codespell
|
|
|
|
|
|
# Status aggregator for all tests. This task simply ensures a defined
|
|
# set of tasks all passed, and allows confirming that based on the status
|
|
# of this task.
|
|
success_task:
|
|
alias: success
|
|
# N/B: The prow merge-bot (tide) is sensitized to this exact name, DO NOT CHANGE IT.
|
|
# Ref: https://github.com/openshift/release/pull/49820
|
|
name: "Total Success"
|
|
depends_on:
|
|
- lint
|
|
- fedora_testing
|
|
- debian_testing
|
|
- meta
|
|
- vendor
|
|
- cross
|
|
- gofix
|
|
- codespell
|
|
container:
|
|
image: golang:1.21
|
|
clone_script: 'mkdir -p "$CIRRUS_WORKING_DIR"' # Source code not needed
|
|
script: /bin/true
|