name: CI(OTAPI3) on: [push, pull_request] jobs: test: runs-on: windows-latest steps: - uses: actions/checkout@v3 with: submodules: 'recursive' - uses: actions/setup-dotnet@v3 with: dotnet-version: '6.0.100' - name: Run tests run: dotnet test build: runs-on: ubuntu-latest strategy: matrix: arch: ["win-x64", "osx-x64", "linux-x64", "linux-arm64", "linux-arm"] steps: - uses: actions/checkout@v3 with: submodules: 'recursive' - uses: actions/setup-dotnet@v3 with: dotnet-version: '6.0.100' - name: Install msgfmt run: sudo apt-get install -y gettext - name: Produce build run: | cd TShockLauncher dotnet publish -r ${{ matrix.arch }} -f net6.0 -c Release -p:PublishSingleFile=true --self-contained false - name: Chmod scripts if: ${{ matrix.arch != 'win-x64' }} run: | chmod +x TShockLauncher/bin/Release/net6.0/${{ matrix.arch }}/publish/TShock.Server # preserve file perms: https://github.com/actions/upload-artifact#maintaining-file-permissions-and-case-sensitive-files - name: Tarball artifact (non-Windows) if: ${{ matrix.arch != 'win-x64' }} run: | cd TShockLauncher/bin/Release/net6.0/${{ matrix.arch }}/publish/ tar -cvf ../../../../../../TShock-Beta-${{ matrix.arch }}-Release.tar * - name: Upload artifact (non-Windows) uses: actions/upload-artifact@v3 if: ${{ matrix.arch != 'win-x64' }} with: name: TShock-Beta-${{ matrix.arch }}-Release path: TShock-Beta-${{ matrix.arch }}-Release.tar - name: Upload artifact (Windows) uses: actions/upload-artifact@v3 if: ${{ matrix.arch == 'win-x64' }} with: name: TShock-Beta-${{ matrix.arch }}-Release path: TShockLauncher/bin/Release/net6.0/${{ matrix.arch }}/publish/