diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2021-07-13 18:19:32 +0300 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2021-07-13 18:21:48 +0300 |
commit | 78971b90fff463da3a4266f28988c98e30843a3c (patch) | |
tree | deb66a1ee25e6cd815af8d2a7ff975f909f640d7 /.github/workflows/build-test.yml | |
parent | 271ee2012da7d649ac3fb2b9021937b14e983c60 (diff) |
Workflows
Diffstat (limited to '.github/workflows/build-test.yml')
-rw-r--r-- | .github/workflows/build-test.yml | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml new file mode 100644 index 0000000..fff479c --- /dev/null +++ b/.github/workflows/build-test.yml @@ -0,0 +1,61 @@ +name: Build test + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + workflow_dispatch: + +jobs: + build: + strategy: + matrix: + host: [windows-latest, ubuntu-latest, macos-latest] + os: [win, linux, osx] + arch: [x86, x64, arm] + sc: [no-self-contained, self-contained] + exclude: + - os: linux + arch: x86 + - os: osx + arch: x86 + - os: osx + arch: arm + runs-on: ${{ matrix.host }} + env: + APP_NAME: nestiler + PROJECT_PATH: . + OUTPUT_DIR: output + CONFIGURATION: Release + OUTPUT_SUBDIR: ${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.sc }} + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Checkout submodules + run: git submodule update --init --recursive + - name: Setup .NET + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 5.0.x + - name: Build + env: + SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true -p:PublishTrimmed=True' || '--no-self-contained' }} + run: dotnet publish ${{ env.PROJECT_PATH }} -c ${{ env.CONFIGURATION }} -r ${{ matrix.os }}-${{ matrix.arch }} -p:PublishSingleFile=true $SC_OPS -p:IncludeAllContentForSelfExtract=true -o ${{ env.OUTPUT_DIR }}/${{ env.OUTPUT_SUBDIR }}/${{ env.APP_NAME }} + - name: Simple test + if: | + (matrix.host == 'ubuntu-latest' && matrix.os == 'linux' && matrix.arch != 'arm') + || (matrix.host == 'macos-latest' && matrix.os == 'osx' && matrix.arch != 'arm') + || (matrix.host == 'windows-latest' && matrix.os == 'win' && matrix.arch != 'arm') + working-directory: ${{ env.OUTPUT_DIR }}/${{ env.OUTPUT_SUBDIR }}/${{ env.APP_NAME }} + run: | + ./nestiler --help + - name: Upload artifact + if: | + (matrix.host == 'ubuntu-latest' && matrix.os == 'linux') + || (matrix.host == 'macos-latest' && matrix.os == 'osx') + || (matrix.host == 'windows-latest' && matrix.os == 'win') + uses: actions/upload-artifact@v2 + with: + name: ${{ env.OUTPUT_SUBDIR }} + path: ${{ env.OUTPUT_DIR }}/${{ env.OUTPUT_SUBDIR }} |