ci: add macOS ARM to install dependencies GHA CI job #687
Workflow file for this run
This file contains 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: CI | |
on: | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- "**.md" | |
- "src/**" | |
pull_request: | |
branches: | |
- main | |
paths-ignore: | |
- "**.md" | |
- "contrib/**" | |
- "Dockerfile" | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
install-dependencies: | |
# This is a spot check for make install.dependencies on macOS and Windows platforms. | |
# Finch-core provides the core dependencies needed to run Finch such as the base OS | |
# image, rootfs, and Lima bundle. Validate the mechanism used to install the core | |
# dependencies works on the respective platforms. | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-13, macos-13-xlarge, windows-2022] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
fetch-depth: 0 | |
persist-credentials: false | |
submodules: true | |
- name: Setup go | |
uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0 | |
with: | |
go-version-file: e2e/go.mod | |
cache-dependency-path: e2e/go.sum | |
- name: Install platform dependencies | |
run: make install.dependencies | |
- name: Clean up dependencies | |
run: make clean | |
e2e-tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
[ | |
[self-hosted, macos, amd64, 13, test], | |
[self-hosted, macos, amd64, 14, test], | |
[self-hosted, macos, arm64, 13, test], | |
[self-hosted, macos, arm64, 14, test], | |
] | |
vm_type: [ "vz", "qemu" ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
fetch-depth: 0 | |
persist-credentials: false | |
submodules: true | |
- name: Setup go | |
uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0 | |
with: | |
go-version-file: e2e/go.mod | |
cache-dependency-path: e2e/go.sum | |
- name: Clean up previous files | |
shell: zsh {0} | |
run: | | |
sudo rm -rf ~/.lima | |
sudo rm -rf ./_output | |
if pgrep '^qemu-system'; then | |
sudo pkill '^qemu-system' | |
fi | |
if pgrep '^socket_vmnet'; then | |
sudo pkill '^socket_vmnet' | |
fi | |
- name: Install dependencies | |
shell: zsh {0} | |
run: brew install lz4 automake autoconf libtool | |
- name: Build project | |
shell: zsh {0} | |
run: | | |
export PATH="/opt/homebrew/opt/libtool/libexec/gnubin:$PATH" | |
which libtool | |
# Install socket_vmnet to `_output/bin` which is used in $PATH | |
SOCKET_VMNET_TEMP_PREFIX=$(pwd)/_output/ make lima-socket-vmnet | |
make install.dependencies | |
- name: Run e2e tests | |
shell: zsh {0} | |
run: FINCH_VM_TYPE=${{ matrix.vm_type }} make test-e2e |