Skip to content

Publish release

Publish release #23

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