diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index de5deab..c83558c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -4,21 +4,71 @@ on: push: branches: [master] +env: + BUILD_CONFIGURATION: Release + DOTNET_NOLOGO: true + DOTNET_CLI_TELEMETRY_OPTOUT: true + jobs: - build: - name: Build + get-version: + name: Get Version runs-on: ubuntu-latest - env: - BUILD_CONFIGURATION: Release - DOTNET_NOLOGO: true - DOTNET_CLI_TELEMETRY_OPTOUT: true + outputs: + version: ${{ steps.version.outputs.version }} steps: - uses: actions/checkout@master name: Checkout with: - ref: ${{ github.head_ref }} fetch-depth: 0 + - name: Git Version + id: version + uses: codacy/git-version@2.7.1 + + build-nuget: + name: Build and Publish Nuget + runs-on: ubuntu-latest + needs: [get-version] + steps: + - uses: actions/checkout@master + name: Checkout + + - uses: actions/setup-dotnet@v3 + name: Setup dotnet + with: + dotnet-version: '8.0.x' + + - name: Restore dependencies + run: dotnet restore Torch.Server/Torch.Server.csproj --locked-mode + + - name: Build + run: dotnet build Torch.Server/Torch.Server.csproj --no-restore -c ${{ env.BUILD_CONFIGURATION }} -p:Version="${{ needs.get-version.outputs.version }}" -p:AssemblyVersion="${{ needs.get-version.outputs.version }}" + + - run: dotnet pack -c Release ./Torch.API/Torch.API.csproj -o pack -p:Version="${{ needs.get-version.outputs.version }}" -p:AssemblyVersion="${{ needs.get-version.outputs.version }}" --no-build + - run: dotnet pack -c Release ./Torch/Torch.csproj -o pack -p:Version="${{ needs.get-version.outputs.version }}" -p:AssemblyVersion="${{ needs.get-version.outputs.version }}" --no-build + - run: dotnet pack -c Release ./Torch.Server/Torch.Server.csproj -o pack -p:Version="${{ needs.get-version.outputs.version }}" -p:AssemblyVersion="${{ needs.get-version.outputs.version }}" --no-build + - run: mkdir blank && sed -i 's/torchVersion/${{ needs.get-version.outputs.version }}/g' Torch.Server.ReferenceAssemblies.net7.nuspec && nuget pack Torch.Server.ReferenceAssemblies.net7.nuspec -BasePath ./blank -OutputDirectory pack -NonInteractive -NoPackageAnalysis + + - name: Install Sleet + run: dotnet tool install -g sleet + - name: Push Nuget Package + env: + SLEET_FEED_TYPE: s3 + SLEET_FEED_PATH: https://nuget.storage.yandexcloud.net + SLEET_FEED_BUCKETNAME: nuget + SLEET_FEED_SERVICEURL: https://storage.yandexcloud.net + SLEET_FEED_ACCESSKEYID: ${{ secrets.S3_KEY_ID }} + SLEET_FEED_SECRETACCESSKEY: ${{ secrets.S3_KEY }} + run: sleet push ./pack + + build: + name: Build and Publish Package + runs-on: windows-latest + needs: [get-version] + steps: + - uses: actions/checkout@master + name: Checkout + - uses: actions/setup-dotnet@v3 name: Setup dotnet with: @@ -27,12 +77,8 @@ jobs: - name: Restore dependencies run: dotnet restore Torch.Server/Torch.Server.csproj --locked-mode - - name: Git Version - id: version - uses: codacy/git-version@2.7.1 - - name: Build - run: dotnet build Torch.Server/Torch.Server.csproj --no-restore -c ${{ env.BUILD_CONFIGURATION }} -p:Version="${{ steps.version.outputs.version }}" -p:AssemblyVersion="${{ steps.version.outputs.version }}" + run: dotnet build Torch.Server/Torch.Server.csproj --no-restore -c ${{ env.BUILD_CONFIGURATION }} -p:Version="${{ needs.get-version.outputs.version }}" -p:AssemblyVersion="${{ needs.get-version.outputs.version }}" - name: Publish run: dotnet publish Torch.Server/Torch.Server.csproj --no-build --sc -c ${{ env.BUILD_CONFIGURATION }} -o ./publish @@ -48,8 +94,8 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - tag_name: ${{ steps.version.outputs.version }} - release_name: Release v${{ steps.version.outputs.version }} + tag_name: ${{ needs.get-version.outputs.version }} + release_name: Release v${{ needs.get-version.outputs.version }} body: ${{ steps.github_release.outputs.changelog }} draft: true prerelease: false @@ -68,21 +114,4 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - release_id: ${{ steps.create_release.outputs.id }} - - - run: dotnet pack -c Release ./Torch.API/Torch.API.csproj -o pack -p:Version="${{ steps.version.outputs.version }}" -p:AssemblyVersion="${{ steps.version.outputs.version }}" --no-build - - run: dotnet pack -c Release ./Torch/Torch.csproj -o pack -p:Version="${{ steps.version.outputs.version }}" -p:AssemblyVersion="${{ steps.version.outputs.version }}" --no-build - - run: dotnet pack -c Release ./Torch.Server/Torch.Server.csproj -o pack -p:Version="${{ steps.version.outputs.version }}" -p:AssemblyVersion="${{ steps.version.outputs.version }}" --no-build - - run: mkdir blank && sed -i 's/torchVersion/${{ steps.version.outputs.version }}/g' Torch.Server.ReferenceAssemblies.net7.nuspec && nuget pack Torch.Server.ReferenceAssemblies.net7.nuspec -BasePath ./blank -OutputDirectory pack -NonInteractive -NoPackageAnalysis - - - name: Install Sleet - run: dotnet tool install -g sleet - - name: Push Nuget Package - env: - SLEET_FEED_TYPE: s3 - SLEET_FEED_PATH: https://nuget.storage.yandexcloud.net - SLEET_FEED_BUCKETNAME: nuget - SLEET_FEED_SERVICEURL: https://storage.yandexcloud.net - SLEET_FEED_ACCESSKEYID: ${{ secrets.S3_KEY_ID }} - SLEET_FEED_SECRETACCESSKEY: ${{ secrets.S3_KEY }} - run: sleet push ./pack + release_id: ${{ steps.create_release.outputs.id }} \ No newline at end of file