From 03249d300a0600f62e7276a05f28f2156968a168 Mon Sep 17 00:00:00 2001 From: Tanner Gooding Date: Sun, 12 Feb 2023 08:24:02 -0800 Subject: [PATCH] Adding support for code-signing Signed-off-by: Tanner Gooding --- .github/workflows/ci.yml | 56 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e524edd..884b4b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,7 +41,7 @@ jobs: shell: cmd - uses: actions/upload-artifact@v3 with: - name: ${{ matrix.os }}_${{ matrix.configuration }}_x86 + name: ${{ matrix.os }}_${{ matrix.configuration }}_${{ matrix.architecture }} path: | ./artifacts/bin/**/* ./artifacts/log/**/* @@ -106,6 +106,29 @@ jobs: ./artifacts/pkg/**/* ./artifacts/tst/**/* if-no-files-found: error + sign-nuget-preview: + runs-on: windows-latest + if: ${{ github.event_name == 'push' }} + needs: [ build-nuget-preview ] + permissions: + id-token: write + steps: + - uses: actions/checkout@v3 + - uses: actions/download-artifact@v3 + with: + name: nuget_preview + path: ./artifacts + - uses: actions/setup-dotnet@v3 + with: + dotnet-version: '6.0.x' + - run: dotnet tool install --tool-path ./artifacts/tools sign --version 0.9.0-beta.23063.3 + - run: ./artifacts/tools/sign code azure-key-vault "**/*.nupkg" --timestamp-url "http://timestamp.digicert.com" --base-directory "${{ github.workspace }}/artifacts/pkg" --file-list "${{ github.workspace }}/scripts/SignClientFileList.txt" --publisher-name "TerraFX" --description "TerraFX.Interop.Mimalloc" --description-url "https://github.com/terrafx/terrafx.interop.mimalloc" --azure-key-vault-certificate "${{ secrets.SC_KEY_VAULT_CERTIFICATE_ID }}" --azure-key-vault-client-id "${{ secrets.SC_AZURE_CLIENT_ID }}" --azure-key-vault-client-secret "${{ secrets.SC_AZURE_CLIENT_SECRET }}" --azure-key-vault-tenant-id "${{ secrets.SC_AZURE_TENANT_ID }}" --azure-key-vault-url "${{ secrets.SC_KEY_VAULT_URL }}" + - uses: actions/upload-artifact@v3 + with: + name: sign_nuget_preview + path: | + ./artifacts/pkg/**/* + if-no-files-found: error build-nuget-release: runs-on: windows-latest steps: @@ -124,12 +147,35 @@ jobs: ./artifacts/pkg/**/* ./artifacts/tst/**/* if-no-files-found: error + sign-nuget-release: + runs-on: windows-latest + if: ${{ github.event_name == 'push' }} + needs: [ build-nuget-release ] + permissions: + id-token: write + steps: + - uses: actions/checkout@v3 + - uses: actions/download-artifact@v3 + with: + name: nuget_release + path: ./artifacts + - uses: actions/setup-dotnet@v3 + with: + dotnet-version: '6.0.x' + - run: dotnet tool install --tool-path ./artifacts/tools sign --version 0.9.0-beta.23063.3 + - run: ./artifacts/tools/sign code azure-key-vault "**/*.nupkg" --timestamp-url "http://timestamp.digicert.com" --base-directory "${{ github.workspace }}/artifacts/pkg" --file-list "${{ github.workspace }}/scripts/SignClientFileList.txt" --publisher-name "TerraFX" --description "TerraFX.Interop.Mimalloc" --description-url "https://github.com/terrafx/terrafx.interop.mimalloc" --azure-key-vault-certificate "${{ secrets.SC_KEY_VAULT_CERTIFICATE_ID }}" --azure-key-vault-client-id "${{ secrets.SC_AZURE_CLIENT_ID }}" --azure-key-vault-client-secret "${{ secrets.SC_AZURE_CLIENT_SECRET }}" --azure-key-vault-tenant-id "${{ secrets.SC_AZURE_TENANT_ID }}" --azure-key-vault-url "${{ secrets.SC_KEY_VAULT_URL }}" + - uses: actions/upload-artifact@v3 + with: + name: sign_nuget_release + path: | + ./artifacts/pkg/**/* + if-no-files-found: error publish-nightlies-azure: runs-on: ubuntu-latest if: ${{ github.event_name == 'push' }} - needs: [ windows-x64, windows-x86, linux-x64, macos-x64, build-nuget-preview ] + needs: [ windows-x64, windows-x86, linux-x64, macos-x64, sign-nuget-preview, sign-nuget-release ] steps: - - uses: actions/download-artifact@v2 + - uses: actions/download-artifact@v3 with: name: windows_release_x64 path: ./artifacts @@ -143,9 +189,9 @@ jobs: publish-nightlies-github: runs-on: ubuntu-latest if: ${{ github.event_name == 'push' }} - needs: [ windows-x64, windows-x86, linux-x64, macos-x64, build-nuget-preview ] + needs: [ windows-x64, windows-x86, linux-x64, macos-x64, sign-nuget-preview, sign-nuget-release ] steps: - - uses: actions/download-artifact@v2 + - uses: actions/download-artifact@v3 with: name: windows_release_x64 path: ./artifacts