diff --git a/.github/actions/init.yaml b/.github/actions/init.yaml new file mode 100644 index 0000000..921d20a --- /dev/null +++ b/.github/actions/init.yaml @@ -0,0 +1,17 @@ +name: "Initialize" +runs: + using: "composite" + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Nix + uses: cachix/install-nix-action@v31 + with: + nix_path: nixpkgs=channel:nixos-unstable + + - name: Use Cachix + uses: cachix/cachix-action@v16 + with: + name: trevstack + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml index fb645e4..017ce0e 100644 --- a/.github/workflows/check.yaml +++ b/.github/workflows/check.yaml @@ -15,19 +15,7 @@ jobs: contains(github.event.head_commit.message, 'bump:') == false && contains(github.event.head_commit.message, 'Merge pull request') == false steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install Nix - uses: cachix/install-nix-action@v31 - with: - nix_path: nixpkgs=channel:nixos-unstable - - - name: Use Cachix - uses: cachix/cachix-action@v16 - with: - name: trevstack - authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" + - uses: ./.github/actions/init - name: Check run: nix flake check diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 65a8bd3..ec6fd4d 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -13,76 +13,39 @@ jobs: check: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install Nix - uses: cachix/install-nix-action@v31 - with: - nix_path: nixpkgs=channel:nixos-unstable - - - name: Use Cachix - uses: cachix/cachix-action@v16 - with: - name: trevstack - authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" + - uses: ./.github/actions/init - name: Check run: nix flake check - # release: - # runs-on: ubuntu-latest - # needs: check - # steps: - # - name: Checkout - # uses: actions/checkout@v4 + release: + runs-on: ubuntu-latest + needs: check + steps: + - uses: ./.github/actions/init - # - name: Install Nix - # uses: cachix/install-nix-action@v31 - # with: - # nix_path: nixpkgs=channel:nixos-unstable + - name: Build + run: > + nix build + .#trevstack-linux-amd64 + .#trevstack-linux-arm64 + .#trevstack-linux-arm + .#trevstack-windows-amd64 + .#trevstack-darwin-amd64 + .#trevstack-darwin-arm64 - # - name: Use Cachix - # uses: cachix/cachix-action@v16 - # with: - # name: trevstack - # authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" + - name: Release + uses: softprops/action-gh-release@v2 + with: + generate_release_notes: true + files: |- + result*/bin/* - # - name: Build - # run: > - # nix build - # .#trevstack-linux-amd64 - # .#trevstack-linux-arm64 - # .#trevstack-linux-arm - # .#trevstack-windows-amd64 - # .#trevstack-darwin-amd64 - # .#trevstack-darwin-arm64 - - # - name: Release - # uses: softprops/action-gh-release@v2 - # with: - # generate_release_notes: true - # files: |- - # result*/bin/* - - # https://docs.docker.com/build/ci/github-actions/manage-tags-labels/ package: runs-on: ubuntu-latest - needs: check # Wait for binary cache to propagate + needs: release steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install Nix - uses: cachix/install-nix-action@v31 - with: - nix_path: nixpkgs=channel:nixos-unstable - - - name: Use Cachix - uses: cachix/cachix-action@v16 - with: - name: trevstack - authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" + - uses: ./.github/actions/init - name: Set env run: | diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index 685250f..3509943 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -13,19 +13,7 @@ jobs: update: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install Nix - uses: cachix/install-nix-action@v31 - with: - nix_path: nixpkgs=channel:nixos-unstable - - - name: Use Cachix - uses: cachix/cachix-action@v16 - with: - name: trevstack - authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" + - uses: ./.github/actions/init # https://github.com/actions/checkout/issues/13 - name: Set Git Config