Improve package management UI #11
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: ["**"] | |
| pull_request: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| packages: write | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.25" | |
| - uses: oven-sh/setup-bun@v2 | |
| - name: Install frontend dependencies | |
| run: cd frontend && bun install --frozen-lockfile | |
| - name: Typecheck frontend | |
| run: cd frontend && bunx tsc -b --noEmit | |
| - name: Build frontend | |
| run: | | |
| cd frontend && bun run build | |
| cp -r dist ../internal/frontend/dist | |
| - name: Go vet | |
| run: go vet ./... | |
| - name: Go test | |
| run: go test ./... | |
| # Sanity-check the install script: syntax parses, --help runs. | |
| # Catches typos before someone pipes them to sh. | |
| - name: install.sh syntax | |
| run: | | |
| bash -n scripts/install.sh | |
| bash scripts/install.sh --help >/dev/null | |
| docker: | |
| if: github.ref == 'refs/heads/main' && github.event_name == 'push' | |
| needs: test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: docker/setup-buildx-action@v3 | |
| - uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - uses: docker/metadata-action@v5 | |
| id: meta | |
| with: | |
| images: ghcr.io/${{ github.repository }} | |
| tags: | | |
| type=raw,value=main | |
| type=sha,prefix=sha- | |
| - uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| push: true | |
| # Keep in sync with release.yml — dropping arm64 avoids the | |
| # ~7× QEMU slowdown on the frontend build, and there's no | |
| # arm64 consumer of the main image today. | |
| platforms: linux/amd64 | |
| build-args: | | |
| VERSION=main-${{ github.sha }} | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max |