Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Build and upload

on:
pull_request:
push:
branches: [main]

jobs:
build:
strategy:
matrix:
runners:
- runner: UbuntuLatest32Cores128G
system: x86_64-linux

- runner: UbuntuLatest32Cores128GArm
system: aarch64-linux

runs-on: ${{ matrix.runners.runner }}
permissions:
id-token: write
contents: write
steps:
- uses: actions/checkout@v4

- uses: DeterminateSystems/determinate-nix-action@v3

- uses: DeterminateSystems/flakehub-cache-action@main

- run: nix develop --command nixfmt --check .
if: success() || failure()

- run: nix build .#packages.${{ matrix.runners.system }}.iso
if: success() || failure()

- uses: actions/upload-artifact@v4
if: github.ref_type != 'tag'
with:
name: nixos-with-determinate-${{ matrix.runners.system }}.iso
path: ./result/iso/*
retention-days: 90

- name: Release
uses: softprops/action-gh-release@v2
if: github.ref_type == 'tag'
with:
prerelease: true
files: ./result/iso/*

release:
runs-on: ubuntu-latest
needs: build
environment: ${{ github.ref_type == 'tag' && 'production' || 'build' }}
steps:
- run: "true"
- name: Release
uses: softprops/action-gh-release@v2
if: github.ref_type == 'tag'
with:
prerelease: false
24 changes: 24 additions & 0 deletions .github/workflows/propose-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
on:
workflow_dispatch:
inputs:
reference-id:
type: string
required: true
version:
type: string
required: true

concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true

jobs:
propose-release:
uses: DeterminateSystems/propose-release/.github/workflows/workflow.yml@main
permissions:
id-token: "write"
contents: "write"
pull-requests: write
with:
reference-id: ${{ inputs.reference-id }}
version: ${{ inputs.version }}
49 changes: 49 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# NixOS ISOs with Determinate Nix

This repo houses the build logic for [Determinate Systems][detsys]' official ISO for [NixOS].
Our ISOs are available for these systems:

| System | Nix system name |
| :------------ | :-------------- |
| x86 Linux | `x86_64-linux` |
| aarch64 Linux | `aarch64-linux` |

On both systems, the ISOs have these tools installed:

- [Determinate Nix][det-nix], Determinate Systems' validated and secure [Nix] distribution for enterprises.
This includes [Determinate Nixd][dnixd], a utility that enables you to log in to [FlakeHub] using only this command (amongst other tasks):

```shell
determinate-nixd login
```

Once logged in, your host can access [FlakeHub Cache][cache] and [private flakes][private-flakes] for your organization.

- [fh], the CLI for [FlakeHub].
You can use fh for things like [applying][fh-apply-nixos] NixOS configurations uploaded to [FlakeHub Cache][cache].
Here's an example:

```shell
determinate-nixd login
fh apply nixos "my-org/my-flake/*#nixosConfigurations.my-nixos-configuration-output"
```

Note: this NixOS installer image is identical to NixOS's ISOs, but with flakes enabled by default via Determinate Nix and NetworkManager being enabled instead of bare WPA Supplicant.
[ami]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html
[fh-apply-nixos]: https://docs.determinate.systems/flakehub/cli#apply-nixos
[cache]: https://docs.determinate.systems/flakehub/cache
[demo]: https://github.com/determinatesystems/demo
[det-nix]: https://docs.determinate.systems/determinate-nix
[detsys]: https://determinate.systems
[dnixd]: https://docs.determinate.systems/determinate-nix#determinate-nixd
[ec2]: https://aws.amazon.com/ec2
[fh]: https://docs.determinate.systems/flakehub/cli
[fh-apply]: https://docs.determinate.systems/flakehub/cli#apply
[flakehub]: https://flakehub.com
[nix]: https://docs.determinate.systems/determinate-nix
[nixos]: https://zero-to-nix.com/concepts/nixos
[opentofu]: https://opentofu.org
[private-flakes]: https://docs.determinate.systems/flakehub/private-flakes
[ssm]: https://aws.amazon.com/systems-manager
[sts]: https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html
[terraform]: https://terraform.io
Loading