Skip to content

Commit ad17eb4

Browse files
Merge pull request #2 from NipunaRanasinghe/github-actions
Add build and release workflows
2 parents 861bb22 + b2f19d3 commit ad17eb4

File tree

3 files changed

+225
-0
lines changed

3 files changed

+225
-0
lines changed

.github/workflows/build-main.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: Main Branch Build
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
workflow_dispatch:
8+
9+
jobs:
10+
get_version:
11+
name: Populate Version
12+
runs-on: ubuntu-latest
13+
steps:
14+
- id: checkout
15+
uses: actions/checkout@v2
16+
- id: execute
17+
run: |
18+
export VERSION="$((grep -w 'version' | cut -d= -f2) < gradle.properties)"
19+
echo "::set-output name=version::${VERSION}"
20+
outputs:
21+
version: ${{steps.execute.outputs.version}}
22+
build:
23+
needs: get_version
24+
runs-on: ${{ matrix.os }}
25+
strategy:
26+
fail-fast: false
27+
matrix:
28+
os: [ ubuntu-latest, windows-latest, macOS-latest ]
29+
steps:
30+
- name: Checkout
31+
uses: actions/checkout@v2
32+
- name: Set up JDK 11
33+
uses: actions/setup-java@v1
34+
with:
35+
java-version: 11
36+
- name: Build JRE on Linux
37+
if: matrix.os == 'ubuntu-latest'
38+
env:
39+
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }}
40+
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }}
41+
run: ./gradlew build
42+
- name: Build JRE on Windows
43+
if: matrix.os == 'windows-latest'
44+
env:
45+
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }}
46+
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }}
47+
run: ./gradlew.bat build
48+
- name: Build JRE on macOS
49+
if: matrix.os == 'macOS-latest'
50+
env:
51+
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }}
52+
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }}
53+
run: ./gradlew build
54+
- name: Archive Linux Artifacts
55+
if: matrix.os == 'ubuntu-latest'
56+
uses: actions/upload-artifact@v2
57+
with:
58+
name: ballerina-jre-linux-${{ needs.get_version.outputs.version }}.zip
59+
path: build/distributions/ballerina-jre-linux-${{ needs.get_version.outputs.version }}.zip
60+
- name: Archive Windows Artifacts
61+
if: matrix.os == 'windows-latest'
62+
uses: actions/upload-artifact@v2
63+
with:
64+
name: ballerina-jre-windows-${{ needs.get_version.outputs.version }}.zip
65+
path: build/distributions/ballerina-jre-windows-${{ needs.get_version.outputs.version }}.zip
66+
- name: Archive MacOS Artifacts
67+
if: matrix.os == 'macOS-latest'
68+
uses: actions/upload-artifact@v2
69+
with:
70+
name: ballerina-jre-macos-${{ needs.get_version.outputs.version }}.zip
71+
path: build/distributions/ballerina-jre-macos-${{ needs.get_version.outputs.version }}.zip
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
name: Publish release
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
get_release_version:
8+
name: Get Release Version
9+
runs-on: ubuntu-latest
10+
if: github.repository_owner == 'ballerina-platform'
11+
steps:
12+
- id: checkout
13+
uses: actions/checkout@v2
14+
- id: execute
15+
run: |
16+
export VERSION="$((grep -w 'version' | cut -d= -f2) < gradle.properties | cut -d- -f1)"
17+
echo "::set-output name=version::${VERSION}"
18+
outputs:
19+
version: ${{steps.execute.outputs.version}}
20+
create_release:
21+
needs: get_release_version
22+
name: Create Release
23+
runs-on: ubuntu-latest
24+
if: github.repository_owner == 'ballerina-platform'
25+
outputs:
26+
upload_url: ${{ steps.create_release.outputs.upload_url }}
27+
steps:
28+
- name: Create release
29+
id: create_release
30+
uses: actions/create-release@v1
31+
env:
32+
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }}
33+
with:
34+
tag_name: ${{ needs.get_release_version.outputs.version }}
35+
release_name: ${{ needs.get_release_version.outputs.version }}
36+
draft: false
37+
prerelease: false
38+
release_assets:
39+
name: Release assets
40+
needs: [ get_release_version, create_release ]
41+
runs-on: ${{ matrix.os }}
42+
if: github.repository_owner == 'ballerina-platform'
43+
strategy:
44+
fail-fast: false
45+
matrix:
46+
os: [ ubuntu-latest, windows-latest, macOS-latest ]
47+
steps:
48+
- name: Checkout Code
49+
uses: actions/checkout@v2
50+
- name: Set up JDK 11
51+
uses: actions/setup-java@v1
52+
with:
53+
java-version: 11
54+
- name: Build JRE on Linux
55+
if: matrix.os == 'ubuntu-latest'
56+
env:
57+
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }}
58+
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }}
59+
run: ./gradlew build
60+
- name: Build JRE on Windows
61+
if: matrix.os == 'windows-latest'
62+
env:
63+
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }}
64+
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }}
65+
run: ./gradlew.bat build
66+
- name: Build JRE on macOS
67+
if: matrix.os == 'macOS-latest'
68+
env:
69+
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }}
70+
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }}
71+
run: ./gradlew build
72+
- name: Upload linux artifacts
73+
if: matrix.os == 'ubuntu-latest'
74+
uses: actions/upload-release-asset@v1
75+
env:
76+
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }}
77+
with:
78+
upload_url: ${{ needs.create_release.outputs.upload_url }}
79+
asset_name: ballerina-jre-linux-${{ needs.get_release_version.outputs.version }}.zip
80+
asset_path: build/distributions/ballerina-jre-linux-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip
81+
asset_content_type: application/octet-stream
82+
- name: Upload windows artifacts
83+
if: matrix.os == 'windows-latest'
84+
uses: actions/upload-release-asset@v1
85+
env:
86+
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }}
87+
with:
88+
upload_url: ${{ needs.create_release.outputs.upload_url }}
89+
asset_name: ballerina-jre-windows-${{ needs.get_release_version.outputs.version }}.zip
90+
asset_path: build/distributions/ballerina-jre-windows-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip
91+
asset_content_type: application/octet-stream
92+
- name: Upload macOS artifacts
93+
if: matrix.os == 'macOS-latest'
94+
uses: actions/upload-release-asset@v1
95+
env:
96+
GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }}
97+
with:
98+
upload_url: ${{ needs.create_release.outputs.upload_url }}
99+
asset_name: ballerina-jre-macos-${{ needs.get_release_version.outputs.version }}.zip
100+
asset_path: build/distributions/ballerina-jre-macos-${{ needs.get_release_version.outputs.version }}-SNAPSHOT.zip
101+
asset_content_type: application/octet-stream

