diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000000..7ed29d299b6f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,113 @@ +name: Publish Release + +on: + push: + tags: + - '*il*' + +jobs: + build: + name: Publish Release + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Submodules + run: git submodule update --init . + + - name: Patch + run: ./build -p + + - name: Set version string + id: version + run: | + echo "GITHUB_REPOSITORY = $GITHUB_REPOSITORY" + echo "GITHUB_REF = $GITHUB_REF" + echo "::set-output name=v::${GITHUB_REPOSITORY##*/}-${GITHUB_REF##*/}" + echo "::set-output name=b::${GITHUB_REF##*/}" + + - name: Create archive + run: tar cvf release.tar --owner=root --group=root --exclude '.git*' --exclude .azurepipelines --transform 's^.^${{ steps.version.outputs.v }}^' --show-stored-names . + + - name: Compress + run: | + gzip -9vc release.tar > release.tar.gz + bzip2 -9vc release.tar > release.tar.bz2 + xz -9vc release.tar > release.tar.xz + sha256sum release.tar.gz > release.tar.gz.sha256 + sha256sum release.tar.bz2 > release.tar.bz2.sha256 + sha256sum release.tar.xz > release.tar.xz.sha256 + + - name: Create release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ steps.version.outputs.b }} + release_name: Release ${{ steps.version.outputs.b }} + draft: false + prerelease: false + + - name: Upload gz + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: release.tar.gz + asset_name: ${{ steps.version.outputs.v }}.tar.gz + asset_content_type: application/gzip + + - name: Upload gz checksum + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: release.tar.gz.sha256 + asset_name: ${{ steps.version.outputs.v }}.tar.gz.sha256 + asset_content_type: text/plain + + - name: Upload bz2 + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: release.tar.bz2 + asset_name: ${{ steps.version.outputs.v }}.tar.bz2 + asset_content_type: application/bzip2 + + - name: Upload bz2 checksum + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: release.tar.bz2.sha256 + asset_name: ${{ steps.version.outputs.v }}.tar.bz2.sha256 + asset_content_type: text/plain + + - name: Upload xz + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: release.tar.xz + asset_name: ${{ steps.version.outputs.v }}.tar.xz + asset_content_type: application/xz + + - name: Upload xz checksum + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: release.tar.xz.sha256 + asset_name: ${{ steps.version.outputs.v }}.tar.xz.sha256 + asset_content_type: text/plain +