| name: Install Nix |
| description: Installs Nix or a Nix-compatible flake fork, while also enabling |
| the requisite caches. |
| inputs: |
| shell: |
| description: "Shell to use for glue logic" |
| required: true |
| default: "bash" |
| github_token: |
| description: "A token for the Nix daemon to use when fetching information from GitHub" |
| required: false |
| default: "" |
| nix_cache_domain: |
| description: "An additional https-hosted Nix build cache" |
| required: false |
| default: "" |
| nix_public_key: |
| description: "The public key for the aforementioned Nix cache if specified" |
| required: false |
| default: "" |
| runs: |
| using: "composite" |
| steps: |
| - name: Set GitHub Token Config String |
| if: inputs.github_token != '' |
| shell: ${{ inputs.shell }} |
| run: | |
| echo "GITHUB_ACCESS_TOKEN_STR=${{ inputs.github_token }}" >> $GITHUB_ENV |
| - name: Set Nix Cache Config Strings |
| if: inputs.nix_cache_domain != '' && inputs.nix_public_key != '' |
| shell: ${{ inputs.shell }} |
| run: | |
| echo "EXTRA_SUBSTITUTER_STR=https://${{ inputs.nix_cache_domain }}" >> $GITHUB_ENV |
| echo "EXTRA_TRUSTED_KEY_STR=${{ inputs.nix_public_key }}" >> $GITHUB_ENV |
| - uses: DeterminateSystems/nix-installer-action@main |
| with: |
| determinate: false |
| extra-conf: | |
| access-tokens = ${{ env.GITHUB_ACCESS_TOKEN_STR }} |
| extra-substituters = ${{ env.EXTRA_SUBSTITUTER_STR }} https://nix-cache.fossi-foundation.org |
| extra-trusted-public-keys = ${{ env.EXTRA_TRUSTED_KEY_STR }} nix-cache.fossi-foundation.org:3+K59iFwXqKsL7BNu6Guy0v+uTlwsxYQxjspXzqLYQs= |
| - name: Inject GitHub Token into Environment |
| if: inputs.github_token != '' |
| uses: fossi-foundation/nix-eda/.github/actions/nix_daemon_inject_github_token@5.5.0 |
| with: |
| github_token: ${{ inputs.github_token }} |