diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml new file mode 100644 index 0000000..f875b96 --- /dev/null +++ b/.github/workflows/nix.yml @@ -0,0 +1,42 @@ +name: Build and cache with Nix + +on: + workflow_dispatch: + push: + paths: + - '**' + - '!.github/**' + - '.github/workflows/nix.yml' + +jobs: + build-and-cache: + runs-on: ${{ matrix.os }} + timeout-minutes: 740 + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, macos-m1] + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Nix with caching + uses: kadena-io/setup-nix-with-cache/by-root@v3 + with: + cache_url: s3://nixcache.chainweb.com?region=us-east-1 + signing_private_key: ${{ secrets.NIX_CACHE_PRIVATE_KEY }} + + - name: Set up AWS credentials + uses: aws-actions/configure-aws-credentials@v2 + with: + aws-access-key-id: ${{ secrets.NIX_CACHE_AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.NIX_CACHE_AWS_SECRET_ACCESS_KEY }} + aws-region: us-east-1 + + - name: Give root user AWS credentials + uses: kadena-io/setup-nix-with-cache/copy-root-aws-credentials@v3 + + - name: Build and cache artifacts + run: | + echo Building the project and its devShell + nix build --log-lines 500 --show-trace