mirror of https://github.com/containers/podman.git
54 lines
2.1 KiB
Bash
Executable File
54 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This script is intended to be called by Cirrus-CI on a Mac M1 persistent worker.
|
|
# It runs after the preparatory `mac_cleanup.sh` to performs all the user-level
|
|
# environment setup required to execute testing. It assumes whatever system-wide
|
|
# setup is required, has already happened and was successful.
|
|
|
|
set -euo pipefail
|
|
|
|
# Confirm rosetta is installed/enabled and working
|
|
if ! arch -arch x86_64 /usr/bin/uname -m; then
|
|
# This likely means whatever script used to prepare this mac failed
|
|
# and/or did not execute `sudo softwareupdate --install-rosetta --agree-to-license`
|
|
echo "Rosetta doesn't appear to be installed, or is non-functional."
|
|
exit 1
|
|
fi
|
|
|
|
# The otherwise standard `/etc/ci_environment` file cannot be used in this
|
|
# context, because the system is shared for multiple tasks. Instead, persist
|
|
# env. vars required during /subsequent/ testing steps via a "magic" Cirrus-CI
|
|
# mechanism. These cannot be set in the task YAML because they would interfere
|
|
# with repo. cloning and task preparation.
|
|
# Ref:
|
|
# https://cirrus-ci.org/guide/tips-and-tricks/#setting-environment-variables-from-scripts
|
|
|
|
# Tests expect to call compiled binaries first, make sure they're found first.
|
|
# shellcheck disable=SC2154
|
|
echo "PATH=$CIRRUS_WORKING_DIR/bin/darwin:$PATH" >> $CIRRUS_ENV
|
|
|
|
# Post-task cleanup needs to know the actual user home directory
|
|
# shellcheck disable=SC2154
|
|
echo "ORIGINAL_HOME=$HOME" >> $CIRRUS_ENV
|
|
|
|
# Help isolate CI-operations from system-operations and simplify task cleanup.
|
|
# shellcheck disable=SC2154
|
|
echo "HOME=$HOME/ci" >> $CIRRUS_ENV
|
|
# shellcheck disable=SC2154
|
|
echo "TMPDIR=/private/tmp/ci" >> $CIRRUS_ENV
|
|
|
|
# Removed completely during cleanup.
|
|
mkdir -p /private/tmp/ci
|
|
|
|
# Add policy.json
|
|
mkdir -p $HOME/ci/.config/containers
|
|
cp pkg/machine/ocipull/policy.json /$HOME/ci/.config/containers/
|
|
|
|
|
|
# Some test operations & checks require a git "identity"
|
|
# N/B: $HOME in this context does not include the /ci part automatically
|
|
# (see above) but it will when the next Cirrus-CI "_script" section
|
|
# takes over.
|
|
git config --file "$HOME/ci/.gitconfig" \
|
|
--add safe.directory $CIRRUS_WORKING_DIR
|