.github/workflows/pull-request.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Pull Request Build
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
workflow_dispatch:
8+
9+
jobs:
10+
get_version:
11+
name: Populate Version
12+
runs-on: ubuntu-latest
13+
steps:
14+
- id: checkout
15+
uses: actions/checkout@v2
16+
- id: execute
17+
run: |
18+
export VERSION="$((grep -w 'version' | cut -d= -f2) < gradle.properties)"
19+
echo "::set-output name=version::${VERSION}"
20+
outputs:
21+
version: ${{steps.execute.outputs.version}}
22+
build:
23+
needs: get_version
24+
runs-on: ${{ matrix.os }}
25+
strategy:
26+
fail-fast: false
27+
matrix:
28+
os: [ ubuntu-latest, windows-latest, macOS-latest ]
29+
steps:
30+
- name: Checkout
31+
uses: actions/checkout@v2
32+
- name: Set up JDK 11
33+
uses: actions/setup-java@v1
34+
with:
35+
java-version: 11
36+
- name: Ubuntu Build
37+
if: matrix.os == 'ubuntu-latest'
38+
env:
39+
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }}
40+
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }}
41+
run: ./gradlew build --scan
42+
- name: Windows Build
43+
if: matrix.os == 'windows-latest'
44+
env:
45+
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }}
46+
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }}
47+
run: ./gradlew.bat build --scan
48+
- name: MacOS Build
49+
if: matrix.os == 'macOS-latest'
50+
env:
51+
packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }}
52+
packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }}
53+
run: ./gradlew build --scan

0 commit comments

Comments
 (0)