Use JetBrainsMono Nerd Font at 15px in waybar #50
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: Build and Push | |
| on: | |
| push: | |
| branches: [main] | |
| paths-ignore: | |
| - "**.md" | |
| pull_request: | |
| branches: [main] | |
| schedule: | |
| # Rebuild weekly to pick up upstream Bluefin updates | |
| - cron: "0 6 * * 1" | |
| workflow_dispatch: | |
| env: | |
| IMAGE_NAME: dev-linux | |
| IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }} | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| id-token: write | |
| steps: | |
| - name: Free disk space | |
| uses: jlumbroso/free-disk-space@main | |
| with: | |
| tool-cache: false | |
| android: true | |
| dotnet: true | |
| haskell: true | |
| large-packages: true | |
| docker-images: true | |
| swap-storage: true | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install just | |
| uses: extractions/setup-just@v2 | |
| - name: Assemble Containerfile from fragments | |
| run: just assemble | |
| - name: Check Containerfile is up-to-date | |
| run: | | |
| if ! git diff --exit-code Containerfile; then | |
| echo "ERROR: Containerfile is out of sync with Containerfile.d/ — run 'just assemble' and commit." | |
| exit 1 | |
| fi | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Log in to GHCR | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Extract metadata | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }} | |
| tags: | | |
| type=raw,value=latest,enable={{is_default_branch}} | |
| type=sha,prefix=git- | |
| - name: Build image | |
| id: build | |
| uses: redhat-actions/buildah-build@v2 | |
| with: | |
| image: ${{ env.IMAGE_NAME }} | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| containerfiles: ./Containerfile | |
| oci: true | |
| - name: Install ShellSpec | |
| run: | | |
| mkdir -p vendor/shellspec | |
| curl -fsSL https://github.com/shellspec/shellspec/raw/master/install.sh \ | |
| | sh -s -- --yes --prefix "${GITHUB_WORKSPACE}/vendor/shellspec" | |
| - name: Run tests | |
| run: | | |
| IMAGE_REF=$(echo "${{ steps.build.outputs.tags }}" | tr -s '[:space:]' '\n' | grep -v '^$' | head -1) | |
| podman run --rm \ | |
| --workdir /workspace \ | |
| -v "${GITHUB_WORKSPACE}/spec:/workspace/spec:ro" \ | |
| -v "${GITHUB_WORKSPACE}/.shellspec:/workspace/.shellspec:ro" \ | |
| -v "${GITHUB_WORKSPACE}/vendor/shellspec:/shellspec:ro" \ | |
| "${IMAGE_REF}" \ | |
| /shellspec/lib/shellspec/shellspec | |
| - name: Push to GHCR | |
| # Only push on main branch, not PRs | |
| if: github.event_name != 'pull_request' | |
| uses: redhat-actions/push-to-registry@v2 | |
| with: | |
| image: ${{ steps.build.outputs.image }} | |
| tags: ${{ steps.build.outputs.tags }} | |
| registry: ${{ env.IMAGE_REGISTRY }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Output image URL | |
| if: github.event_name != 'pull_request' | |
| run: echo "Image pushed to ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}" |