name: Create Release on: push: branches: - master jobs: release: name: Create Release if: "contains(github.event.head_commit.message, 'Release') || contains(github.event.head_commit.message, 'release')" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 # avoid shallow clone so nbgv can do its work. - name: Setup .NET 5 uses: actions/setup-dotnet@v1 with: dotnet-version: 5.0.100 - uses: dotnet/nbgv@master id: nbgv - name: Create Release id: create_release uses: actions/create-release@v1 with: tag_name: ${{ steps.nbgv.outputs.Version }} release_name: ${{ steps.nbgv.outputs.Version }} draft: false prerelease: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Output Release URL File run: echo "${{ steps.create_release.outputs.upload_url }}" > release_url.txt - name: Save Release URL file uses: actions/upload-artifact@v1 with: name: release_url path: release_url.txt publish: name: Publish Release Asset if: "contains(github.event.head_commit.message, 'Release')" needs: [release] runs-on: ubuntu-latest strategy: matrix: os: [win, ubuntu.16.04, ubuntu.18.04, ubuntu.20.04, debian.9, debian.10, centos.7, centos.8, osx] steps: - uses: actions/checkout@v2 with: fetch-depth: 0 # avoid shallow clone so nbgv can do its work. - name: Setup .NET 5 uses: actions/setup-dotnet@v1 with: dotnet-version: 5.0.100- - uses: dotnet/nbgv@master id: nbgv - name: Load Release URL File from release job uses: actions/download-artifact@v1 with: name: release_url - name: Get Release File Name & Upload URL id: get_release_info run: | value=`cat release_url/release_url.txt` echo ::set-output name=upload_url::$value rm -rf ./release_url - name: Publish Distribution run: ./publish.cmd release ${{ matrix.os }} - name: Create Artifact run: rm -rf ./Projects/*/bin && rm -rf ./Projects/*/obj && zip -9 -r modernuo-asset.zip ./* - name: Upload Release uses: actions/upload-release-asset@v1 with: upload_url: ${{ steps.get_release_info.outputs.upload_url }} asset_path: ./modernuo-asset.zip asset_name: modernuo-${{ matrix.os }}-x64-${{ steps.nbgv.outputs.Version }}.zip asset_content_type: application/zip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}