Skip to content

Run full build

Run full build #50

Workflow file for this run

name: Build
on: push
concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true
jobs:
setup:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Check Nix flake inputs
uses: DeterminateSystems/flake-checker-action@v5
- name: Output versions
run: |
VERSIONS=$(jq -c keys_unsorted versions.json)
echo "versions=$VERSIONS" >> $GITHUB_OUTPUT
id: generate
outputs:
versions: ${{ steps.generate.outputs.versions }}
build:
runs-on: ubuntu-latest
timeout-minutes: 5
needs: [setup]
strategy:
matrix:
version: ${{ fromJSON(needs.setup.outputs.versions) }}
fail-fast: false
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Nix
uses: cachix/install-nix-action@v24
- name: Setup Cachix
uses: cachix/cachix-action@v13
with:
name: nixpkgs-terraform
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
skipPush: ${{ github.ref_name != 'main' }}
- name: Build package
run: nix build --impure '.#"${{ matrix.version }}"'
env:
NIXPKGS_ALLOW_UNFREE: 1
template:
runs-on: ubuntu-latest
timeout-minutes: 4
needs: [build]
strategy:
matrix:
template: [default, devenv]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Nix
uses: cachix/install-nix-action@v24
- name: Replace inputs on templates
run: sed -i 's/github:stackbuilders\/nixpkgs-terraform/github:stackbuilders\/nixpkgs-terraform\/${{ github.sha }}/g' templates/*/flake.nix
- name: Create a temporary directory
run: echo "tmpdir=$(mktemp -d)" >> "$GITHUB_OUTPUT"
id: mktemp
- name: Scaffold a new project
run: nix flake init -t ${{ github.workspace }}#${{ matrix.template }}
working-directory: ${{ steps.mktemp.outputs.tmpdir }}
- name: Run smoke test
run: nix develop --accept-flake-config --impure -c terraform --version
working-directory: ${{ steps.mktemp.outputs.tmpdir }}
env:
NIXPKGS_ALLOW_UNFREE: 1