From 792e77d91f9254eb67019a4c814df5e9b52bd90a Mon Sep 17 00:00:00 2001 From: Pavel Djundik Date: Wed, 26 Apr 2023 12:21:20 +0300 Subject: [PATCH] Add self-contained builds (#418) --- .github/workflows/build.yml | 86 ++++++++++++++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 71f12a55..e161f553 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,6 +39,90 @@ jobs: uses: actions/upload-artifact@v3 if: matrix.configuration == 'Release' with: - name: DepotDownloader-${{ runner.os }} + name: DepotDownloader-${{ runner.os }}-framework path: artifacts if-no-files-found: error + + - name: Publish Windows-x64 + if: matrix.configuration == 'Release' && matrix.runs-on == 'windows-latest' + run: dotnet publish --configuration Release -p:PublishSingleFile=true -p:DebugType=embedded --self-contained --runtime win-x64 --output selfcontained-win-x64 + + - name: Publish Windows-arm64 + if: matrix.configuration == 'Release' && matrix.runs-on == 'windows-latest' + run: dotnet publish --configuration Release -p:PublishSingleFile=true -p:DebugType=embedded --self-contained --runtime win-arm64 --output selfcontained-win-arm64 + + - name: Publish Linux-x64 + if: matrix.configuration == 'Release' && matrix.runs-on == 'ubuntu-latest' + run: dotnet publish --configuration Release -p:PublishSingleFile=true -p:DebugType=embedded --self-contained --runtime linux-x64 --output selfcontained-linux-x64 + + - name: Publish Linux-arm + if: matrix.configuration == 'Release' && matrix.runs-on == 'ubuntu-latest' + run: dotnet publish --configuration Release -p:PublishSingleFile=true -p:DebugType=embedded --self-contained --runtime linux-arm --output selfcontained-linux-arm + + - name: Publish Linux-arm64 + if: matrix.configuration == 'Release' && matrix.runs-on == 'ubuntu-latest' + run: dotnet publish --configuration Release -p:PublishSingleFile=true -p:DebugType=embedded --self-contained --runtime linux-arm64 --output selfcontained-linux-arm64 + + - name: Publish macOS-x64 + if: matrix.configuration == 'Release' && matrix.runs-on == 'macos-latest' + run: dotnet publish --configuration Release -p:PublishSingleFile=true -p:DebugType=embedded --self-contained --runtime osx-x64 --output selfcontained-osx-x64 + + - name: Publish macOS-arm64 + if: matrix.configuration == 'Release' && matrix.runs-on == 'macos-latest' + run: dotnet publish --configuration Release -p:PublishSingleFile=true -p:DebugType=embedded --self-contained --runtime osx-arm64 --output selfcontained-osx-arm64 + + - name: Upload Windows-x64 + uses: actions/upload-artifact@v3 + if: matrix.configuration == 'Release' && matrix.runs-on == 'windows-latest' + with: + name: DepotDownloader-windows-x64 + path: selfcontained-win-x64 + if-no-files-found: error + + - name: Upload Windows-arm64 + uses: actions/upload-artifact@v3 + if: matrix.configuration == 'Release' && matrix.runs-on == 'windows-latest' + with: + name: DepotDownloader-windows-arm64 + path: selfcontained-win-arm64 + if-no-files-found: error + + - name: Upload Linux-x64 + uses: actions/upload-artifact@v3 + if: matrix.configuration == 'Release' && matrix.runs-on == 'ubuntu-latest' + with: + name: DepotDownloader-linux-x64 + path: selfcontained-linux-x64 + if-no-files-found: error + + - name: Upload Linux-arm + uses: actions/upload-artifact@v3 + if: matrix.configuration == 'Release' && matrix.runs-on == 'ubuntu-latest' + with: + name: DepotDownloader-linux-arm + path: selfcontained-linux-arm + if-no-files-found: error + + - name: Upload Linux-arm64 + uses: actions/upload-artifact@v3 + if: matrix.configuration == 'Release' && matrix.runs-on == 'ubuntu-latest' + with: + name: DepotDownloader-linux-arm64 + path: selfcontained-linux-arm64 + if-no-files-found: error + + - name: Upload macOS-x64 + uses: actions/upload-artifact@v3 + if: matrix.configuration == 'Release' && matrix.runs-on == 'macos-latest' + with: + name: DepotDownloader-macos-x64 + path: selfcontained-osx-x64 + if-no-files-found: error + + - name: Upload macOS-arm64 + uses: actions/upload-artifact@v3 + if: matrix.configuration == 'Release' && matrix.runs-on == 'macos-latest' + with: + name: DepotDownloader-macos-arm64 + path: selfcontained-osx-arm64 + if-no-files-found: error