Publish Release Kola Distribution #69
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 Kola Distribution | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 2 * * *' # 07:30 in LK time (GMT+5:30) | |
permissions: | |
id-token: write | |
contents: write | |
jobs: | |
publish-release: | |
name: Publish Release | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: '21.0.3' | |
- name: Use Node.js | |
uses: actions/setup-node@v1 | |
with: | |
node-version: '10.22.1' | |
- name: Clone ballerina-dev-tools | |
run: git clone https://github.com/ballerina-platform/ballerina-dev-tools.git | |
- name: Build ballerina-dev-tools | |
id: build-dev-tools | |
env: | |
packageUser: ${{ github.actor }} | |
packagePAT: ${{ secrets.GITHUB_TOKEN }} | |
devCentralToken: ${{ secrets.BALLERINA_CENTRAL_DEV_ACCESS_TOKEN }} | |
githubAccessToken: ${{ secrets.GITHUB_TOKEN }} | |
ballerinaBotWorkflow: $ {{ secrets.BALLERINA_BOT_WORKFLOW }} | |
TEST_MODE_ACTIVE: true | |
run: | | |
cd ballerina-dev-tools | |
VERSION=$((grep -w 'version' | cut -d= -f2 | cut -d- -f1) < gradle.properties) | |
sed -i "s/^version=.*/version=$VERSION/" gradle.properties | |
echo "::set-output name=version::$(grep "^version=" gradle.properties | cut -d'=' -f2)" | |
echo "::set-output name=langVersion::$(grep "^ballerinaLangVersion=" gradle.properties | cut -d'=' -f2)" | |
./gradlew clean build --stacktrace --scan -x test --console=plain --no-daemon --continue publishToMavenLocal | |
cd .. | |
rm -rf ballerina-dev-tools | |
- name: Set version env variable | |
id: version-set | |
run: | | |
sed -i "s/^devToolsVersion=.*/devToolsVersion=${{ steps.build-dev-tools.outputs.version }}/" gradle.properties | |
sed -i "s/^ballerinaLangVersion=.*/ballerinaLangVersion=${{ steps.build-dev-tools.outputs.langVersion }}/" gradle.properties | |
SHORT_VERSION=$((grep -w 'version' | cut -d= -f2 | cut -d- -f1) < gradle.properties) | |
DIST_VERSION=$((grep -w 'version' | cut -d= -f2) < gradle.properties | rev | cut --complement -d- -f1 | rev) | |
LANG_VERSION=$((grep -w "ballerinaLangVersion" | cut -d= -f2 | cut -d- -f1 | xargs) < gradle.properties) | |
CODE_NAME=$((grep -w 'codeName' | cut -d= -f2) < gradle.properties) | |
RELEASE_VERSION=$DIST_VERSION | |
TAGGED_VERSION=$RELEASE_VERSION-bi-pack-$(TZ="Asia/Kolkata" date +'%Y%m%d-%H%M00') | |
LONG_VERSION=$DIST_VERSION-$CODE_NAME | |
echo VERSION=$RELEASE_VERSION >> $GITHUB_ENV | |
echo GIT_TAG=$TAGGED_VERSION >> $GITHUB_ENV | |
echo "::set-output name=version::$RELEASE_VERSION" | |
echo "::set-output name=sversion::$SHORT_VERSION" | |
echo "::set-output name=taggedVersion::$TAGGED_VERSION" | |
echo "::set-output name=longVersion::$LONG_VERSION" | |
echo "::set-output name=langVersion::$LANG_VERSION" | |
- name: Pre release dependency version update | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
run: | | |
echo "Version: ${VERSION}" | |
echo "Tagged Version: ${GIT_TAG}" | |
git config user.name ${{ secrets.BALLERINA_BOT_USERNAME }} | |
git config user.email ${{ secrets.BALLERINA_BOT_EMAIL }} | |
git checkout -b release-${GIT_TAG} | |
- name: Generate UUID | |
run: | | |
UUID=$(uuidgen) | |
perl -pi -e "s/^\s*installerVersion=.*/installerVersion=$UUID/" gradle.properties | |
git config user.name ${{ secrets.BALLERINA_BOT_USERNAME }} | |
git config user.email ${{ secrets.BALLERINA_BOT_EMAIL }} | |
git add gradle.properties | |
git commit -m "Update UUID for installer" | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
- name: Publish artifact | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} | |
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
devCentralToken: ${{ secrets.BALLERINA_CENTRAL_DEV_ACCESS_TOKEN }} | |
prodCentralToken: ${{ secrets.BALLERINA_CENTRAL_ACCESS_TOKEN }} | |
githubAccessToken: ${{ secrets.GITHUB_TOKEN }} | |
ballerinaBotWorkflow: $ {{ secrets.BALLERINA_BOT_WORKFLOW }} | |
run: | | |
./gradlew build -x test -x project-api-tests:test -Pversion=${VERSION} | |
./gradlew release -Prelease.useAutomaticVersion=true -x test | |
- name: Checkout docker repo | |
uses: actions/checkout@v3 | |
with: | |
repository: ballerina-platform/module-ballerina-docker | |
path: module-ballerina-docker | |
- name: Copy zip artifact | |
run: cp ballerina/build/distributions/ballerina-22*.zip module-ballerina-docker/base/docker/ | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v1 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Login to DockerHub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USER }} | |
password: ${{ secrets.DOCKER_HUB_TOKEN }} | |
- name: Build the docker image | |
id: docker_build | |
uses: docker/build-push-action@v2 | |
with: | |
context: module-ballerina-docker/base/docker/ | |
load: true | |
push: false | |
tags: ballerina/ballerina:release-test | |
build-args: | | |
BALLERINA_DIST=ballerina-${{ steps.version-set.outputs.sversion }}.zip | |
- name: Run Trivy vulnerability scanner | |
uses: aquasecurity/trivy-action@master | |
with: | |
image-ref: 'ballerina/ballerina:release-test' | |
skip-dirs: 'ballerina/runtime/examples' | |
format: 'table' | |
exit-code: '1' | |
timeout: "10m0s" | |
- name: cosign-installer | |
uses: sigstore/[email protected] | |
- name: Set up Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '14' | |
- name: Install GitHub CLI | |
run: | | |
npm install -g github-cli | |
gh --version | |
- name: Get Markdown file | |
id: file-url | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
gh repo view ballerina-platform/ballerina-dev-website --json url --jq '.clone_url' | |
gh api repos/ballerina-platform/ballerina-dev-website/contents/downloads/verify-ballerina-artifacts.md -H 'Accept: application/vnd.github.v3.raw' > release_notes.md | |
sed -i '1,10d' release_notes.md | |
- name: Retrieve Branch | |
id: retrieve-branch | |
run: | | |
branchName=$(echo ${{ github.ref }} | cut -d'/' -f3) | |
echo "::set-output name=branchName::$branchName" | |
- name: Update Markdown file | |
run: echo "" > release_notes.md; | |
- name: Read release notes from file | |
id: release_notes | |
uses: actions/github-script@v4 | |
with: | |
github-token: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
script: | | |
const fs = require('fs'); | |
const releaseNotes = fs.readFileSync('release_notes.md', 'utf8'); | |
core.setOutput('notes', releaseNotes); | |
- name: Create release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
tag_name: "v${{ steps.version-set.outputs.taggedVersion }}" | |
release_name: ${{ steps.version-set.outputs.taggedVersion }} | |
body: ${{ steps.release_notes.outputs.notes }} | |
draft: false | |
prerelease: true | |
- name: Create linux-deb Installer | |
run: | | |
cd installers/linux-deb | |
./build-ballerina-linux-deb-x64.sh -v ${{ steps.version-set.outputs.longVersion }} -p ./../../ballerina/build/distributions | |
echo "Created linux-deb successfully" | |
- name: Create linux-rpm Installer | |
id: run_installers_rpm | |
run: | | |
cd installers/linux-rpm | |
./build-ballerina-linux-rpm-x64.sh -v ${{ steps.version-set.outputs.longVersion }} -p ./../../ballerina/build/distributions | |
echo "Created linux-rpm successfully" | |
- name: Generate Hashes | |
run: | | |
openssl dgst -sha256 -out ballerina-${{ steps.version-set.outputs.longVersion }}-linux-x64.deb.sha256 installers/linux-deb/target/ballerina-*-linux-x64.deb | |
openssl dgst -sha256 -out ballerina-${{ steps.version-set.outputs.longVersion }}-linux-x64.rpm.sha256 installers/linux-rpm/rpmbuild/RPMS/x86_64/ballerina-*-linux-x64.rpm | |
openssl dgst -sha256 -out ballerina-${{ steps.version-set.outputs.longVersion }}.zip.sha256 ballerina/build/distributions/ballerina-${{ steps.version-set.outputs.longVersion }}.zip | |
openssl dgst -sha256 -out ballerina-${{ steps.version-set.outputs.sversion }}.zip.sha256 ballerina/build/distributions/ballerina-${{ steps.version-set.outputs.sversion }}.zip | |
- name: Upload zip artifacts | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.longVersion }}.zip | |
asset_path: ballerina/build/distributions/ballerina-${{ steps.version-set.outputs.longVersion }}.zip | |
asset_content_type: application/octet-stream | |
- name: Upload zip without tool artifacts | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.sversion }}.zip | |
asset_path: ballerina/build/distributions/ballerina-${{ steps.version-set.outputs.sversion }}.zip | |
asset_content_type: application/octet-stream | |
- name: Upload Linux deb Installer | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.longVersion }}-linux-x64.deb | |
asset_path: installers/linux-deb/target/ballerina-${{ steps.version-set.outputs.longVersion }}-linux-x64.deb | |
asset_content_type: application/octet-stream | |
- name: Upload Linux rpm Installer | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.longVersion }}-linux-x64.rpm | |
asset_path: installers/linux-rpm/rpmbuild/RPMS/x86_64/ballerina-${{ steps.version-set.outputs.longVersion }}-linux-x64.rpm | |
asset_content_type: application/octet-stream | |
- name: Upload Linux zip artifacts | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.longVersion }}-linux.zip | |
asset_path: ballerina/build/distributions/ballerina-${{ steps.version-set.outputs.longVersion }}-linux.zip | |
asset_content_type: application/octet-stream | |
- name: Upload Linux-ARM zip artifacts | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.longVersion }}-linux-arm.zip | |
asset_path: ballerina/build/distributions/ballerina-${{ steps.version-set.outputs.longVersion }}-linux-arm.zip | |
asset_content_type: application/octet-stream | |
- name: Upload MacOS zip artifacts | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.longVersion }}-macos.zip | |
asset_path: ballerina/build/distributions/ballerina-${{ steps.version-set.outputs.longVersion }}-macos.zip | |
asset_content_type: application/octet-stream | |
- name: Upload MacOS-ARM zip artifacts | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.longVersion }}-macos-arm.zip | |
asset_path: ballerina/build/distributions/ballerina-${{ steps.version-set.outputs.longVersion }}-macos-arm.zip | |
asset_content_type: application/octet-stream | |
- name: Upload Windows zip artifacts | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.longVersion }}-windows.zip | |
asset_path: ballerina/build/distributions/ballerina-${{ steps.version-set.outputs.longVersion }}-windows.zip | |
asset_content_type: application/octet-stream | |
- name: Upload Linux deb Hashes | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.longVersion }}-linux-x64.deb.sha256 | |
asset_path: ballerina-${{ steps.version-set.outputs.longVersion }}-linux-x64.deb.sha256 | |
asset_content_type: application/octet-stream | |
- name: Upload Linux rpm Hashes | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.longVersion }}-linux-x64.rpm.sha256 | |
asset_path: ballerina-${{ steps.version-set.outputs.longVersion }}-linux-x64.rpm.sha256 | |
asset_content_type: application/octet-stream | |
- name: Upload Ballerina zip Hashes | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.longVersion }}.zip.sha256 | |
asset_path: ballerina-${{ steps.version-set.outputs.longVersion }}.zip.sha256 | |
asset_content_type: application/octet-stream | |
- name: Upload ballerina Short Name zip Hashes | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.sversion }}.zip.sha256 | |
asset_path: ballerina-${{ steps.version-set.outputs.sversion }}.zip.sha256 | |
asset_content_type: application/octet-stream | |
# - name: Install Ballerina DEB | |
# run: sudo dpkg -i installers/linux-deb/target/ballerina-*-linux-x64.deb | |
# - name: Update Installer Test Configs | |
# run: | | |
# DISPLAY_TEXT=${{ steps.version-set.outputs.langVersion }} | |
# SWAN_LAKE_LATEST_VERSION="swan-lake-"+$DISPLAY_TEXT | |
# perl -pi -e "s/^\s*swan-lake-latest-version-display-text=.*/swan-lake-latest-version-display-text=$DISPLAY_TEXT/" ballerina-test-automation/gradle.properties | |
# perl -pi -e "s/^\s*swan-lake-latest-version=.*/swan-lake-latest-version=$SWAN_LAKE_LATEST_VERSION/" ballerina-test-automation/gradle.properties | |
# - name: Run Installer Tests | |
# working-directory: ./ballerina-test-automation/installer-test | |
# run: ./../gradlew build --stacktrace -scan --console=plain --no-daemon -DballerinaInstalled=true | |
# env: | |
# TEST_MODE_ACTIVE: true | |
- name: Create linux-arm-deb Installer | |
run: | | |
cd installers/linux-deb | |
./build-ballerina-linux-deb-x64.sh -v ${{ steps.version-set.outputs.longVersion }} -p ./../../ballerina/build/distributions -a arm | |
echo "Created linux-arm-deb successfully" | |
- name: Upload Linux-ARM deb Installer | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_name: ballerina-${{ steps.version-set.outputs.longVersion }}-linux-arm-x64.deb | |
asset_path: installers/linux-deb/target/ballerina-${{ steps.version-set.outputs.longVersion }}-linux-arm-x64.deb | |
asset_content_type: application/octet-stream | |
outputs: | |
project-version: ${{ steps.version-set.outputs.longVersion }} | |
upload-asset-url: ${{ steps.create_release.outputs.upload_url }} | |
release-version: ${{ steps.version-set.outputs.taggedVersion }} | |
lang-version: ${{ steps.version-set.outputs.langVersion }} | |
macos-installer-build: | |
name: MacOS Installer Build | |
needs: publish-release | |
runs-on: macos-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v2 | |
with: | |
distribution: 'temurin' | |
java-version: '21.0.3' | |
- name: Download MacOS Intaller Zip | |
run: | | |
wget https://github.com/ballerina-platform/ballerina-distribution/releases/download/v${{ needs.publish-release.outputs.release-version }}/ballerina-${{ needs.publish-release.outputs.project-version }}-macos.zip | |
- name: cosign-installer | |
uses: sigstore/[email protected] | |
- name: Create macos-pkg Installer | |
id: run_installers_pkg | |
run: | | |
cd installers/mac | |
./build-ballerina-macos-x64.sh -v ${{ needs.publish-release.outputs.project-version }} -p ./../../ | |
echo "Created macos-pkg successfully" | |
- name: Generate Hashes | |
run: | | |
openssl dgst -sha256 -out ballerina-${{ needs.publish-release.outputs.project-version }}-macos-x64.pkg.sha256 installers/mac/target/pkg/ballerina-${{ needs.publish-release.outputs.project-version }}-macos-x64.pkg | |
- name: Upload MacOS pkg Hashes | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ needs.publish-release.outputs.upload-asset-url }} | |
asset_name: ballerina-${{ needs.publish-release.outputs.project-version }}-macos-x64.pkg.sha256 | |
asset_path: ballerina-${{ needs.publish-release.outputs.project-version }}-macos-x64.pkg.sha256 | |
asset_content_type: application/octet-stream | |
- name: Upload MacOS pkg Installer | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ needs.publish-release.outputs.upload-asset-url }} | |
asset_name: ballerina-${{ needs.publish-release.outputs.project-version }}-macos-x64.pkg | |
asset_path: installers/mac/target/pkg/ballerina-${{ needs.publish-release.outputs.project-version }}-macos-x64.pkg | |
asset_content_type: application/octet-stream | |
# - name: Install Ballerina PKG | |
# run: sudo installer -pkg installers/mac/target/pkg/ballerina-*-macos-x64.pkg -target / | |
# - name: Update Installer Test Configs | |
# run: | | |
# DISPLAY_TEXT=${{ needs.publish-release.outputs.lang-version }} | |
# SWAN_LAKE_LATEST_VERSION="swan-lake-"+$DISPLAY_TEXT | |
# perl -pi -e "s/^\s*swan-lake-latest-version-display-text=.*/swan-lake-latest-version-display-text=$DISPLAY_TEXT/" ballerina-test-automation/gradle.properties | |
# perl -pi -e "s/^\s*swan-lake-latest-version=.*/swan-lake-latest-version=$SWAN_LAKE_LATEST_VERSION/" ballerina-test-automation/gradle.properties | |
# - name: Run Installer Tests | |
# working-directory: ./ballerina-test-automation/installer-test | |
# run: ./../gradlew build --stacktrace -scan --console=plain --no-daemon -DballerinaInstalled=true | |
# env: | |
# TEST_MODE_ACTIVE: true | |
- name: Download MacOS-ARM Installer Zip | |
run: | | |
wget https://github.com/ballerina-platform/ballerina-distribution/releases/download/v${{ needs.publish-release.outputs.release-version }}/ballerina-${{ needs.publish-release.outputs.project-version }}-macos-arm.zip | |
- name: Create macos-arm-pkg Installer | |
id: run_installers_arm_pkg | |
run: | | |
cd installers/mac | |
./build-ballerina-macos-x64.sh -v ${{ needs.publish-release.outputs.project-version }} -p ./../../ -a arm | |
echo "Created macos-arm-pkg successfully" | |
- name: Generate Hashes | |
run: | | |
openssl dgst -sha256 -out ballerina-${{ needs.publish-release.outputs.project-version }}-macos-arm-x64.pkg.sha256 installers/mac/target/pkg/ballerina-${{ needs.publish-release.outputs.project-version }}-macos-arm-x64.pkg | |
- name: Upload MacOS-ARM pkg Hashes | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ needs.publish-release.outputs.upload-asset-url }} | |
asset_name: ballerina-${{ needs.publish-release.outputs.project-version }}-macos-arm-x64.pkg.sha256 | |
asset_path: ballerina-${{ needs.publish-release.outputs.project-version }}-macos-arm-x64.pkg.sha256 | |
asset_content_type: application/octet-stream | |
- name: Upload MacOS-ARM pkg Installer | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ needs.publish-release.outputs.upload-asset-url }} | |
asset_name: ballerina-${{ needs.publish-release.outputs.project-version }}-macos-arm-x64.pkg | |
asset_path: installers/mac/target/pkg/ballerina-${{ needs.publish-release.outputs.project-version }}-macos-arm-x64.pkg | |
asset_content_type: application/octet-stream | |
windows-installer-build: | |
name: Windows Installer Build | |
needs: publish-release | |
runs-on: windows-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v2 | |
with: | |
distribution: 'temurin' | |
java-version: '21.0.3' | |
- uses: actions/setup-dotnet@v1 | |
with: | |
dotnet-version: '2.1.x' | |
- name: Install GUID Generator | |
run: dotnet tool install -g dotnet-guid --version 0.5.2 | |
- name: Set up Wix toolkit | |
run: echo "${WIX}bin" >> $GITHUB_PATH | |
shell: bash | |
- name: Set cosign-installer | |
uses: sigstore/[email protected] | |
- name: Download Windows Installer Zip | |
run: | | |
echo default login ${{ secrets.BALLERINA_BOT_USERNAME }} password ${{ secrets.BALLERINA_BOT_TOKEN }} >> _netrc | |
curl --netrc-file _netrc -L -o ballerina-${{ needs.publish-release.outputs.project-version }}-windows.zip https://github.com/ballerina-platform/ballerina-distribution/releases/download/v${{ needs.publish-release.outputs.release-version }}/ballerina-${{ needs.publish-release.outputs.project-version }}-windows.zip | |
- name: Create windows-msi Installer | |
id: run_installers_msi | |
run: | | |
move installers\windows .\ | |
ren windows w | |
cd w | |
.\build-ballerina-windows-x64.bat --version ${{ needs.publish-release.outputs.project-version }} --path .\..\ | |
- name: Generate Hashes | |
run: | | |
openssl dgst -sha256 -out ballerina-${{ needs.publish-release.outputs.project-version }}-windows-x64.msi.sha256 w\target\msi\ballerina-${{ needs.publish-release.outputs.project-version }}-windows-x64.msi | |
- name: Upload Windows msi Hashes | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ needs.publish-release.outputs.upload-asset-url }} | |
asset_name: ballerina-${{ needs.publish-release.outputs.project-version }}-windows-x64.msi.sha256 | |
asset_path: ballerina-${{ needs.publish-release.outputs.project-version }}-windows-x64.msi.sha256 | |
asset_content_type: application/octet-stream | |
- name: Upload Windows msi Installer | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} | |
with: | |
upload_url: ${{ needs.publish-release.outputs.upload-asset-url }} | |
asset_name: ballerina-${{ needs.publish-release.outputs.project-version }}-windows-x64.msi | |
asset_path: w\target\msi\ballerina-${{ needs.publish-release.outputs.project-version }}-windows-x64.msi | |
asset_content_type: application/octet-stream | |
# - name: Install Ballerina msi | |
# run: msiexec /i w\target\msi\ballerina-${{ needs.publish-release.outputs.project-version }}-windows-x64.msi /quiet /qr | |
# shell: cmd | |
# - name: Update Installer Test Configs | |
# run: | | |
# set DISPLAY_TEXT=${{ needs.publish-release.outputs.lang-version }} | |
# set SWAN_LAKE_LATEST_VERSION=swan-lake-%DISPLAY_TEXT% | |
# perl -pi -e "s/^\s*swan-lake-latest-version-display-text=.*/swan-lake-latest-version-display-text=%DISPLAY_TEXT%/" ballerina-test-automation/gradle.properties | |
# perl -pi -e "s/^\s*swan-lake-latest-version=.*/swan-lake-latest-version=%SWAN_LAKE_LATEST_VERSION%/" ballerina-test-automation/gradle.properties | |
# shell: cmd | |
# - name: Run Installer Tests | |
# working-directory: .\ballerina-test-automation\installer-test | |
# run: | | |
# $env:Path += ";C:\Program Files\Ballerina\bin" | |
# .\..\gradlew build --stacktrace -scan --console=plain --no-daemon -DballerinaInstalled=true |