Skip to content

flake.lock: Update #345

flake.lock: Update

flake.lock: Update #345

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@v4
- name: Set up QEMU binfmt for cross compiling
uses: docker/setup-qemu-action@v3
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v16
with:
extra-conf: |
extra-platforms = aarch64-linux x86_64-linux
- name: Cache Nix store
uses: DeterminateSystems/magic-nix-cache-action@v8
- 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"
package:
- "server"
- "client"
- "docs"
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up QEMU binfmt for building aarch64
uses: docker/setup-qemu-action@v3
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v16
with:
extra-conf: |
extra-platforms = aarch64-linux x86_64-linux
- name: Cache Nix store
uses: DeterminateSystems/magic-nix-cache-action@v8
- name: Build package
run: nix build --accept-flake-config .#packages.${{ matrix.system }}.${{ matrix.package }}
bundle:
runs-on: ubuntu-latest
needs:
- build
strategy:
matrix:
system:
- "aarch64-linux"
- "x86_64-linux"
bundler:
- name: "debian"
path: "github:viperML/bundlers#deb"
extension: "deb"
- name: "pacman"
path: "github:viperML/bundlers#pacman"
extension: "tar.xz"
- name: "rpm"
path: "github:viperML/bundlers#rpm"
extension: "rpm"
- name: "docker"
path: "github:viperML/bundlers#docker"
extension: "tar.gz"
- name: "appimage"
path: "github:ralismark/nix-appimage"
extension: "AppImage"
package:
- "server"
- "client"
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up QEMU binfmt for cross compiling
uses: docker/setup-qemu-action@v3
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v16
with:
extra-conf: |
extra-platforms = aarch64-linux x86_64-linux
- name: Cache Nix store
uses: DeterminateSystems/magic-nix-cache-action@v8
- name: Build ${{ matrix.bundler.name }} package for ${{ matrix.system }}
run: >-
nix bundle
--bundler ${{ matrix.bundler.path }}
--accept-flake-config
--out-link result
.#packages.${{ matrix.system }}.${{ matrix.package }}
- name: Prepare Bundle for upload
if: startsWith(github.ref, 'refs/tags/v')
run: >-
cp
--no-preserve=mode,ownership
$(find -L result -type f -print -quit)
${{ matrix.package }}-${{ github.ref_name }}-${{ matrix.bundler.name }}-${{ matrix.system }}.${{ matrix.bundler.extension }}
- name: Upload bundle
if: startsWith(github.ref, 'refs/tags/v')
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.package }}-${{ github.ref_name }}-${{ matrix.bundler.name }}-${{ matrix.system }}
path: ${{ matrix.package }}-${{ github.ref_name }}-${{ matrix.bundler.name }}-${{ matrix.system }}.${{ matrix.bundler.extension }}
deploy-pages:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master'
needs:
- build
permissions:
contents: read
actions: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: true
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v16
- name: Cache Nix store
uses: DeterminateSystems/magic-nix-cache-action@v8
- name: Build package
run: nix build --accept-flake-config .#docs
- name: Prepare assets for upload
run: cp -r --dereference --no-preserve=mode,ownership result/ public/
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: public/
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
release:
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
needs:
- bundle
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: bundles
merge-multiple: true
- name: Create release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
bundles/*