Skip to content

Harden remaining review findings (batch 2) #525

Harden remaining review findings (batch 2)

Harden remaining review findings (batch 2) #525

Workflow file for this run

name: CI
"on":
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
permissions:
contents: read
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
swiftpm:
name: SwiftPM checks
runs-on: macos-15
timeout-minutes: 60
steps:
- name: Check out
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
persist-credentials: false
fetch-depth: 0
- name: Verify trusted base release-manifest continuity
env:
EVENT_BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.before || '' }}
run: |
set -euo pipefail
BASE_SHA="${EVENT_BASE_SHA}"
if [[ ! "${BASE_SHA}" =~ ^[0-9a-f]{40}$ ]] || [[ "${BASE_SHA}" == "0000000000000000000000000000000000000000" ]]; then
BASE_SHA="$(git rev-parse HEAD^)"
fi
scripts/check-release-manifest.sh \
--manifest-only \
--base-ref "${BASE_SHA}" \
--require-base
- name: Configure SwiftPM build path
id: swiftpm
run: |
echo "SWIFT_BUILD_PATH=${RUNNER_TEMP}/vifty-ci-swiftpm-build" >> "${GITHUB_ENV}"
toolchain_fingerprint="$({
xcodebuild -version
swift --version
} | shasum -a 256 | awk '{print $1}')"
echo "toolchain_fingerprint=${toolchain_fingerprint}" >> "${GITHUB_OUTPUT}"
- name: Cache SPM build artifacts
uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5
with:
path: ${{ runner.temp }}/vifty-ci-swiftpm-build
key: ${{ runner.os }}-${{ runner.arch }}-spm-${{ steps.swiftpm.outputs.toolchain_fingerprint }}-${{ github.sha }}
- name: Show toolchain
run: |
sw_vers
xcodebuild -version
swift --version
- name: Lint workflows with pinned actionlint
run: scripts/run-actionlint.sh
- name: Run full verification
run: make verify-full
- name: Verify install script in temporary Applications directory
env:
VIFTY_INSTALL_DIR: ${{ runner.temp }}/Applications
run: |
make install
test -d "${VIFTY_INSTALL_DIR}/Vifty.app"
codesign --verify --deep --strict "${VIFTY_INSTALL_DIR}/Vifty.app"
cmp .build/Vifty.app/Contents/MacOS/Vifty "${VIFTY_INSTALL_DIR}/Vifty.app/Contents/MacOS/Vifty"
cmp .build/Vifty.app/Contents/MacOS/viftyctl "${VIFTY_INSTALL_DIR}/Vifty.app/Contents/MacOS/viftyctl"
cmp .build/Vifty.app/Contents/Resources/collect-agent-cooling-evidence.sh "${VIFTY_INSTALL_DIR}/Vifty.app/Contents/Resources/collect-agent-cooling-evidence.sh"
cmp .build/Vifty.app/Contents/Resources/collect-agent-run-smoke-evidence.sh "${VIFTY_INSTALL_DIR}/Vifty.app/Contents/Resources/collect-agent-run-smoke-evidence.sh"
for script in guarded-run.sh swift-test.sh make-build.sh custom-workload.sh; do
cmp ".build/Vifty.app/Contents/Resources/viftyctl-wrappers/${script}" "${VIFTY_INSTALL_DIR}/Vifty.app/Contents/Resources/viftyctl-wrappers/${script}"
done
cmp .build/Vifty.app/Contents/Resources/viftyctl-wrappers/README.md "${VIFTY_INSTALL_DIR}/Vifty.app/Contents/Resources/viftyctl-wrappers/README.md"
- name: Archive app bundle
run: ditto -c -k --keepParent .build/Vifty.app "${RUNNER_TEMP}/Vifty.app.zip"
- name: Upload app artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: Vifty.app
path: ${{ runner.temp }}/Vifty.app.zip
if-no-files-found: error