mirror of
https://github.com/containers/skopeo.git
synced 2025-04-28 03:10:18 +00:00
187 lines
5.6 KiB
YAML
187 lines
5.6 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-39"
|
|
DEBIAN_NAME: "debian-13"
|
|
|
|
# GCE project where images live
|
|
IMAGE_PROJECT: "libpod-218412"
|
|
# VM Image built in containers/automation_images
|
|
IMAGE_SUFFIX: "c20240102t155643z-f39f38d13"
|
|
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:
|
|
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 libdevmapper-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:
|
|
|
|
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:
|
|
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:
|
|
container:
|
|
image: golang:1.20
|
|
build_script: make cross
|
|
|
|
|
|
# Represent overall pass/fail status from required dependent tasks
|
|
success_task:
|
|
depends_on:
|
|
- lint
|
|
- fedora_testing
|
|
- debian_testing
|
|
- meta
|
|
- vendor
|
|
- cross
|
|
container:
|
|
image: golang:1.20
|
|
clone_script: 'mkdir -p "$CIRRUS_WORKING_DIR"' # Source code not needed
|
|
script: /bin/true
|