Skip to content

Ballerina daily build #4801

Ballerina daily build

Ballerina daily build #4801

Workflow file for this run

name: Ballerina daily build
on:
schedule:
- cron: '30 18 * * *' # 00:00 in LK time (GMT+5:30)
- cron: '30 6 * * *' # 12:00 in LK time (GMT+5:30)
jobs:
ubuntu_build:
name: Build with tests on Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21.0.3'
- name: Initialize sub-modules
run: git submodule update --init
- name: Cache Gradle packages
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ github.sha }}
restore-keys: ${{ runner.os }}-gradle
- name: Setup GraalVM
uses: graalvm/setup-graalvm@v1
with:
java-version: '21.0.3'
distribution: 'graalvm'
components: 'native-image'
github-token: ${{ secrets.GITHUB_TOKEN }}
set-java-home: 'false'
- name: Build with Gradle
env:
packageUser: ${{ github.actor }}
packagePAT: ${{ secrets.GITHUB_TOKEN }}
run: |
export DISPLAY=':99.0'
/usr/bin/Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
./gradlew build -Pnative.test --max-workers=2 --scan --no-daemon
find ~/.gradle/caches/ -name "*.lock" -type f -delete
- name: Notify failure
if: ${{ failure() }}
run: |
curl \
-X POST 'https://chat.googleapis.com/v1/spaces/${{secrets.NOTIFICATIONS_CHAT_ID}}/messages?key=${{secrets.NOTIFICATIONS_CHAT_KEY}}&token=${{secrets.NOTIFICATIONS_CHAT_TOKEN}}' \
--header 'Content-Type: application/json' \
-d '{"text": "*ballerina-lang daily build failure* \nPlease \n visit <https://github.com/ballerina-platform/ballerina-lang/actions?query=workflow%3A%22Daily+build%22|the daily build page> for more information"}'
sonarcloud_scan:
name: Build with sonarcloud scan on Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21.0.3'
- name: Initialize sub-modules
run: git submodule update --init
- name: Cache SonarCloud packages
uses: actions/cache@v4
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Cache Gradle packages
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ github.sha }}
restore-keys: ${{ runner.os }}-gradle
- name: Create missing module folders
run: |
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/ballerina-formatter
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/ballerina
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/ballerina-langlib
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/compiler-plugins
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/composer
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/debug-adapter
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/distribution/zip/nballerina-tools
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/formatter
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/ls-extensions
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/project-api-test-artifact
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/language-server/modules/test-coverage
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/misc/testerina/modules/report-tools
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/misc/ballerina-config-schema-builder
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/ballerina-stringutils
mkdir -p /home/runner/work/ballerina-lang/ballerina-lang/semver-checker
- name: Build with Gradle
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
if: "${{ env.SONAR_TOKEN != '' }}"
run: |
export DISPLAY=':99.0'
/usr/bin/Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
./gradlew build sonarqube --info -x test -x check --max-workers=2 --scan --no-daemon
find ~/.gradle/caches/ -name "*.lock" -type f -delete
- name: Print log message
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
if: "${{ env.SONAR_TOKEN == '' }}"
run: echo "Sonarcloud scan is skipped"