From 11d024bd16ff8c59abe285ac206f93d5548cd9cc Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Wed, 28 Feb 2024 16:31:28 -0500 Subject: [PATCH] Add GitHub action workflows --- .github/workflows/build_and_publish.yml | 50 +++++++++++++++++++++++++ .github/workflows/check_pr.yml | 17 +++++++++ 2 files changed, 67 insertions(+) create mode 100644 .github/workflows/build_and_publish.yml create mode 100644 .github/workflows/check_pr.yml diff --git a/.github/workflows/build_and_publish.yml b/.github/workflows/build_and_publish.yml new file mode 100644 index 00000000..dcd552c3 --- /dev/null +++ b/.github/workflows/build_and_publish.yml @@ -0,0 +1,50 @@ +name: Build and Publish + +on: + push: + branches: [ "master" ] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + project: [RombaSharp, SabreTools] + runtime: [win-x86, win-x64, linux-x64, osx-x64] #[win-x86, win-x64, win-arm64, linux-x64, linux-arm64, osx-x64] + framework: [net8.0] #[net20, net35, net40, net452, net472, net48, netcoreapp3.1, net5.0, net6.0, net7.0, net8.0] + + steps: + - uses: actions/checkout@v4 + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + + - name: Restore dependencies + run: dotnet restore + + - name: Build + run: dotnet publish ${{ matrix.project }}/${{ matrix.project }}.csproj -f ${{ matrix.framework }} -r ${{ matrix.runtime }} -c Debug --self-contained true --version-suffix ${{ github.sha }} ${{ (startsWith(matrix.framework, 'net5') || startsWith(matrix.framework, 'net6') || startsWith(matrix.framework, 'net7') || startsWith(matrix.framework, 'net8')) && '-p:PublishSingleFile=true' || ''}} + + - name: Archive build + run: zip -r ${{ matrix.project }}_${{ matrix.framework }}_${{ matrix.runtime }}_debug.zip ${{ matrix.project }}/bin/Debug/${{ matrix.framework }}/${{ matrix.runtime }}/publish/ + + - name: Upload build + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.project }}_${{ matrix.framework }}_${{ matrix.runtime }}_debug + path: ${{ matrix.project }}_${{ matrix.framework }}_${{ matrix.runtime }}_debug.zip + + - name: Upload to rolling + uses: ncipollo/release-action@v1.14.0 + with: + allowUpdates: True + artifacts: ${{ matrix.project }}_${{ matrix.framework }}_${{ matrix.runtime }}_debug.zip + body: 'Last built commit: ${{ github.sha }}' + name: 'Rolling Release' + prerelease: True + replacesArtifacts: True + tag: "rolling" + updateOnlyUnreleased: True diff --git a/.github/workflows/check_pr.yml b/.github/workflows/check_pr.yml new file mode 100644 index 00000000..bba92af8 --- /dev/null +++ b/.github/workflows/check_pr.yml @@ -0,0 +1,17 @@ +name: Build PR + +on: [pull_request] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + + - name: Build + run: dotnet build \ No newline at end of file