chore(deps): bump github.com/quic-go/quic-go from 0.59.0 to 0.59.1 in /server in the go_modules group across 1 directory #877
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| cache-dependency-path: ui/package-lock.json | |
| - name: Install UI deps | |
| run: cd ui && npm ci | |
| - name: Svelte check | |
| run: cd ui && npx svelte-check --tsconfig ./tsconfig.json | |
| lint-go: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25' | |
| cache-dependency-path: server/go.sum | |
| - uses: ./.github/actions/setup-cgo-deps | |
| - name: Vet | |
| run: cd server && go vet ./... | |
| - name: golangci-lint | |
| uses: golangci/golangci-lint-action@v7 | |
| with: | |
| version: v2.10.1 | |
| working-directory: server | |
| test-go: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25' | |
| cache-dependency-path: server/go.sum | |
| - uses: ./.github/actions/setup-cgo-deps | |
| - name: Run tests with coverage | |
| run: cd server && go test ./... -race -coverprofile=coverage.out -timeout=15m | |
| - name: Upload Go coverage | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: go-coverage | |
| path: server/coverage.out | |
| test-go-nocgo: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25' | |
| cache-dependency-path: server/go.sum | |
| - name: Verify non-cgo build | |
| run: cd server && CGO_ENABLED=0 go build ./... | |
| - name: Run non-cgo tests | |
| run: cd server && CGO_ENABLED=0 go test ./... -short -timeout=15m | |
| test-ui: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| cache-dependency-path: ui/package-lock.json | |
| - name: Install deps | |
| run: cd ui && npm ci | |
| - name: Unit tests | |
| run: cd ui && npx vitest run | |
| - name: Install Playwright | |
| run: cd ui && npx playwright install --with-deps chromium | |
| - name: E2E tests | |
| run: cd ui && npx playwright test | |
| docker: | |
| needs: [test-go, test-ui] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build Docker image | |
| run: docker build -t switchframe:ci . | |
| - name: Smoke test Docker image | |
| run: | | |
| docker run -d --name sf-smoke -p 9090:9090 switchframe:ci --demo | |
| for i in $(seq 1 30); do | |
| if curl -sf http://localhost:9090/health > /dev/null 2>&1; then | |
| echo "Health check passed after ${i}s" | |
| break | |
| fi | |
| if [ "$i" -eq 30 ]; then | |
| echo "Health check failed after 30s" | |
| docker logs sf-smoke | |
| exit 1 | |
| fi | |
| sleep 1 | |
| done | |
| docker stop sf-smoke | |
| docker rm sf-smoke | |
| publish: | |
| name: Publish Docker Image | |
| needs: [lint, lint-go, test-go, test-ui, docker] | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| push: true | |
| tags: | | |
| ghcr.io/${{ github.repository }}:latest | |
| ghcr.io/${{ github.repository }}:${{ github.sha }} |