Skip to content

Bump DeterminateSystems/nix-installer-action from 13 to 14 #34

Bump DeterminateSystems/nix-installer-action from 13 to 14

Bump DeterminateSystems/nix-installer-action from 13 to 14 #34

Workflow file for this run

---
name: CI
on:
push:
branches:
- main
tags:
- 'v*'
pull_request:
jobs:
formatting-and-quality:
name: Formatting and Quality
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v14
# Evaluate the devshell here so that the time reported for subsequent
# steps that use it reflect what is actually done there.
- name: Evaluate devshell
run: nix develop
- name: Format
run: nix develop --command treefmt --fail-on-change
- name: cargo-deny
run: nix develop --command cargo-deny check
- name: Clippy
run: nix develop --command cargo clippy --all-targets -- -D warnings
- name: Tests
run: nix develop --command cargo test
build:
name: Build
needs:
- formatting-and-quality
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v14
# Evaluate the devshell here so that the time reported for subsequent
# steps that use it reflect what is actually done there.
- name: Evaluate devshell
run: nix develop
- name: Build
run: nix build -L
- name: Build and push container image
if: ${{ github.ref_name == 'main' || github.ref_type == 'tag' }}
run: |
set -x
# Build image via Nix and take the resulting path as the local container registry
local_cr="docker-archive://$(nix build .#container-image --no-link --print-out-paths)"
# The container registry to push images to (GHCR)
remote_cr="docker://ghcr.io/dannixon/dad-joke-hotline"
remote_cr_creds="${{ github.repository_owner }}:${{ github.token }}"
# Push image using the Git ref name as the image tag (i.e. "main" or the tag name)
skopeo copy --dest-creds="$remote_cr_creds" "$local_cr" "$remote_cr:${{ github.ref_name }}"
# Push image using the Git SHA as the image tag
skopeo copy --dest-creds="$remote_cr_creds" "$local_cr" "$remote_cr:${{ github.sha }}"
# If the trigger was a tag (i.e. a release)
if [[ "${{ github.ref_type }}" == 'tag' ]]; then
# Push image using the "latest" tag
skopeo copy --dest-creds="$remote_cr_creds" "$local_cr" "$remote_cr:latest"
fi