Skip to content

Commit 084f45c

Browse files
committed
chore: run e2e in finch vm
Signed-off-by: Arjun Raja Yogidas <[email protected]>
1 parent 7ec7d02 commit 084f45c

File tree

1 file changed

+146
-0
lines changed

1 file changed

+146
-0
lines changed

.github/workflows/mac-test.yaml

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
name: macOS Tests
2+
on:
3+
push:
4+
branches:
5+
- main
6+
paths-ignore:
7+
- '**.md'
8+
pull_request:
9+
branches:
10+
- main
11+
paths-ignore:
12+
- '**.md'
13+
workflow_dispatch:
14+
env:
15+
GO_VERSION: '1.23.8'
16+
jobs:
17+
mac-test:
18+
runs-on: codebuild-Test-fd-codebuild-mac-${{ github.run_id }}-${{ github.run_attempt }}
19+
timeout-minutes: 30
20+
steps:
21+
- name: Clean macOS runner workspace
22+
run: |
23+
rm -rf ${{ github.workspace }}/*
24+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
25+
with:
26+
# We need to get all the git tags to make version injection work. See VERSION in Makefile for more detail.
27+
fetch-depth: 0
28+
persist-credentials: false
29+
submodules: recursive
30+
- uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
31+
with:
32+
go-version: ${{ env.GO_VERSION }}
33+
cache: false
34+
- name: Clean up previous files
35+
run: |
36+
sudo rm -rf /opt/finch
37+
sudo rm -rf ~/.finch
38+
sudo rm -rf ./_output
39+
if pgrep '^qemu-system'; then
40+
sudo pkill '^qemu-system'
41+
fi
42+
if pgrep '^socket_vmnet'; then
43+
sudo pkill '^socket_vmnet'
44+
fi
45+
46+
# Debug step to see available users
47+
- name: List available users and system info
48+
run: |
49+
echo "Current user: $(whoami)"
50+
echo "Current user ID: $(id -u)"
51+
echo "Current user home: $HOME"
52+
echo "Console user: $(stat -f "%Su" /dev/console)"
53+
echo "All users:"
54+
dscl . -list /Users | grep -v '^_'
55+
echo "Users with home directories:"
56+
ls -la /Users/
57+
echo "Environment variables:"
58+
env | sort
59+
echo "Brew info:"
60+
which brew || echo "brew not found in PATH"
61+
echo "PATH: $PATH"
62+
63+
- name: Install Rosetta 2
64+
run: echo "A" | softwareupdate --install-rosetta || true
65+
# Install dependencies using ec2-user
66+
- name: Install dependencies
67+
run: |
68+
echo "Installing dependencies as ec2-user..."
69+
70+
# Find brew path for ec2-user
71+
BREW_PATH=$(sudo -u ec2-user which brew || echo "/opt/homebrew/bin/brew")
72+
73+
# Install dependencies using ec2-user
74+
sudo -u ec2-user $BREW_PATH install lz4 automake autoconf libtool yq
75+
76+
# Verify installation
77+
sudo -u ec2-user $BREW_PATH list | grep lz4 || echo "lz4 not installed"
78+
shell: zsh {0}
79+
80+
# Install Finch
81+
- name: Install Finch
82+
run: |
83+
echo "Installing Finch as ec2-user..."
84+
85+
# Find brew path for ec2-user
86+
BREW_PATH=$(sudo -u ec2-user which brew || echo "/opt/homebrew/bin/brew")
87+
88+
# Install Finch using ec2-user
89+
sudo -u ec2-user $BREW_PATH install finch
90+
91+
# Verify installation
92+
sudo -u ec2-user $BREW_PATH list | grep finch || echo "finch not installed"
93+
sudo -u ec2-user which finch || echo "finch not in PATH"
94+
shell: zsh {0}
95+
96+
# Initialize and start Finch VM
97+
- name: Initialize Finch VM
98+
run: |
99+
echo "Initializing Finch VM as ec2-user..."
100+
101+
# Find finch path for ec2-user
102+
FINCH_PATH=$(sudo -u ec2-user which finch || echo "/opt/homebrew/bin/finch")
103+
104+
# Initialize VM using ec2-user
105+
sudo -u ec2-user $FINCH_PATH vm init
106+
107+
- name: Start Finch VM
108+
run: |
109+
echo "Starting Finch VM as ec2-user..."
110+
111+
# Find finch path for ec2-user
112+
FINCH_PATH=$(sudo -u ec2-user which finch || echo "/opt/homebrew/bin/finch")
113+
114+
# Start VM using ec2-user
115+
sudo -u ec2-user $FINCH_PATH vm start
116+
117+
# Verify VM is running
118+
sudo -u ec2-user $FINCH_PATH vm ls || echo "Cannot verify if VM is running"
119+
120+
# Run e2e tests inside the Finch VM
121+
- name: Run e2e tests
122+
run: |
123+
echo "Running e2e tests as ec2-user..."
124+
125+
# Run tests using ec2-user
126+
sudo -u ec2-user bash -c "cd ${{ github.workspace }} && DOCKER_HOST=unix:///Applications/Finch/lima/data/finch/sock/finch.sock make test-e2e"
127+
128+
# Run e2e tests with OPA authorization
129+
- name: Run opa e2e tests
130+
run: |
131+
echo "Running e2e tests with OPA authorization as ec2-user..."
132+
133+
# Run tests using ec2-user
134+
sudo -u ec2-user bash -c "cd ${{ github.workspace }} && DOCKER_HOST=unix:///Applications/Finch/lima/data/finch/sock/finch.sock make test-e2e-opa"
135+
136+
# Cleanup
137+
- name: Stop Finch VM
138+
run: |
139+
echo "Stopping Finch VM as ec2-user..."
140+
141+
# Find finch path for ec2-user
142+
FINCH_PATH=$(sudo -u ec2-user which finch || echo "/opt/homebrew/bin/finch")
143+
144+
# Stop VM using ec2-user
145+
sudo -u ec2-user $FINCH_PATH vm stop
146+
if: always()

0 commit comments

Comments
 (0)