|
52 | 52 |
|
53 | 53 | macos: |
54 | 54 | runs-on: macos-latest |
| 55 | + # Note: Docker does not work on Apple Silicon (macos-latest) due to lack of nested virtualization. |
| 56 | + # If Docker is needed, consider using macos-13 (Intel) or Linux runners. |
55 | 57 |
|
56 | 58 | steps: |
57 | 59 | - uses: actions/checkout@v4 |
@@ -80,69 +82,32 @@ jobs: |
80 | 82 | chmod +x scripts/build.sh scripts/test.sh scripts/start-influxdb.sh scripts/stop-influxdb.sh |
81 | 83 | ./scripts/build.sh Release |
82 | 84 | |
83 | | - - name: Install Docker (try Colima) |
| 85 | + - name: Set up Docker on macOS |
84 | 86 | id: docker-setup |
85 | 87 | continue-on-error: true |
86 | | - run: | |
87 | | - echo "docker_available=false" >> $GITHUB_OUTPUT |
88 | | - echo "Attempting to set up Docker via Colima..." |
89 | | - # Install Docker CLI and Colima (headless Docker for macOS) |
90 | | - brew install docker colima docker-compose || true |
91 | | - |
92 | | - # Try to start Colima (may fail on GitHub Actions runners) |
93 | | - if colima start > /dev/null 2>&1; then |
94 | | - # Wait for Docker to be ready |
95 | | - timeout=60 |
96 | | - elapsed=0 |
97 | | - docker_ready=false |
98 | | - while [ $elapsed -lt $timeout ]; do |
99 | | - if docker info > /dev/null 2>&1; then |
100 | | - echo "Docker is ready!" |
101 | | - docker_ready=true |
102 | | - break |
103 | | - fi |
104 | | - sleep 2 |
105 | | - elapsed=$((elapsed + 2)) |
106 | | - done |
107 | | - |
108 | | - if [ "$docker_ready" = "true" ] || docker info > /dev/null 2>&1; then |
109 | | - echo "docker_available=true" >> $GITHUB_OUTPUT |
110 | | - else |
111 | | - echo "Docker installed but not responding" |
112 | | - echo "docker_available=false" >> $GITHUB_OUTPUT |
113 | | - fi |
114 | | - else |
115 | | - echo "Colima failed to start (known issue on GitHub Actions macOS runners)" |
116 | | - echo "docker_available=false" >> $GITHUB_OUTPUT |
117 | | - fi |
| 88 | + uses: douglascamata/setup-docker-macos-action@v1 |
118 | 89 |
|
119 | 90 | - name: Start InfluxDB |
120 | | - if: steps.docker-setup.outputs.docker_available == 'true' |
| 91 | + if: steps.docker-setup.outcome == 'success' |
121 | 92 | run: | |
122 | 93 | ./scripts/start-influxdb.sh |
123 | 94 | |
124 | 95 | - name: Run tests |
125 | | - if: steps.docker-setup.outputs.docker_available == 'true' |
| 96 | + if: steps.docker-setup.outcome == 'success' |
126 | 97 | run: | |
127 | 98 | ./scripts/test.sh |
128 | 99 | |
129 | 100 | - name: Skip integration tests (Docker unavailable) |
130 | | - if: steps.docker-setup.outputs.docker_available != 'true' |
| 101 | + if: steps.docker-setup.outcome != 'success' |
131 | 102 | run: | |
132 | | - echo "⚠️ Docker/Colima unavailable on macOS runner - skipping integration tests" |
| 103 | + echo "⚠️ Docker unavailable on macOS runner - skipping integration tests" |
133 | 104 | echo "Build completed successfully, but integration tests were skipped." |
134 | | - echo "This is a known limitation of Docker on macOS GitHub Actions runners." |
| 105 | + echo "This is a known limitation of Docker on macOS GitHub Actions runners (Apple Silicon)." |
135 | 106 | |
136 | 107 | - name: Stop InfluxDB |
137 | | - if: always() && steps.docker-setup.outputs.docker_available == 'true' |
| 108 | + if: always() && steps.docker-setup.outcome == 'success' |
138 | 109 | run: | |
139 | 110 | ./scripts/stop-influxdb.sh || true |
140 | | - |
141 | | - - name: Stop Colima |
142 | | - if: always() |
143 | | - run: | |
144 | | - colima stop || true |
145 | | - colima delete -f || true |
146 | 111 |
|
147 | 112 | windows: |
148 | 113 | runs-on: windows-latest |
|
0 commit comments