Skip to content

Commit db8964d

Browse files
committed
chore: base tests running
Signed-off-by: Arjun Raja Yogidas <[email protected]>
1 parent ce69e15 commit db8964d

File tree

9 files changed

+80
-411
lines changed

9 files changed

+80
-411
lines changed

.github/workflows/mac-test.yaml

Lines changed: 79 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ env:
1515
GO_VERSION: '1.23.8'
1616
jobs:
1717
mac-test:
18-
runs-on: codebuild-Test-fd-codebuild-mac-${{ github.run_id }}-${{ github.run_attempt }}
18+
runs-on: codebuild-newFD-CI-test-${{ github.run_id }}-${{ github.run_attempt }}
1919
timeout-minutes: 30
2020
steps:
2121
- name: Clean macOS runner workspace
@@ -30,160 +30,137 @@ jobs:
3030
with:
3131
go-version: ${{ env.GO_VERSION }}
3232
cache: false
33-
33+
3434
- name: Configure Go for ec2-user
3535
run: |
3636
# Ensure Go is properly configured for ec2-user
3737
chown -R ec2-user:staff $GOPATH || true
3838
chown -R ec2-user:staff $RUNNER_TOOL_CACHE/go || true
39-
# - name: Clean up previous files
39+
# - name: List available users and system info
4040
# run: |
41-
# sudo -u ec2-user bash rm -rf /opt/finch
42-
# sudo -u ec2-user bash rm -rf ~/.finch
43-
# sudo -u ec2-user bash rm -rf ./_output
44-
# if pgrep '^qemu-system'; then
45-
# sudo -u ec2-user bash pkill '^qemu-system'
46-
# fi
47-
# if pgrep '^socket_vmnet'; then
48-
# sudo -u ec2-user bash pkill '^socket_vmnet'
49-
# fi
50-
# Debug step to see available users
51-
- name: List available users and system info
52-
run: |
53-
su ec2-user -c 'echo "Current user: $(whoami)"
54-
echo "Current user ID: $(id -u)"
55-
echo "Current user home: $HOME"
56-
echo "Console user: $(stat -f "%Su" /dev/console)"
57-
echo "All users:"
58-
dscl . -list /Users | grep -v "^_"
59-
echo "Users with home directories:"
60-
ls -la /Users/
61-
echo "Environment variables:"
62-
env | sort
63-
echo "Brew info:"
64-
which brew || echo "brew not found in PATH"
65-
echo "PATH: $PATH"'
66-
41+
# su ec2-user -c 'echo "Current user: $(whoami)"
42+
# echo "Current user ID: $(id -u)"
43+
# echo "Current user home: $HOME"
44+
# echo "Console user: $(stat -f "%Su" /dev/console)"
45+
# echo "All users:"
46+
# dscl . -list /Users | grep -v "^_"
47+
# echo "Users with home directories:"
48+
# ls -la /Users/
49+
# echo "Environment variables:"
50+
# env | sort
51+
# echo "Brew info:"
52+
# which brew || echo "brew not found in PATH"
53+
# echo "PATH: $PATH"'
54+
6755
- name: Install Rosetta 2
68-
run: su ec2-user -c 'echo "A" | softwareupdate --install-rosetta || true'
69-
70-
# Fix Homebrew permissions and setup environment
71-
- name: Fix Homebrew permissions and setup environment
56+
run: su ec2-user -c 'echo "A" | /usr/sbin/softwareupdate --install-rosetta --agree-to-license || true'
57+
58+
- name: Configure Homebrew for ec2-user
7259
run: |
73-
echo "Fixing Homebrew permissions for ec2-user..."
74-
chown -R ec2-user:staff /opt/homebrew
75-
76-
# Create a cache directory that ec2-user can access
77-
mkdir -p /tmp/homebrew-cache
78-
chown -R ec2-user:staff /tmp/homebrew-cache
79-
80-
# Create a .brewrc file for ec2-user with environment settings
81-
su ec2-user -c 'cat > /Users/ec2-user/.brewrc << EOF
60+
echo "Creating .brewrc file for ec2-user..."
61+
cat > /Users/ec2-user/.brewrc << 'EOF'
62+
# Homebrew environment setup
63+
export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:$PATH"
64+
export HOMEBREW_PREFIX="/opt/homebrew"
65+
export HOMEBREW_CELLAR="/opt/homebrew/Cellar"
66+
export HOMEBREW_REPOSITORY="/opt/homebrew"
8267
export HOMEBREW_NO_AUTO_UPDATE=1
83-
export HOMEBREW_NO_INSTALL_CLEANUP=1
84-
export HOMEBREW_CACHE=/tmp/homebrew-cache
85-
export HOMEBREW_NO_ENV_HINTS=1
86-
EOF'
87-
88-
# Make sure ec2-user sources the .brewrc file
89-
su ec2-user -c 'echo "source /Users/ec2-user/.brewrc" >> /Users/ec2-user/.zshrc'
90-
su ec2-user -c 'echo "source /Users/ec2-user/.brewrc" >> /Users/ec2-user/.bashrc'
68+
EOF
69+
chown ec2-user:staff /Users/ec2-user/.brewrc
9170
71+
# Fix Homebrew permissions
72+
echo "Setting permissions for Homebrew directories..."
73+
mkdir -p /opt/homebrew/Cellar
74+
chown -R ec2-user:staff /opt/homebrew
75+
shell: bash
76+
9277
# Install dependencies using ec2-user with custom environment
9378
- name: Install dependencies
9479
run: |
9580
echo "Installing dependencies as ec2-user..."
96-
9781
# Run brew with custom environment
9882
su ec2-user -c 'source /Users/ec2-user/.brewrc && brew install lz4 automake autoconf libtool yq'
99-
100-
# Verify installation
101-
su ec2-user -c 'source /Users/ec2-user/.brewrc && brew list | grep lz4 || echo "lz4 not installed"'
10283
shell: bash
103-
84+
85+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
86+
with:
87+
# We need to get all the git tags to make version injection work. See VERSION in Makefile for more detail.
88+
fetch-depth: 0
89+
persist-credentials: false
90+
submodules: recursive
91+
92+
- name: Configure workspace for ec2-user
93+
run: |
94+
# Ensure workspace is properly owned by ec2-user
95+
chown -R ec2-user:staff ${{ github.workspace }}
96+
10497
# Install Finch
10598
- name: Install Finch
10699
run: |
107100
echo "Installing Finch as ec2-user..."
108-
101+
109102
# Run brew with custom environment
110103
su ec2-user -c 'source /Users/ec2-user/.brewrc && brew install finch --cask'
111-
104+
112105
# Verify installation
113106
su ec2-user -c 'source /Users/ec2-user/.brewrc && brew list | grep finch || echo "finch not installed"'
114-
107+
115108
# Create .finch directory and config for ec2-user
116109
echo "Creating .finch directory and config for ec2-user..."
117110
su ec2-user -c 'mkdir -p /Users/ec2-user/.finch'
118111
su ec2-user -c 'echo "cpus: 4" > /Users/ec2-user/.finch/finch.yaml'
119112
su ec2-user -c 'echo "memory: 8GiB" >> /Users/ec2-user/.finch/finch.yaml'
120-
113+
121114
# Fix ownership of var/run directories
122115
echo "Fixing ownership of /private/var/run directories..."
123116
chown -R root:wheel /private/var/run
124117
mkdir -p /private/var/run/finch-lima
125118
chown -R root:wheel /private/var/run/finch-lima
126-
119+
127120
# Check finch version with HOME set to ec2-user's home
128121
echo "Checking finch version..."
129122
if ! su ec2-user -c 'HOME=/Users/ec2-user finch version'; then
130123
echo "finch version command failed, starting VM..."
131-
su ec2-user -c 'HOME=/Users/ec2-user finch vm remove'
132124
su ec2-user -c 'HOME=/Users/ec2-user finch vm init'
133125
fi
134126
shell: bash
135127

