Skip to content

[master] Allow not having source code for projects with build tools #20965

[master] Allow not having source code for projects with build tools

[master] Allow not having source code for projects with build tools #20965

name: CI Ubuntu
on:
pull_request:
branches:
- testerina-migration
- master
- next-release
- release-stage
- stage
- ballerina-1.2.x
- stage-swan-lake
- 2201.[0-9]+.x
- 2201.[0-9]+.[0-9]+-stage
- native-build
- revert-client-decl-master
- query-grouping-aggregation
jobs:
ubuntu_build:
name: Build with all tests on Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 150
concurrency:
group: ${{ github.head_ref }}-ubuntu
cancel-in-progress: true
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17.0.7'
- 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: '17.0.7'
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
- name: Generate Jacoco report
if: github.event_name == 'pull_request'
run: ./gradlew createCodeCoverageReport
- name: Generate Codecov Report
if: github.event_name == 'pull_request'
uses: codecov/codecov-action@v4
with:
files: ./.jacoco/reports/jacoco/report.xml
sonarcloud_scan:
name: Build with sonarcloud scan on Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 120
concurrency:
group: ${{ github.head_ref }}-sonarcloud
cancel-in-progress: true
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17.0.7'
- 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
- name: Print log message
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
if: "${{ env.SONAR_TOKEN == '' }}"
run: echo "Sonarcloud scan is skipped"