Update to Java 21 & Replace deprecated getBuildDir #432
Workflow file for this run
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: Build and Test | |
on: | |
pull_request: | |
branches: | |
- dev | |
- beta | |
- "epic/**" | |
types: [opened, synchronize, reopened, ready_for_review] | |
jobs: | |
check: | |
name: "Check" | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-latest | |
outputs: | |
testing_needed: ${{ steps.check.outputs.testing_needed }} | |
steps: | |
- name: "Checkout Branch" | |
uses: actions/checkout@v3 | |
### Checks if there are any file changes that are not in the .github/ or doc/ directories | |
- name: "Check for changes outside CI and docs" | |
id: check | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
changed_files=$(gh pr diff --name-only ${{ github.event.pull_request.number }}) | |
changesOutsideDocsCI=false | |
for file in $changed_files; do | |
if [[ $file -ne ".github/"* && $file -ne "doc/"* ]]; then | |
echo "file: $file is not part of CI or docs" | |
echo "Start testing pipeline." | |
changesOutsideDocsCI=true | |
break | |
else | |
echo "file: $file is part of CI or docs" | |
fi | |
done | |
if [[ $changesOutsideDocsCI == true ]]; then | |
echo "testing_needed=true" >> "$GITHUB_OUTPUT" | |
else | |
echo "testing_needed=false" >> "$GITHUB_OUTPUT" | |
echo "No need for the build and test pipeline to run. Exiting." | |
fi | |
build: | |
name: "Build" | |
timeout-minutes: 10 | |
needs: check | |
if: | | |
(github.event.pull_request.draft == false) | |
&& (needs.check.outputs.worth_testing == true) | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Checkout Branch" | |
uses: actions/checkout@v3 | |
- name: "Setup Java" | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: 17 | |
cache: 'gradle' | |
- name: Setup Gradle cache | |
uses: actions/cache@v3 | |
with: | |
path: ~/.gradle | |
key: ${{ runner.os }}-gradle-${{ hashFiles('versions.properties') }}-${{ github.sha }} | |
- name: "prepare libs for build" | |
run: ./prepare.sh | |
- name: "build backend" | |
run: ./gradlew --build-cache build -x test | |
- name: Upload build reports | |
uses: actions/upload-artifact@v3 | |
if: ${{ failure() || contains(github.event.pull_request.labels.*.name, 'force reports') }} | |
with: | |
name: Build Reports | |
path: "**/build/reports" | |
test: | |
name: "Test" | |
timeout-minutes: 120 | |
needs: build | |
if: | | |
(github.event.pull_request.draft == false) | |
&& (needs.check.outputs.testing_needed == true) | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Checkout Branch" | |
uses: actions/checkout@v3 | |
- name: "Setup Java" | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: 17 | |
cache: 'gradle' | |
- name: Setup Gradle cache | |
uses: actions/cache@v3 | |
with: | |
path: ~/.gradle | |
key: ${{ runner.os }}-gradle-${{ hashFiles('versions.properties') }}-${{ github.sha }} | |
- name: "prepare libs for tests" | |
run: ./prepare.sh | |
- name: "test backend" | |
run: ./gradlew --build-cache check | |
- name: Upload test reports | |
uses: actions/upload-artifact@v3 | |
if: ${{ failure() || contains(github.event.pull_request.labels.*.name, 'force reports') }} | |
with: | |
name: Test Reports | |
path: "**/build/reports" | |