Publish release #23
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish release | |
on: | |
workflow_dispatch: | |
permissions: | |
id-token: write | |
contents: write | |
jobs: | |
get_release_version: | |
name: Get Release Version | |
runs-on: ubuntu-latest | |
if: github.repository_owner == 'ballerina-platform' | |
steps: | |
- id: checkout | |
uses: actions/checkout@v2 | |
- id: execute | |
run: | | |
export VERSION="$((grep -w 'version' | cut -d= -f2) < gradle.properties | cut -d- -f1)" | |
echo "::set-output name=version::${VERSION}" | |
outputs: | |
version: ${{steps.execute.outputs.version}} | |
create_release: | |
needs: get_release_version | |
name: Create Release | |
runs-on: ubuntu-latest | |
if: github.repository_owner == 'ballerina-platform' | |
outputs: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
steps: | |
- name: Create release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
tag_name: ${{ needs.get_release_version.outputs.version }} | |
release_name: ${{ needs.get_release_version.outputs.version }} | |
draft: false | |
prerelease: false | |
release_linux_jre: | |
name: Release Linux JRE | |
needs: [ get_release_version, create_release ] | |
runs-on: ubuntu-latest | |
if: github.repository_owner == 'ballerina-platform' | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v2 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 11 | |
- name: cosign-installer | |
uses: sigstore/[email protected] | |
- name: Build JRE on Linux | |
env: | |
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} | |
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
run: ./gradlew build | |
# - name: Sign the Linux Artifact | |
# run: | | |
# cosign sign-blob build/distributions/ballerina-jre-linux-64-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip --output-certificate ballerina-jre-linux-64-${{ needs.get_release_version.outputs.version }}.pem --output-signature ballerina-jre-linux-64-${{ needs.get_release_version.outputs.version }}.sig --yes | |
# - name: Verify the Linux Artifact | |
# run: | | |
# cosign verify-blob build/distributions/ballerina-jre-linux-64-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip --certificate ballerina-jre-linux-64-${{ needs.get_release_version.outputs.version }}.pem --signature ballerina-jre-linux-64-${{ needs.get_release_version.outputs.version }}.sig --certificate-identity=https://github.com/ballerina-platform/ballerina-custom-jre/.github/workflows/publish-release.yml@${{ github.ref }} --certificate-oidc-issuer=https://token.actions.githubusercontent.com | |
- name: Upload linux artifacts | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ needs.create_release.outputs.upload_url }} | |
asset_name: ballerina-jre-linux-64-${{ needs.get_release_version.outputs.version }}.zip | |
asset_path: build/distributions/ballerina-jre-linux-64-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip | |
asset_content_type: application/octet-stream | |
# - name: Upload Certificate of the Linux Artifact to GitHub release | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
# with: | |
# upload_url: ${{ needs.create_release.outputs.upload_url }} | |
# asset_name: ballerina-jre-linux-64-${{ needs.get_release_version.outputs.version }}.pem | |
# asset_path: ./ballerina-jre-linux-64-${{ needs.get_release_version.outputs.version }}.pem | |
# asset_content_type: application/octet-stream | |
# - name: Upload Signature of the Linux Artifact to GitHub release | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
# with: | |
# upload_url: ${{ needs.create_release.outputs.upload_url }} | |
# asset_name: ballerina-jre-linux-64-${{ needs.get_release_version.outputs.version }}.sig | |
# asset_path: ./ballerina-jre-linux-64-${{ needs.get_release_version.outputs.version }}.sig | |
# asset_content_type: application/octet-stream | |
release_windows_jre: | |
name: Release Windows JRE | |
needs: [ get_release_version, create_release ] | |
runs-on: windows-latest | |
if: github.repository_owner == 'ballerina-platform' | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v2 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 11 | |
- name: cosign-installer | |
uses: sigstore/[email protected] | |
- name: Build JRE on Windows | |
env: | |
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} | |
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
run: ./gradlew.bat build | |
# - name: Sign the Windows Artifact | |
# run: | | |
# cosign sign-blob build/distributions/ballerina-jre-windows-64-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip --output-certificate ballerina-jre-windows-64-${{ needs.get_release_version.outputs.version }}.pem --output-signature ballerina-jre-windows-64-${{ needs.get_release_version.outputs.version }}.sig --yes | |
# - name: Verify the Windows Artifact | |
# run: | | |
# cosign verify-blob build/distributions/ballerina-jre-windows-64-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip --certificate ballerina-jre-windows-64-${{ needs.get_release_version.outputs.version }}.pem --signature ballerina-jre-windows-64-${{ needs.get_release_version.outputs.version }}.sig --certificate-identity=https://github.com/ballerina-platform/ballerina-custom-jre/.github/workflows/publish-release.yml@${{ github.ref }} --certificate-oidc-issuer=https://token.actions.githubusercontent.com | |
- name: Upload windows artifacts | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ needs.create_release.outputs.upload_url }} | |
asset_name: ballerina-jre-win-64-${{ needs.get_release_version.outputs.version }}.zip | |
asset_path: build/distributions/ballerina-jre-windows-64-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip | |
asset_content_type: application/octet-stream | |
# - name: Upload Certificate of the Windows Artifact to GitHub release | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
# with: | |
# upload_url: ${{ needs.create_release.outputs.upload_url }} | |
# asset_name: ballerina-jre-win-64-${{ needs.get_release_version.outputs.version }}.pem | |
# asset_path: ./ballerina-jre-windows-64-${{ needs.get_release_version.outputs.version }}.pem | |
# asset_content_type: application/octet-stream | |
# - name: Upload Signature of the Windows Artifact to GitHub release | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
# with: | |
# upload_url: ${{ needs.create_release.outputs.upload_url }} | |
# asset_name: ballerina-jre-win-64-${{ needs.get_release_version.outputs.version }}.sig | |
# asset_path: ./ballerina-jre-windows-64-${{ needs.get_release_version.outputs.version }}.sig | |
# asset_content_type: application/octet-stream | |
release_macos_jre: | |
name: Release macOS JRE | |
needs: [ get_release_version, create_release ] | |
runs-on: macos-latest | |
if: github.repository_owner == 'ballerina-platform' | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v2 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 11 | |
- name: cosign-installer | |
uses: sigstore/[email protected] | |
- name: Build JRE on macOS | |
env: | |
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} | |
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
run: ./gradlew build | |
# - name: Sign the macOS Artifact | |
# run: | | |
# cosign sign-blob build/distributions/ballerina-jre-macos-64-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip --output-certificate ballerina-jre-macos-64-${{ needs.get_release_version.outputs.version }}.pem --output-signature ballerina-jre-macos-64-${{ needs.get_release_version.outputs.version }}.sig --yes | |
# - name: Verify the macOS Artifact | |
# run: | | |
# cosign verify-blob build/distributions/ballerina-jre-macos-64-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip --certificate ballerina-jre-macos-64-${{ needs.get_release_version.outputs.version }}.pem --signature ballerina-jre-macos-64-${{ needs.get_release_version.outputs.version }}.sig --certificate-identity=https://github.com/ballerina-platform/ballerina-custom-jre/.github/workflows/publish-release.yml@${{ github.ref }} --certificate-oidc-issuer=https://token.actions.githubusercontent.com | |
- name: Upload macOS artifacts | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ needs.create_release.outputs.upload_url }} | |
asset_name: ballerina-jre-macos-64-${{ needs.get_release_version.outputs.version }}.zip | |
asset_path: build/distributions/ballerina-jre-macos-64-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip | |
asset_content_type: application/octet-stream | |
# - name: Upload Certificate of the macOS Artifact to GitHub release | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
# with: | |
# upload_url: ${{ needs.create_release.outputs.upload_url }} | |
# asset_name: ballerina-jre-macos-64-${{ needs.get_release_version.outputs.version }}.pem | |
# asset_path: ./ballerina-jre-macos-64-${{ needs.get_release_version.outputs.version }}.pem | |
# asset_content_type: application/octet-stream | |
# - name: Upload Signature of the macOS Artifact to GitHub release | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
# with: | |
# upload_url: ${{ needs.create_release.outputs.upload_url }} | |
# asset_name: ballerina-jre-macos-64-${{ needs.get_release_version.outputs.version }}.sig | |
# asset_path: ./ballerina-jre-macos-64-${{ needs.get_release_version.outputs.version }}.sig | |
# asset_content_type: application/octet-stream | |
release_macos_arm_jre: | |
name: Release macOS ARM JRE | |
needs: [ get_release_version, create_release ] | |
runs-on: macos-latest | |
if: github.repository_owner == 'ballerina-platform' | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v2 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 11 | |
# To support ARM binaries on macOS, Rosetta 2 needs to be installed | |
- name: Install Rosetta 2 | |
run: | | |
softwareupdate --install-rosetta --agree-to-license | |
- name: cosign-installer | |
uses: sigstore/[email protected] | |
- name: Build JRE on macOS | |
env: | |
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} | |
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
run: ./gradlew build -PtargetedOS=macos-arm | |
# - name: Sign the macOS Artifact | |
# run: | | |
# cosign sign-blob build/distributions/ballerina-jre-macos-arm-64-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip --output-certificate ballerina-jre-macos-arm-64-${{ needs.get_release_version.outputs.version }}.pem --output-signature ballerina-jre-macos-arm-64-${{ needs.get_release_version.outputs.version }}.sig --yes | |
# - name: Verify the macOS Artifact | |
# run: | | |
# cosign verify-blob build/distributions/ballerina-jre-macos-arm-64-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip --certificate ballerina-jre-macos-arm-64-${{ needs.get_release_version.outputs.version }}.pem --signature ballerina-jre-macos-arm-64-${{ needs.get_release_version.outputs.version }}.sig --certificate-identity=https://github.com/ballerina-platform/ballerina-custom-jre/.github/workflows/publish-release.yml@${{ github.ref }} --certificate-oidc-issuer=https://token.actions.githubusercontent.com | |
- name: Upload macOS artifacts | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ needs.create_release.outputs.upload_url }} | |
asset_name: ballerina-jre-macos-arm-64-${{ needs.get_release_version.outputs.version }}.zip | |
asset_path: build/distributions/ballerina-jre-macos-arm-64-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip | |
asset_content_type: application/octet-stream | |
# - name: Upload Certificate of the macOS Artifact to GitHub release | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
# with: | |
# upload_url: ${{ needs.create_release.outputs.upload_url }} | |
# asset_name: ballerina-jre-macos-arm-64-${{ needs.get_release_version.outputs.version }}.pem | |
# asset_path: ./ballerina-jre-macos-arm-64-${{ needs.get_release_version.outputs.version }}.pem | |
# asset_content_type: application/octet-stream | |
# - name: Upload Signature of the macOS Artifact to GitHub release | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
# with: | |
# upload_url: ${{ needs.create_release.outputs.upload_url }} | |
# asset_name: ballerina-jre-macos-arm-64-${{ needs.get_release_version.outputs.version }}.sig | |
# asset_path: ./ballerina-jre-macos-arm-64-${{ needs.get_release_version.outputs.version }}.sig | |
# asset_content_type: application/octet-stream |