136-
# Check for Finch socket
137-
- name: Check for Finch socket
138-
run: |
139-
su ec2-user -c 'echo "Checking for Finch socket at /Applications/Finch/lima/data/finch/sock/finch.sock..."
140-
141-
# Check if the socket file exists
142-
if test -S /Applications/Finch/lima/data/finch/sock/finch.sock; then
143-
echo "Socket file exists"
144-
else
145-
echo "ERROR: Socket file not found at expected location /Applications/Finch/lima/data/finch/sock/finch.sock"
146-
exit 1
147-
fi'
148-
149-
# Store the socket path for later steps (this needs to run as root to modify GITHUB_ENV)
150-
echo "SOCKET_PATH=/Applications/Finch/lima/data/finch/sock/finch.sock" >> $GITHUB_ENV
151-
shell: bash
128+
# Check for Finch socket
129+
# - name: Check for Finch socket
130+
# run: |
131+
# su ec2-user -c 'echo "Checking for Finch socket at /Applications/Finch/lima/data/finch/sock/finch.sock..."
152132

153-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
154-
with:
155-
# We need to get all the git tags to make version injection work. See VERSION in Makefile for more detail.
156-
fetch-depth: 0
157-
persist-credentials: false
158-
submodules: recursive
159-
ssh-user: ec2-user
160-
161-
- name: Configure workspace for ec2-user
162-
run: |
163-
# Ensure workspace is properly owned by ec2-user
164-
chown -R ec2-user:staff ${{ github.workspace }}
133+
# # Check if the socket file exists
134+
# if test -S /Applications/Finch/lima/data/finch/sock/finch.sock; then
135+
# echo "Socket file exists"
136+
# else
137+
# echo "ERROR: Socket file not found at expected location /Applications/Finch/lima/data/finch/sock/finch.sock"
138+
# exit 1
139+
# fi'
140+
141+
# # Store the socket path for later steps (this needs to run as root to modify GITHUB_ENV)
142+
# echo "SOCKET_PATH=/Applications/Finch/lima/data/finch/sock/finch.sock" >> $GITHUB_ENV
143+
# shell: bash
144+
145+
165146
# Run e2e tests inside the Finch VM
166147
- name: Run e2e tests
167148
run: |
168149
echo "Running e2e tests as ec2-user..."
169-
170-
su ec2-user -c "cd ${{ github.workspace }} && DOCKER_HOST=unix:///Applications/Finch/lima/data/finch/sock/finch.sock make test-e2e-inside-vm"
171-
shell: bash
172-
173-
# Run e2e tests with OPA authorization
174-
- name: Run opa e2e tests
175-
run: |
176-
echo "Running e2e tests with OPA authorization as ec2-user..."
177-
178-
echo "Using DOCKER_HOST=unix:///Applications/Finch/lima/data/finch/sock/finch.sock"
179-
su ec2-user -c "cd ${{ github.workspace }} && DOCKER_HOST=unix:///Applications/Finch/lima/data/finch/sock/finch.sock make test-e2e-opa"
150+
su ec2-user -c "cd ${{ github.workspace }} && STATIC=1 GOPROXY=direct GOOS=linux GOARCH=$(GOARCH) make"
151+
su ec2-user -c 'HOME=/Users/ec2-user finch vm stop'
152+
su ec2-user -c 'HOME=/Users/ec2-user finch vm remove'
153+
154+
su ec2-user -c "cp ${{ github.workspace }}/bin/finch-daemon -f /Applications/Finch/finch-daemon/finch-daemon"
155+
su ec2-user -c 'HOME=/Users/ec2-user finch vm init'
156+
su ec2-user -c make test-e2e-inside-vm
180157
shell: bash
181-
158+
182159
# Cleanup
183160
- name: Stop Finch VM
184161
run: |
185162
echo "Stopping Finch VM as ec2-user..."
186-
163+
187164
# Stop VM using ec2-user with custom environment
188165
su ec2-user -c "source /Users/ec2-user/.brewrc && HOME=/Users/ec2-user finch vm stop"
189166
shell: bash

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ endif
147147

148148

149149
DAEMON_DOCKER_HOST := "unix:///Applications/Finch/lima/data/finch/sock/finch.sock"
150+
# DAEMON_ROOT
150151

151152
.PHONY: test-e2e-inside-vm
152153
test-e2e-inside-vm: macos

docs/finch-daemon-with-systemd.md

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)