3030 with :
3131 go-version : ${{ env.GO_VERSION }}
3232 cache : false
33+
34+ - name : Configure Go for ec2-user
35+ run : |
36+ # Ensure Go is properly configured for ec2-user
37+ chown -R ec2-user:staff $GOPATH || true
38+ chown -R ec2-user:staff $RUNNER_TOOL_CACHE/go || true
3339 # - name: Clean up previous files
3440 # run: |
3541 # sudo -u ec2-user bash rm -rf /opt/finch
@@ -44,55 +50,55 @@ jobs:
4450 # Debug step to see available users
4551 - name : List available users and system info
4652 run : |
47- echo "Current user: $(whoami)"
53+ su ec2-user -c ' echo "Current user: $(whoami)"
4854 echo "Current user ID: $(id -u)"
4955 echo "Current user home: $HOME"
5056 echo "Console user: $(stat -f "%Su" /dev/console)"
5157 echo "All users:"
52- dscl . -list /Users | grep -v '^_'
58+ dscl . -list /Users | grep -v "^_"
5359 echo "Users with home directories:"
5460 ls -la /Users/
5561 echo "Environment variables:"
5662 env | sort
5763 echo "Brew info:"
5864 which brew || echo "brew not found in PATH"
59- echo "PATH: $PATH"
65+ echo "PATH: $PATH"'
6066
6167 - name : Install Rosetta 2
62- run : echo "A" | softwareupdate --install-rosetta || true
68+ run : su ec2-user -c ' echo "A" | softwareupdate --install-rosetta || true'
6369
6470 # Fix Homebrew permissions and setup environment
6571 - name : Fix Homebrew permissions and setup environment
6672 run : |
6773 echo "Fixing Homebrew permissions for ec2-user..."
68- sudo chown -R ec2-user:staff /opt/homebrew
74+ chown -R ec2-user:staff /opt/homebrew
6975
7076 # Create a cache directory that ec2-user can access
71- sudo mkdir -p /tmp/homebrew-cache
72- sudo chown -R ec2-user:staff /tmp/homebrew-cache
77+ mkdir -p /tmp/homebrew-cache
78+ chown -R ec2-user:staff /tmp/homebrew-cache
7379
7480 # Create a .brewrc file for ec2-user with environment settings
75- sudo -u ec2-user bash -c 'cat > /Users/ec2-user/.brewrc << EOF
81+ su ec2-user -c 'cat > /Users/ec2-user/.brewrc << EOF
7682 export HOMEBREW_NO_AUTO_UPDATE=1
7783 export HOMEBREW_NO_INSTALL_CLEANUP=1
7884 export HOMEBREW_CACHE=/tmp/homebrew-cache
7985 export HOMEBREW_NO_ENV_HINTS=1
8086 EOF'
8187
8288 # Make sure ec2-user sources the .brewrc file
83- sudo -u ec2-user bash -c 'echo "source /Users/ec2-user/.brewrc" >> /Users/ec2-user/.zshrc'
84- sudo -u ec2-user bash -c 'echo "source /Users/ec2-user/.brewrc" >> /Users/ec2-user/.bashrc'
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'
8591
8692 # Install dependencies using ec2-user with custom environment
8793 - name : Install dependencies
8894 run : |
8995 echo "Installing dependencies as ec2-user..."
9096
9197 # Run brew with custom environment
92- sudo -u ec2-user bash -c 'source /Users/ec2-user/.brewrc && brew install lz4 automake autoconf libtool yq'
98+ su ec2-user -c 'source /Users/ec2-user/.brewrc && brew install lz4 automake autoconf libtool yq'
9399
94100 # Verify installation
95- sudo -u ec2-user bash -c 'source /Users/ec2-user/.brewrc && brew list | grep lz4 || echo "lz4 not installed"'
101+ su ec2-user -c 'source /Users/ec2-user/.brewrc && brew list | grep lz4 || echo "lz4 not installed"'
96102 shell : bash
97103
98104 # Install Finch
@@ -101,39 +107,46 @@ jobs:
101107 echo "Installing Finch as ec2-user..."
102108
103109 # Run brew with custom environment
104- sudo -u ec2-user bash -c 'source /Users/ec2-user/.brewrc && brew install finch --cask'
110+ su ec2-user -c 'source /Users/ec2-user/.brewrc && brew install finch --cask'
105111
106112 # Verify installation
107- sudo -u ec2-user bash -c 'source /Users/ec2-user/.brewrc && brew list | grep finch || echo "finch not installed"'
113+ su ec2-user -c 'source /Users/ec2-user/.brewrc && brew list | grep finch || echo "finch not installed"'
108114
109115 # Create .finch directory and config for ec2-user
110116 echo "Creating .finch directory and config for ec2-user..."
111- sudo -u ec2-user bash -c 'mkdir -p /Users/ec2-user/.finch'
112- sudo -u ec2-user bash -c 'echo "cpus: 4" > /Users/ec2-user/.finch/finch.yaml'
113- sudo -u ec2-user bash -c 'echo "memory: 8GiB" >> /Users/ec2-user/.finch/finch.yaml'
117+ su ec2-user -c 'mkdir -p /Users/ec2-user/.finch'
118+ su ec2-user -c 'echo "cpus: 4" > /Users/ec2-user/.finch/finch.yaml'
119+ su ec2-user -c 'echo "memory: 8GiB" >> /Users/ec2-user/.finch/finch.yaml'
120+
121+ # Fix ownership of var/run directories
122+ echo "Fixing ownership of /private/var/run directories..."
123+ chown -R root:wheel /private/var/run
124+ mkdir -p /private/var/run/finch-lima
125+ chown -R root:wheel /private/var/run/finch-lima
114126
115127 # Check finch version with HOME set to ec2-user's home
116128 echo "Checking finch version..."
117- if ! sudo -u ec2-user bash -c 'HOME=/Users/ec2-user finch version'; then
129+ if ! su ec2-user -c 'HOME=/Users/ec2-user finch version'; then
118130 echo "finch version command failed, starting VM..."
119- sudo -u ec2-user bash -c 'HOME=/Users/ec2-user finch vm start'
131+ su ec2-user -c 'HOME=/Users/ec2-user finch vm remove'
132+ su ec2-user -c 'HOME=/Users/ec2-user finch vm init'
120133 fi
121134 shell : bash
122135
123136 # Check for Finch socket
124137 - name : Check for Finch socket
125138 run : |
126- echo "Checking for Finch socket at /Applications/Finch/lima/data/finch/sock/finch.sock..."
139+ su ec2-user -c ' echo "Checking for Finch socket at /Applications/Finch/lima/data/finch/sock/finch.sock..."
127140
128141 # Check if the socket file exists
129- if sudo -u ec2-user bash -c ' test -S /Applications/Finch/lima/data/finch/sock/finch.sock' ; then
142+ if test -S /Applications/Finch/lima/data/finch/sock/finch.sock; then
130143 echo "Socket file exists"
131144 else
132145 echo "ERROR: Socket file not found at expected location /Applications/Finch/lima/data/finch/sock/finch.sock"
133146 exit 1
134- fi
147+ fi'
135148
136- # Store the socket path for later steps
149+ # Store the socket path for later steps (this needs to run as root to modify GITHUB_ENV)
137150 echo "SOCKET_PATH=/Applications/Finch/lima/data/finch/sock/finch.sock" >> $GITHUB_ENV
138151 shell : bash
139152
@@ -144,12 +157,17 @@ jobs:
144157 persist-credentials : false
145158 submodules : recursive
146159 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 }}
147165 # Run e2e tests inside the Finch VM
148166 - name : Run e2e tests
149167 run : |
150168 echo "Running e2e tests as ec2-user..."
151169
152- sudo -u ec2-user bash -c "cd ${{ github.workspace }} && DOCKER_HOST=unix:///Applications/Finch/lima/data/finch/sock/finch.sock make test-e2e-inside-vm"
170+ su ec2-user -c "cd ${{ github.workspace }} && DOCKER_HOST=unix:///Applications/Finch/lima/data/finch/sock/finch.sock make test-e2e-inside-vm"
153171 shell : bash
154172
155173 # Run e2e tests with OPA authorization
@@ -158,7 +176,7 @@ jobs:
158176 echo "Running e2e tests with OPA authorization as ec2-user..."
159177
160178 echo "Using DOCKER_HOST=unix:///Applications/Finch/lima/data/finch/sock/finch.sock"
161- sudo -u ec2-user bash -c "cd ${{ github.workspace }} && DOCKER_HOST=unix:///Applications/Finch/lima/data/finch/sock/finch.sock make test-e2e-opa"
179+ su ec2-user -c "cd ${{ github.workspace }} && DOCKER_HOST=unix:///Applications/Finch/lima/data/finch/sock/finch.sock make test-e2e-opa"
162180 shell : bash
163181
164182 # Cleanup
@@ -167,6 +185,6 @@ jobs:
167185 echo "Stopping Finch VM as ec2-user..."
168186
169187 # Stop VM using ec2-user with custom environment
170- sudo -u ec2-user bash -c "source /Users/ec2-user/.brewrc && HOME=/Users/ec2-user finch vm stop"
188+ su ec2-user -c "source /Users/ec2-user/.brewrc && HOME=/Users/ec2-user finch vm stop"
171189 shell : bash
172190 if : always()
0 commit comments