name: release on: push: tags: - v* jobs: create-release: runs-on: ubuntu-latest outputs: upload_url: ${{ steps.create-release.outputs.upload_url }} steps: - name: Create release id: create-release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ github.ref }} draft: false prerelease: false deploy-releases: runs-on: ${{ matrix.os }} needs: create-release strategy: fail-fast: false matrix: include: - target: x86_64-linux os: ubuntu-latest - target: aarch64-linux os: ubuntu-latest - target: x86_64-windows os: ubuntu-latest - target: x86_64-darwin os: macos-13 - target: aarch64-darwin os: macos-14 steps: - name: Checkout code uses: actions/checkout@v4 - name: Install Nix uses: cachix/install-nix-action@v27 with: nix_path: nixpkgs=channel:nixos-24.05 extra_nix_config: | experimental-features = nix-command flakes - uses: cachix/cachix-action@v15 with: name: soywod authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' extraPullNames: nix-community - name: Build release archive run: | nix build -L .#${{ matrix.target }} cp result/himalaya* . - name: Upload tgz release archive uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} asset_path: himalaya.tgz asset_name: himalaya.${{ matrix.target }}.tgz asset_content_type: application/gzip - name: Upload zip release archive uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} asset_path: himalaya.zip asset_name: himalaya.${{ matrix.target }}.zip asset_content_type: application/zip