Merge pull request #243 from daniel-frak/renovate/nl.jqno.equalsverif… #766
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 | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- master | |
pull_request: | |
types: [ opened, synchronize, reopened ] | |
env: | |
JAVA_VERSION: 21 | |
JAVA_DISTRIBUTION: temurin | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up Java | |
uses: actions/setup-java@v4 | |
with: | |
java-version: ${{ env.JAVA_VERSION }} | |
distribution: ${{ env.JAVA_DISTRIBUTION }} | |
cache: maven | |
- name: Build and test | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
# mvn install instead of verify for sonar-fork-analysis to work | |
run: mvn -B install -P code-coverage | |
- name: Prepare Sonar analysis | |
uses: ./.github/actions/sonar-fork-analysis | |
- name: Upload plugin jar | |
uses: actions/upload-artifact@v4 | |
with: | |
name: plugin-jar-file | |
path: target/*.jar | |
e2e: | |
needs: build | |
timeout-minutes: 15 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Download plugin jar | |
uses: actions/download-artifact@v4 | |
with: | |
name: plugin-jar-file | |
path: target | |
- name: Cache node_modules | |
id: cache-nodemodules | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/Cypress | |
docker/e2e/node_modules | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-build- | |
${{ runner.os }}- | |
- name: Start containers | |
working-directory: docker | |
run: | | |
docker compose up -d --build \ | |
&& ./wait-until "curl -sLf -o /dev/null http://localhost:8024/realms/master" 300 | |
- name: Install node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- name: Install dependencies | |
working-directory: docker/e2e | |
if: steps.cache-nodemodules.outputs.cache-hit != 'true' | |
run: npm install | |
- name: Run e2e tests | |
working-directory: docker/e2e | |
# Video recording turned off due to free GitHub CI runners seemingly not being powerful enough for it. | |
# Headed Chrome used to minimize issues with tests failing for no reason. | |
run: npx cypress run --headed --browser electron --config video=false | |
- name: Archive videos | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cypress-videos | |
path: docker/e2e/cypress/videos | |
- name: Archive screenshots | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cypress-screenshots | |
path: docker/e2e/cypress/screenshots | |
- name: Display 'docker ps' | |
if: always() | |
run: docker ps | |
- name: Display legacy system logs | |
if: always() | |
run: docker logs keycloak_migration_demo-legacy-system-example-1 | |
- name: Display Keycloak logs | |
if: always() | |
run: docker logs keycloak_migration_demo-keycloak-1 | |
- name: Stop containers | |
if: always() | |
working-directory: docker | |
run: docker compose down |