Skip to content

Commit

Permalink
Split CI action into two
Browse files Browse the repository at this point in the history
Needed because the code signing action requires knowing the artifact upload ID, which as far as I know, is impossible to obtain under a matrix
  • Loading branch information
pizzaboxer committed Oct 13, 2024
1 parent 8b781c1 commit 7e59537
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 66 deletions.
30 changes: 30 additions & 0 deletions .github/workflows/ci-debug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: CI (Debug)
on: [push, pull_request]

jobs:
build:
runs-on: windows-latest

steps:
- uses: actions/checkout@v4
with:
submodules: true

- uses: actions/setup-dotnet@v4
with:
dotnet-version: '6.0.x'

- name: Restore dependencies
run: dotnet restore

- name: Build
run: dotnet build --no-restore

- name: Publish
run: dotnet publish -p:PublishSingleFile=true -p:CommitHash=${{ github.sha }} -p:CommitRef=${{ github.ref_type }}/${{ github.ref_name }} -r win-x64 -c Debug --self-contained false .\Bloxstrap\Bloxstrap.csproj

- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: Bloxstrap (Debug) (${{ github.sha }})
path: .\Bloxstrap\bin\Debug\net6.0-windows\win-x64\publish\*
128 changes: 62 additions & 66 deletions .github/workflows/ci.yml → .github/workflows/ci-release.yml
Original file line number Diff line number Diff line change
@@ -1,66 +1,62 @@
name: CI
on: [push, pull_request]

jobs:
build:
strategy:
matrix:
configuration: [Debug, Release]

runs-on: windows-latest

steps:
- uses: actions/checkout@v4
with:
submodules: true

- uses: actions/setup-dotnet@v4
with:
dotnet-version: '6.0.x'

- name: Restore dependencies
run: dotnet restore

- name: Build
run: dotnet build --no-restore

- name: Publish
run: dotnet publish -p:PublishSingleFile=true -p:CommitHash=${{ github.sha }} -p:CommitRef=${{ github.ref_type }}/${{ github.ref_name }} -r win-x64 -c ${{ matrix.configuration }} --self-contained false .\Bloxstrap\Bloxstrap.csproj

- name: Upload Artifact
id: upload-artifact-${{ matrix.configuration }}
uses: actions/upload-artifact@v4
with:
name: Bloxstrap (${{ matrix.configuration }})
path: |
.\Bloxstrap\bin\${{ matrix.configuration }}\net6.0-windows\win-x64\publish\*
release:
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')

steps:
- name: Sign and download release artifact
uses: signpath/github-action-submit-signing-request@v1
with:
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
organization-id: '107b3de5-057b-42fc-a985-3546e4261775'
project-slug: 'bloxstrap'
signing-policy-slug: 'release-signing'
artifact-configuration-slug: 'github-ci'
github-artifact-id: '${{ steps.upload-artifact-Release.outputs.artifact-id }}'
wait-for-completion: true
output-artifact-directory: 'release'

- name: Rename binaries
run: |
mv release/Bloxstrap.exe Bloxstrap-${{ github.ref_name }}.exe
- name: Release
uses: softprops/action-gh-release@v2
with:
draft: true
files: |
Bloxstrap-${{ github.ref_name }}.exe
name: Bloxstrap ${{ github.ref_name }}
name: CI (Release)
on: [push, pull_request]

jobs:
build:
runs-on: windows-latest

outputs:
artifact-id: ${{ steps.upload-artifact.outputs.artifact-id }}

steps:
- uses: actions/checkout@v4
with:
submodules: true

- uses: actions/setup-dotnet@v4
with:
dotnet-version: '6.0.x'

- name: Restore dependencies
run: dotnet restore

- name: Build
run: dotnet build --no-restore

- name: Publish
run: dotnet publish -p:PublishSingleFile=true -p:CommitHash=${{ github.sha }} -p:CommitRef=${{ github.ref_type }}/${{ github.ref_name }} -r win-x64 -c Release --self-contained false .\Bloxstrap\Bloxstrap.csproj

- name: Upload Artifact
id: upload-artifact
uses: actions/upload-artifact@v4
with:
name: Bloxstrap (Release) (${{ github.sha }})
path: .\Bloxstrap\bin\Release\net6.0-windows\win-x64\publish\*

release:
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')

steps:
- name: Sign and download artifact
uses: signpath/github-action-submit-signing-request@v1
with:
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
organization-id: '107b3de5-057b-42fc-a985-3546e4261775'
project-slug: 'bloxstrap'
signing-policy-slug: 'release-signing'
artifact-configuration-slug: 'github-ci'
github-artifact-id: '${{ needs.build.outputs.artifact-id }}'
wait-for-completion: true
output-artifact-directory: 'release'

- name: Rename binaries
run: mv release/Bloxstrap.exe Bloxstrap-${{ github.ref_name }}.exe

- name: Create release
uses: softprops/action-gh-release@v2
with:
draft: true
files: Bloxstrap-${{ github.ref_name }}.exe
name: Bloxstrap ${{ github.ref_name }}

0 comments on commit 7e59537

Please sign in to comment.