Skip to content

Update cachix/install-nix-action action to v23 #70

Update cachix/install-nix-action action to v23

Update cachix/install-nix-action action to v23 #70

Workflow file for this run

name: "CI"
on:
workflow_dispatch:
pull_request:
push:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up QEMU binfmt for cross compiling
uses: docker/setup-qemu-action@v2
- name: Install Nix
uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v23
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Set up binary cache
uses: cachix/cachix-action@v12
with:
name: nix-rust-template
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Check flake
run: nix flake check --accept-flake-config
build:
runs-on: ubuntu-latest
needs:
- test
strategy:
matrix:
system:
- "aarch64-linux"
- "x86_64-linux"
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up QEMU binfmt for building aarch64
uses: docker/setup-qemu-action@v2
- name: Install Nix
uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v23
with:
nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: |
extra-platforms = aarch64-linux x86_64-linux
- name: Set up binary cache
uses: cachix/cachix-action@v12
with:
name: nix-rust-template
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Build package
run: nix build --accept-flake-config .#packages.${{ matrix.system }}.default
bundle:
runs-on: ubuntu-latest
needs:
- build
strategy:
matrix:
system:
- "aarch64-linux"
- "x86_64-linux"
bundler:
- name: "deb"
extension: "deb"
- name: "pacman"
extension: "tar.xz"
- name: "rpm"
extension: "rpm"
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up QEMU binfmt for cross compiling
uses: docker/setup-qemu-action@v2
- name: Install Nix
uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v23
with:
nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: |
extra-platforms = aarch64-linux x86_64-linux
- name: Set up binary cache
uses: cachix/cachix-action@v12
with:
name: nix-rust-template
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Build ${{ matrix.bundler.name }} package for ${{ matrix.system }}
run: >-
nix bundle
--bundler .#${{ matrix.bundler.name }}
--accept-flake-config
--out-link "bundles/${{ github.event.repository.name }}-${{ matrix.system }}.${{ matrix.bundler.extension }}"
.#packages.${{ matrix.system }}.default
- name: Upload bundles
if: startsWith(github.ref, 'refs/tags/v')
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.bundler.name }}-${{ matrix.system }}
path: bundles/*
release:
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
needs:
- bundle
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Download artifacts
uses: actions/download-artifact@v3
with:
path: artifacts
- name: Create release
uses: ncipollo/release-action@v1
with:
artifacts: "artifacts/**"
commit: ${{ github.sha }}
name: ${{ github.ref_name }}
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref }}