ci: add Apple Silicon smoke workflow #3
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Apple Silicon CI | |
| on: | |
| pull_request: | |
| branches: [dev, main] | |
| push: | |
| branches: [dev, main] | |
| schedule: | |
| - cron: "17 4 * * 1" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: apple-silicon-ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| dry-run-smoke: | |
| name: Apple Silicon dry-run smoke | |
| runs-on: macos-15 | |
| timeout-minutes: 20 | |
| env: | |
| HOMEBREW_NO_AUTO_UPDATE: "1" | |
| HOMEBREW_NO_INSTALL_CLEANUP: "1" | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 | |
| with: | |
| persist-credentials: false | |
| - name: Verify Apple Silicon runner | |
| run: | | |
| test "$(uname -s)" = "Darwin" | |
| test "$(uname -m)" = "arm64" | |
| sw_vers | |
| /bin/bash --version | head -n 1 | |
| - name: Run rig smoke checks | |
| run: | | |
| export HOME="$RUNNER_TEMP/rig-dry-run-home" | |
| export RIG_CONFIG_DIR="$HOME/.config/rig" | |
| mkdir -p "$HOME" | |
| assert_empty_stderr() { | |
| local stderr_file | |
| stderr_file=$1 | |
| if [ -s "$stderr_file" ]; then | |
| cat "$stderr_file" >&2 | |
| return 1 | |
| fi | |
| return 0 | |
| } | |
| for f in install.sh rig lib/rig/*.sh scripts/*.sh tests/*.sh; do | |
| bash -n "$f" | |
| done | |
| bash tests/run-tests.sh | |
| ./scripts/validate-catalog.sh | |
| ./rig dry-run --select vscode,chrome,node-npm --defaults finder-show-hidden-files 2>"$RUNNER_TEMP/rig-dry-run.stderr" | |
| assert_empty_stderr "$RUNNER_TEMP/rig-dry-run.stderr" | |
| ./install.sh --dry-run 2>"$RUNNER_TEMP/install-dry-run.stderr" | |
| assert_empty_stderr "$RUNNER_TEMP/install-dry-run.stderr" | |
| test ! -e "$RIG_CONFIG_DIR" | |
| test ! -e "$HOME/.local/share/rig" | |
| test ! -e "$HOME/.local/bin/rig" | |
| git diff --check | |
| - name: Install validation tools | |
| run: | | |
| if ! command -v shellcheck >/dev/null 2>&1; then | |
| brew install shellcheck | |
| fi | |
| if ! command -v actionlint >/dev/null 2>&1; then | |
| brew install actionlint | |
| fi | |
| - name: Run validation tools | |
| run: | | |
| shellcheck install.sh rig lib/rig/*.sh scripts/*.sh tests/*.sh | |
| actionlint .github/workflows/*.yml | |
| install-smoke: | |
| name: Apple Silicon install smoke | |
| needs: dry-run-smoke | |
| runs-on: macos-15 | |
| timeout-minutes: 30 | |
| env: | |
| HOMEBREW_NO_AUTO_UPDATE: "1" | |
| HOMEBREW_NO_INSTALL_CLEANUP: "1" | |
| RIG_SKIP_HOMEBREW_INSTALL: "yes" | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 | |
| with: | |
| persist-credentials: false | |
| - name: Verify Apple Silicon runner | |
| run: | | |
| test "$(uname -s)" = "Darwin" | |
| test "$(uname -m)" = "arm64" | |
| sw_vers | |
| /bin/bash --version | head -n 1 | |
| - name: Run formula-only install smoke | |
| run: | | |
| export HOME="$RUNNER_TEMP/rig-home" | |
| export RIG_CONFIG_DIR="$HOME/.config/rig" | |
| mkdir -p "$HOME" | |
| ./rig install --write-config-only --select gh | |
| grep -F 'brew "gh"' "$RIG_CONFIG_DIR/Brewfile" | |
| ./rig install --from-config | |
| brew bundle check --file="$RIG_CONFIG_DIR/Brewfile" | |
| gh --version |