diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..4a99579 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,62 @@ +name: Publish release draft + +on: + workflow_dispatch: + inputs: + prerelease: + description: Prerelease + type: boolean + generatenotes: + description: Generate release notes + type: boolean + +jobs: + release: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Setup .NET + uses: actions/setup-dotnet@v3 + with: + dotnet-version: 7.0.x + - name: Restore dependencies + run: dotnet restore + - name: Build + run: dotnet build --no-restore + - name: Test + run: dotnet test --no-build --verbosity normal + + - name: Publish for Linux x64 + run: dotnet publish Capy64/Capy64.csproj -c Release --no-self-contained -a x64 --os linux -p:PublishSingleFile=true -o publish/linux-x64 + - name: Publish for Windows x64 + run: dotnet publish Capy64/Capy64.csproj -c Release --no-self-contained -a x64 --os win -p:PublishSingleFile=true -o publish/win-x64 + + - name: Upload Linux x64 artifact + uses: actions/upload-artifact@v3.1.2 + with: + name: Linux-x64 + path: publish/linux-x64/** + if-no-files-found: error + - name: Upload Windows x64 artifact + uses: actions/upload-artifact@v3.1.2 + with: + name: Windows-x64 + path: publish/win-x64/** + if-no-files-found: error + + - name: Zip Linux x64 + run: 7z a capy64-linux-x64.zip publish/linux-x64/** + - name: Zip Windows x64 + run: 7z a capy64-windows-x64.zip publish/win-x64/** + + - name: Create Release + uses: ncipollo/release-action@v1.12.0 + with: + allowUpdates: true + artifactErrorsFailBuild: true + artifacts: "capy64-linux-x64.zip,capy64-windows-x64.zip" + draft: true + generateReleaseNotes: ${{ inputs.generatenotes }} + makeLatest: true + prerelease: ${{ inputs.prerelease }}