Skip to content

Commit 7aefef1

Browse files
committed
chore: make every command ec2-user
Signed-off-by: Arjun Raja Yogidas <[email protected]>
1 parent 80e1184 commit 7aefef1

File tree

2 files changed

+61
-42
lines changed

2 files changed

+61
-42
lines changed

.github/workflows/ci.yaml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -105,19 +105,19 @@ jobs:
105105
run: |
106106
sudo ls /etc/cni/net.d
107107
sudo rm /etc/cni/net.d/87-podman-bridge.conflist
108-
- name: Verify Rego file presence
109-
run: ls -l ${{ github.workspace }}/docs/sample-rego-policies/example.rego
110-
- name: Set Rego file path
111-
run: echo "REGO_FILE_PATH=${{ github.workspace }}/docs/sample-rego-policies/example.rego" >> $GITHUB_ENV
112-
- name: Start finch-daemon with opa Authz
113-
run: sudo bin/finch-daemon --debug --experimental --rego-file ${{ github.workspace }}/docs/sample-rego-policies/example.rego --skip-rego-perm-check --socket-owner $UID --socket-addr /run/finch.sock --pidfile /run/finch.pid &
114-
- name: Run opa e2e tests
115-
run: sudo -E make test-e2e-opa
116-
- name: Clean up Daemon socket
117-
run: sudo rm /run/finch.sock && sudo rm /run/finch.pid
118-
- name: Start finch-daemon
119-
run: sudo bin/finch-daemon --debug --socket-owner $UID &
120-
- name: Run e2e test
121-
run: sudo make test-e2e
122-
- name: Clean up Daemon socket
123-
run: sudo rm /var/run/finch.sock && sudo rm /run/finch.pid
108+
# - name: Verify Rego file presence
109+
# run: ls -l ${{ github.workspace }}/docs/sample-rego-policies/example.rego
110+
# - name: Set Rego file path
111+
# run: echo "REGO_FILE_PATH=${{ github.workspace }}/docs/sample-rego-policies/example.rego" >> $GITHUB_ENV
112+
# - name: Start finch-daemon with opa Authz
113+
# run: sudo bin/finch-daemon --debug --experimental --rego-file ${{ github.workspace }}/docs/sample-rego-policies/example.rego --skip-rego-perm-check --socket-owner $UID --socket-addr /run/finch.sock --pidfile /run/finch.pid &
114+
# - name: Run opa e2e tests
115+
# run: sudo -E make test-e2e-opa
116+
# - name: Clean up Daemon socket
117+
# run: sudo rm /run/finch.sock && sudo rm /run/finch.pid
118+
# - name: Start finch-daemon
119+
# run: sudo bin/finch-daemon --debug --socket-owner $UID &
120+
# - name: Run e2e test
121+
# run: sudo make test-e2e
122+
# - name: Clean up Daemon socket
123+
# run: sudo rm /var/run/finch.sock && sudo rm /run/finch.pid

.github/workflows/mac-test.yaml

Lines changed: 45 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ jobs:
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,47 @@ 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'
133+
su ec2-user -c 'HOME=/Users/ec2-user finch vm start'
120134
fi
121135
shell: bash
122136

123137
# Check for Finch socket
124138
- name: Check for Finch socket
125139
run: |
126-
echo "Checking for Finch socket at /Applications/Finch/lima/data/finch/sock/finch.sock..."
140+
su ec2-user -c 'echo "Checking for Finch socket at /Applications/Finch/lima/data/finch/sock/finch.sock..."
127141
128142
# 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
143+
if test -S /Applications/Finch/lima/data/finch/sock/finch.sock; then
130144
echo "Socket file exists"
131145
else
132146
echo "ERROR: Socket file not found at expected location /Applications/Finch/lima/data/finch/sock/finch.sock"
133147
exit 1
134-
fi
148+
fi'
135149
136-
# Store the socket path for later steps
150+
# Store the socket path for later steps (this needs to run as root to modify GITHUB_ENV)
137151
echo "SOCKET_PATH=/Applications/Finch/lima/data/finch/sock/finch.sock" >> $GITHUB_ENV
138152
shell: bash
139153

@@ -144,12 +158,17 @@ jobs:
144158
persist-credentials: false
145159
submodules: recursive
146160
ssh-user: ec2-user
161+
162+
- name: Configure workspace for ec2-user
163+
run: |
164+
# Ensure workspace is properly owned by ec2-user
165+
chown -R ec2-user:staff ${{ github.workspace }}
147166
# Run e2e tests inside the Finch VM
148167
- name: Run e2e tests
149168
run: |
150169
echo "Running e2e tests as ec2-user..."
151170
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"
171+
su ec2-user -c "cd ${{ github.workspace }} && DOCKER_HOST=unix:///Applications/Finch/lima/data/finch/sock/finch.sock make test-e2e-inside-vm"
153172
shell: bash
154173

155174
# Run e2e tests with OPA authorization
@@ -158,7 +177,7 @@ jobs:
158177
echo "Running e2e tests with OPA authorization as ec2-user..."
159178
160179
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"
180+
su ec2-user -c "cd ${{ github.workspace }} && DOCKER_HOST=unix:///Applications/Finch/lima/data/finch/sock/finch.sock make test-e2e-opa"
162181
shell: bash
163182

164183
# Cleanup
@@ -167,6 +186,6 @@ jobs:
167186
echo "Stopping Finch VM as ec2-user..."
168187
169188
# 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"
189+
su ec2-user -c "source /Users/ec2-user/.brewrc && HOME=/Users/ec2-user finch vm stop"
171190
shell: bash
172191
if: always()

0 commit comments

Comments
 (0)