fix: prevent ~30s hangs in setup and post steps (#99) #281
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test Action | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| jobs: | |
| test-setup: | |
| name: Test Setup Docker Builder | |
| runs-on: blacksmith | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10.33.0 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "20" | |
| - uses: bufbuild/buf-setup-action@v1 | |
| with: | |
| github_token: ${{ github.token }} | |
| - name: Configure npm for buf registry | |
| env: | |
| BUF_TOKEN: ${{ secrets.BUF_TOKEN }} | |
| run: | | |
| npm config set @buf:registry https://buf.build/gen/npm/v1/ | |
| npm config set //buf.build/gen/npm/v1/:_authToken $BUF_TOKEN | |
| - name: Build action | |
| run: | | |
| pnpm install | |
| pnpm run build | |
| - name: Test Docker Builder Setup | |
| uses: ./ | |
| with: | |
| buildx-version: "v0.23.0" | |
| nofallback: "false" | |
| continue-on-error: true # Allow failure since we may not have Blacksmith env vars | |
| - name: Verify Docker buildx | |
| run: | | |
| docker buildx version | |
| docker buildx ls | |
| - name: Test Docker build | |
| run: | | |
| cat > Dockerfile <<EOF | |
| FROM alpine:latest | |
| RUN echo "Testing setup-docker-builder" | |
| EOF | |
| docker buildx build --platform linux/amd64 . | |
| continue-on-error: true | |
| test-driver-opts: | |
| name: Test Driver Options Support | |
| runs-on: blacksmith | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10.33.0 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "20" | |
| - uses: bufbuild/buf-setup-action@v1 | |
| with: | |
| github_token: ${{ github.token }} | |
| - name: Configure npm for buf registry | |
| env: | |
| BUF_TOKEN: ${{ secrets.BUF_TOKEN }} | |
| run: | | |
| npm config set @buf:registry https://buf.build/gen/npm/v1/ | |
| npm config set //buf.build/gen/npm/v1/:_authToken $BUF_TOKEN | |
| - name: Build action | |
| run: | | |
| pnpm install | |
| pnpm run build | |
| - name: Test Docker Builder Setup with Driver Options | |
| uses: ./ | |
| with: | |
| buildx-version: "v0.23.0" | |
| driver-opts: | | |
| env.TEST_VAR_1=value1 | |
| env.TEST_VAR_2=value with spaces | |
| env.BUILDKIT_STEP_LOG_MAX_SIZE=10485760 | |
| env.BUILDKIT_STEP_LOG_MAX_SPEED=10485760 | |
| continue-on-error: true # Allow failure since we may not have Blacksmith env vars | |
| - name: Verify buildkitd received environment variables | |
| run: | | |
| # Check if buildkitd is running and try to verify environment | |
| if pgrep buildkitd > /dev/null; then | |
| echo "buildkitd is running" | |
| # Try to check the buildkitd log for environment variables | |
| if [ -f /tmp/buildkitd.log ]; then | |
| echo "Checking buildkitd log for configuration..." | |
| # Just verify the log exists and has content | |
| tail -n 50 /tmp/buildkitd.log || true | |
| fi | |
| else | |
| echo "buildkitd is not running (may be expected in test environment)" | |
| fi | |
| - name: Test Docker build with driver-opts configured | |
| run: | | |
| cat > Dockerfile <<EOF | |
| FROM alpine:latest | |
| RUN echo "Testing setup-docker-builder with driver-opts" | |
| EOF | |
| docker buildx build --platform linux/amd64 . | |
| continue-on-error: true |