chore(deps-dev): bump eslint from 9.12.0 to 9.17.0 #4771
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: JHipster Svelte Generated Applications | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
env: | |
TEST_SCRIPTS_PATH: ${{ github.workspace }}/.github/workflows/scripts | |
jobs: | |
svelte-image: | |
name: Prepare JHipster Svelte Image | |
runs-on: ubuntu-latest | |
concurrency: | |
group: apps-dev-${{ matrix.apps }}-${{ github.head_ref || github.sha }} | |
cancel-in-progress: true | |
timeout-minutes: 5 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create JHipster Svelte docker image | |
run: | | |
docker build -t jhipster/jhipster-svelte:$GITHUB_SHA --build-arg UID=$(id -u) --build-arg GID=$(id -g) . | |
mkdir -p svelte-artifacts/images | |
docker save jhipster/jhipster-svelte:$GITHUB_SHA > svelte-artifacts/images/svelte-image.tar | |
- name: Save Svelte Docker image | |
uses: actions/upload-artifact@v4 | |
with: | |
name: docker-artifact | |
path: svelte-artifacts/images | |
retention-days: 1 | |
development-profile-builds: | |
needs: svelte-image | |
name: ${{ matrix.apps }} | |
concurrency: | |
group: apps-dev-${{ matrix.apps }}-${{ github.head_ref || github.sha }} | |
cancel-in-progress: true | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 15 | |
strategy: | |
fail-fast: false | |
matrix: | |
apps: [ | |
'monolithic-session-maven.jdl', | |
'monolithic-jwt-maven-skip-user.jdl', | |
# 'monolithic-session-maven-reactive.jdl', | |
] | |
os: [ubuntu-latest] | |
node_version: [20.x] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download latest chrome binary | |
if: contains(matrix.os , 'ubuntu-latest') | |
run: | | |
sudo apt-get update | |
sudo apt-get install google-chrome-stable -y | |
sudo apt-get install xvfb | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node_version }} | |
- name: Gradle - Configure cache | |
uses: actions/cache@v4 | |
if: contains(matrix.apps, 'gradle') | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-8.7.0 | |
- name: Maven - Configure cache | |
uses: actions/cache@v4 | |
if: contains(matrix.apps, 'maven') | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-8.7.0 | |
- name: Configure cypress cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/Cypress/13.5.x | |
~/.cache/Cypress/cy | |
key: ${{ runner.os }}-cypress-13.5.x | |
- name: Retrieve saved Svelte Docker Image | |
uses: actions/download-artifact@v4 | |
with: | |
name: docker-artifact | |
path: svelte-artifacts/images | |
- name: Docker load | |
run: | | |
cd svelte-artifacts/images | |
docker load < svelte-image.tar | |
- name: Prepare environment | |
run: | | |
mkdir -p "$HOME/svelte-app" | |
mkdir -p "$HOME/.m2" | |
mkdir -p "$HOME/.gradle" | |
mkdir -p "$HOME/.cache" | |
- name: Generate application | |
if: contains(matrix.apps, '.json') | |
run: | | |
cd "$HOME/svelte-app" | |
cp $TEST_SCRIPTS_PATH/${{ matrix.apps }} .yo-rc.json | |
docker run --rm -v $PWD:/app -v $HOME/.cache:/home/jsvelte/.cache jhipster/jhipster-svelte:$GITHUB_SHA --no-insight --force --jest --swagger-ui | |
- name: Generate application | |
if: contains(matrix.apps, '.jdl') | |
run: | | |
cd "$HOME/svelte-app" | |
cp $TEST_SCRIPTS_PATH/${{ matrix.apps }} app.jdl | |
docker run --rm -v $PWD:/app -v $HOME/.cache:/home/jsvelte/.cache jhipster/jhipster-svelte:$GITHUB_SHA import-jdl app.jdl --no-insight --force | |
- name: Maven - Unit tests | |
if: contains(matrix.apps , 'maven') | |
run: | | |
cd "$HOME/svelte-app" | |
docker run --rm -v $PWD:/app -v $HOME/.m2:/home/jsvelte/.m2 --entrypoint ./mvnw jhipster/jhipster-svelte:$GITHUB_SHA -ntp test | |
- name: Gradle - Unit tests | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-app" | |
docker run --rm -v $PWD:/app -v $HOME/.gradle:/home/jsvelte/.gradle --entrypoint ./gradlew jhipster/jhipster-svelte:$GITHUB_SHA test --no-daemon | |
- name: Frontend - Lint application | |
run: | | |
cd "$HOME/svelte-app" | |
docker run --rm -v $PWD:/app --entrypoint ./npmw jhipster/jhipster-svelte:$GITHUB_SHA run lint | |
- name: Frontend - Unit tests | |
run: | | |
cd "$HOME/svelte-app" | |
docker run --rm -v $PWD:/app --entrypoint ./npmw jhipster/jhipster-svelte:$GITHUB_SHA test | |
- name: Maven - Package application | |
if: contains(matrix.apps , 'maven') | |
run: | | |
cd "$HOME/svelte-app" | |
docker run --rm -v $PWD:/app -v $HOME/.m2:/home/jsvelte/.m2 --entrypoint ./mvnw jhipster/jhipster-svelte:$GITHUB_SHA -ntp verify | |
- name: Gradle - Package application | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-app" | |
docker run --rm -v $PWD:/app -v $HOME/.gradle:/home/jsvelte/.gradle --entrypoint ./gradlew jhipster/jhipster-svelte:$GITHUB_SHA bootJar --no-daemon | |
- name: Maven - Cypress tests | |
if: contains(matrix.apps , 'maven') | |
run: | | |
cd "$HOME/svelte-app" | |
docker run -d --rm -v $PWD:/app -v $HOME/.m2:/home/jsvelte/.m2 -p8080:8080 --entrypoint ./mvnw jhipster/jhipster-svelte:$GITHUB_SHA -DskipTests -Dspring-boot.run.jvmArguments="-Dspring.docker.compose.enabled=false" | |
timeout 180 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:8080/api/authenticate)" != "200" ]]; do sleep 5; done' || false | |
npm run e2e:ci | |
- name: Gradle Cypress tests | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-app" | |
docker run --rm -v $PWD:/app -v $HOME/.gradle:/home/jsvelte/.gradle --entrypoint ./gradlew jhipster/jhipster-svelte:$GITHUB_SHA clean | |
docker run -d --rm -v $PWD:/app -v $HOME/.gradle:/home/jsvelte/.gradle -p8080:8080 --entrypoint ./gradlew jhipster/jhipster-svelte:$GITHUB_SHA -x test | |
timeout 180 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:8080/api/authenticate)" != "200" ]]; do sleep 5; done' || false | |
npm run e2e:ci | |
development-profile-non-docker-builds: | |
name: ${{ matrix.apps }} | |
concurrency: | |
group: apps-dev-${{ matrix.apps }}-${{ github.head_ref || github.sha }} | |
cancel-in-progress: true | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 20 | |
strategy: | |
fail-fast: false | |
matrix: | |
apps: ['monolithic-session-gradle.json', 'monolithic-jwt-gradle.json'] | |
os: [ubuntu-latest] | |
node_version: [20.x] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download latest chrome binary | |
if: contains(matrix.os , 'ubuntu-latest') | |
run: | | |
sudo apt-get update | |
sudo apt-get install google-chrome-stable -y | |
sudo apt-get install xvfb | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node_version }} | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- name: Gradle - Configure cache | |
uses: actions/cache@v4 | |
if: contains(matrix.apps, 'gradle') | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-8.7.0 | |
- name: Maven - Configure cache | |
uses: actions/cache@v4 | |
if: contains(matrix.apps, 'maven') | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-8.7.0 | |
- name: Configure cypress cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/Cypress/13.5.x | |
~/.cache/Cypress/cy | |
key: ${{ runner.os }}-cypress-13.5.x | |
- name: Prepare environment | |
run: | | |
mkdir -p "$HOME/svelte-app" | |
mkdir -p "$HOME/.m2" | |
mkdir -p "$HOME/.gradle" | |
mkdir -p "$HOME/.cache" | |
- name: Link blueprint | |
run: | | |
npm ci --quiet | |
npm link | |
- name: Generate application | |
run: | | |
cd "$HOME/svelte-app" | |
cp $TEST_SCRIPTS_PATH/${{ matrix.apps }} .yo-rc.json | |
npm link "generator-jhipster-svelte" | |
jsvelte --no-insight --force --jest --swagger-ui | |
- name: Maven - Unit tests | |
if: contains(matrix.apps , 'maven') | |
run: | | |
cd "$HOME/svelte-app" | |
./mvnw -ntp test | |
- name: Gradle - Unit tests | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-app" | |
./gradlew test --no-daemon | |
- name: Frontend - Lint application | |
run: | | |
cd "$HOME/svelte-app" | |
npm run lint | |
- name: Frontend - Unit tests | |
run: | | |
cd "$HOME/svelte-app" | |
npm test | |
- name: Maven - Package application | |
if: contains(matrix.apps , 'maven') | |
run: | | |
cd "$HOME/svelte-app" | |
./mvnw -ntp verify | |
- name: Gradle - Package application | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-app" | |
./gradlew bootJar --no-daemon | |
- name: Maven - Cypress tests | |
if: contains(matrix.apps , 'maven') | |
run: | | |
cd "$HOME/svelte-app" | |
./mvnw -svelte:$GITHUB_SHA -DskipTests & | |
timeout 180 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:8080/api/authenticate)" != "200" ]]; do sleep 5; done' || false | |
npm run e2e:ci | |
- name: Gradle Cypress tests | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-app" | |
./gradlew -x test & | |
timeout 180 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:8080/api/authenticate)" != "200" ]]; do sleep 5; done' || false | |
npm run e2e:ci | |
production-profile-builds: | |
needs: svelte-image | |
name: ${{ matrix.apps }} | |
concurrency: | |
group: apps-prod-${{ matrix.apps }}-${{ github.head_ref || github.sha }} | |
cancel-in-progress: true | |
if: github.event.action != 'closed' | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 15 | |
strategy: | |
fail-fast: false | |
matrix: | |
apps: | |
[ | |
'monolithic-jwt-maven-mongodb-prod.jdl', | |
'monolithic-session-maven-postgres-prod.jdl', | |
'monolithic-oidc-maven-postgres-prod.jdl', | |
'gateway-jwt-maven-postgres-prod.jdl', | |
] | |
os: [ubuntu-latest] | |
node_version: [20.x] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download latest chrome binary | |
if: contains(matrix.os , 'ubuntu-latest') | |
run: | | |
sudo apt-get update | |
sudo apt-get install google-chrome-stable -y | |
sudo apt-get install xvfb | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node_version }} | |
- name: Gradle - Configure cache | |
uses: actions/cache@v4 | |
if: contains(matrix.apps, 'gradle') | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-8.7.0 | |
- name: Maven - Configure cache | |
uses: actions/cache@v4 | |
if: contains(matrix.apps, 'maven') | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-8.7.0 | |
- name: Configure cypress cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/Cypress/13.5.x | |
~/.cache/Cypress/cy | |
key: ${{ runner.os }}-cypress-13.5.x | |
- name: Retrieve saved Svelte Docker Image | |
uses: actions/download-artifact@v4 | |
with: | |
name: docker-artifact | |
path: svelte-artifacts/images | |
- name: Docker load | |
run: | | |
cd svelte-artifacts/images | |
docker load < svelte-image.tar | |
- name: Prepare environment | |
run: | | |
mkdir -p "$HOME/svelte-app" | |
mkdir -p "$HOME/.m2" | |
mkdir -p "$HOME/.gradle" | |
mkdir -p "$HOME/.cache" | |
- name: Generate application | |
if: contains(matrix.apps, '.json') | |
run: | | |
cd "$HOME/svelte-app" | |
cp $TEST_SCRIPTS_PATH/${{ matrix.apps }} .yo-rc.json | |
docker run --rm -v $PWD:/app -v $HOME/.cache:/home/jsvelte/.cache jhipster/jhipster-svelte:$GITHUB_SHA --no-insight --force | |
- name: Generate application | |
if: contains(matrix.apps, '.jdl') | |
run: | | |
cd "$HOME/svelte-app" | |
cp $TEST_SCRIPTS_PATH/${{ matrix.apps }} app.jdl | |
docker run --rm -v $PWD:/app -v $HOME/.cache:/home/jsvelte/.cache jhipster/jhipster-svelte:$GITHUB_SHA import-jdl app.jdl --no-insight --force | |
- name: Maven - Unit tests | |
if: contains(matrix.apps , 'maven') | |
run: | | |
cd "$HOME/svelte-app" | |
rm -rf node_modules/generator-jhipster-svelte | |
./mvnw -ntp test | |
- name: Gradle - Unit tests | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-app" | |
rm -rf node_modules/generator-jhipster-svelte | |
./gradlew test --no-daemon | |
- name: Frontend - Lint application | |
run: | | |
cd "$HOME/svelte-app" | |
./npmw run lint | |
- name: Frontend - Unit tests | |
run: | | |
cd "$HOME/svelte-app" | |
./npmw run test | |
- name: Maven - Package application | |
if: contains(matrix.apps , 'maven') | |
run: | | |
cd "$HOME/svelte-app" | |
./mvnw -ntp -Pprod verify | |
- name: Gradle - Package application | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-app" | |
./gradlew -Pprod bootJar --no-daemon | |
- name: Maven - Build application docker image | |
if: contains(matrix.apps, 'maven') | |
run: | | |
cd "$HOME/svelte-app" | |
./mvnw -ntp -Pprod compile jib:dockerBuild | |
- name: Gradle - Build application docker image | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-app" | |
./gradlew -Pprod jibDockerBuild | |
- name: Start Keycloak container | |
if: contains(matrix.apps, 'oidc') | |
run: | | |
cd "$HOME/svelte-app" | |
sudo echo "127.0.0.1 keycloak" | sudo tee -a /etc/hosts | |
docker compose -f src/main/docker/keycloak.yml up -d | |
timeout 180 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:9080/realms/master)" != "200" ]]; do sleep 5; done' || false | |
- name: Run Cypress tests | |
run: | | |
cd "$HOME/svelte-app" | |
sudo echo "127.0.0.1 keycloak" | sudo tee -a /etc/hosts | |
docker compose -f src/main/docker/app.yml up -d | |
timeout 180 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:8080/api/authenticate)" != "200" ]]; do sleep 5; done' || false | |
npm run e2e:ci | |
microservices-production-profile-builds: | |
needs: svelte-image | |
name: ${{ matrix.apps }} | |
concurrency: | |
group: ms-apps-prod-${{ matrix.apps }}-${{ github.head_ref || github.sha }} | |
cancel-in-progress: true | |
if: github.event.action != 'closed' | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 25 | |
strategy: | |
fail-fast: false | |
matrix: | |
apps: ['microservices-oidc-maven-prod.jdl'] | |
os: [ubuntu-latest] | |
node_version: [20.x] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download latest chrome binary | |
if: contains(matrix.os , 'ubuntu-latest') | |
run: | | |
sudo apt-get update | |
sudo apt-get install google-chrome-stable -y | |
sudo apt-get install xvfb | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node_version }} | |
- name: Gradle - Configure cache | |
uses: actions/cache@v4 | |
if: contains(matrix.apps, 'gradle') | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-8.7.0 | |
- name: Maven - Configure cache | |
uses: actions/cache@v4 | |
if: contains(matrix.apps, 'maven') | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-8.7.0 | |
- name: Configure cypress cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/Cypress/13.5.x | |
~/.cache/Cypress/cy | |
key: ${{ runner.os }}-cypress-13.5.x | |
- name: Retrieve saved Svelte Docker Image | |
uses: actions/download-artifact@v4 | |
with: | |
name: docker-artifact | |
path: svelte-artifacts/images | |
- name: Docker load | |
run: | | |
cd svelte-artifacts/images | |
docker load < svelte-image.tar | |
- name: Prepare environment | |
run: | | |
mkdir -p "$HOME/svelte-ms" | |
mkdir -p "$HOME/.m2" | |
mkdir -p "$HOME/.gradle" | |
mkdir -p "$HOME/.cache" | |
- name: Generate application | |
if: contains(matrix.apps, '.jdl') | |
run: | | |
cd "$HOME/svelte-ms" | |
cp $TEST_SCRIPTS_PATH/${{ matrix.apps }} app.jdl | |
docker run --rm -v $PWD:/app -v $HOME/.cache:/home/jsvelte/.cache jhipster/jhipster-svelte:$GITHUB_SHA import-jdl app.jdl --no-insight --skip-checks --force | |
- name: Maven - Unit tests - Gateway | |
if: contains(matrix.apps , 'maven') | |
run: | | |
cd "$HOME/svelte-ms/gateway" | |
rm -rf node_modules/generator-jhipster-svelte | |
./mvnw -ntp test | |
- name: Maven - Unit tests - Microservice | |
if: contains(matrix.apps , 'maven') | |
run: | | |
cd "$HOME/svelte-ms/blog" | |
rm -rf node_modules/generator-jhipster-svelte | |
./mvnw -ntp test | |
- name: Gradle - Unit tests - Gateway | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-ms/gateway" | |
rm -rf node_modules/generator-jhipster-svelte | |
./gradlew test --no-daemon | |
- name: Gradle - Unit tests - Microservice | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-ms/blog" | |
rm -rf node_modules/generator-jhipster-svelte | |
./gradlew test --no-daemon | |
- name: Frontend - Lint application | |
run: | | |
cd "$HOME/svelte-ms/gateway" | |
./npmw run lint | |
- name: Frontend - Unit tests | |
run: | | |
cd "$HOME/svelte-ms/gateway" | |
./npmw run test | |
- name: Maven - Package application - Gateway | |
if: contains(matrix.apps , 'maven') | |
run: | | |
cd "$HOME/svelte-ms/gateway" | |
./mvnw -ntp -Pprod verify | |
- name: Maven - Package application - Microservice | |
if: contains(matrix.apps , 'maven') | |
run: | | |
cd "$HOME/svelte-ms/blog" | |
./mvnw -ntp -Pprod verify | |
- name: Gradle - Package application - Gateway | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-ms/gateway" | |
./gradlew -Pprod bootJar --no-daemon | |
- name: Gradle - Package application - Microservice | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-ms/blog" | |
./gradlew -Pprod bootJar --no-daemon | |
- name: Maven - Build application docker image - Gateway | |
if: contains(matrix.apps, 'maven') | |
run: | | |
cd "$HOME/svelte-ms/gateway" | |
./mvnw -ntp -Pprod compile jib:dockerBuild | |
- name: Maven - Build application docker image - Microservice | |
if: contains(matrix.apps, 'maven') | |
run: | | |
cd "$HOME/svelte-ms/blog" | |
./mvnw -ntp -Pprod compile jib:dockerBuild | |
- name: Gradle - Build application docker image - Gateway | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-ms/gateway" | |
./gradlew -Pprod jibDockerBuild | |
- name: Gradle - Build application docker image - Microservice | |
if: contains(matrix.apps, 'gradle') | |
run: | | |
cd "$HOME/svelte-ms/blog" | |
./gradlew -Pprod jibDockerBuild | |
- name: Start Keycloak container | |
if: contains(matrix.apps, 'oidc') | |
run: | | |
sudo echo "127.0.0.1 keycloak" | sudo tee -a /etc/hosts | |
cd "$HOME/svelte-ms/docker-compose" | |
docker compose up -d keycloak | |
timeout 180 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:9080/realms/master)" != "200" ]]; do sleep 5; done' || false | |
- name: Run Cypress tests | |
run: | | |
sudo echo "127.0.0.1 keycloak" | sudo tee -a /etc/hosts | |
cd "$HOME/svelte-ms/docker-compose" | |
docker compose up -d | |
timeout 180 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:8080/api/authenticate)" != "200" ]]; do sleep 5; done' || false | |
cd "$HOME/svelte-ms/gateway" | |
# npm run e2e:ci | |
lighthouse-job: | |
needs: svelte-image | |
name: ${{ matrix.apps }} | |
concurrency: | |
group: lighthouse-${{ matrix.apps }}-${{ github.head_ref || github.sha }} | |
cancel-in-progress: true | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 20 | |
strategy: | |
fail-fast: false | |
matrix: | |
apps: ['svelte-app-session-lighthouse.jdl'] | |
os: [ubuntu-latest] | |
node_version: [20.x] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Download latest chrome binary | |
if: contains(matrix.os , 'ubuntu-latest') | |
run: | | |
sudo apt-get update | |
sudo apt-get install google-chrome-stable -y | |
sudo apt-get install xvfb | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node_version }} | |
- name: Maven - Configure cache | |
uses: actions/cache@v4 | |
if: contains(matrix.apps, 'maven') | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-8.7.0 | |
- name: Configure cypress cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/Cypress/13.5.x | |
~/.cache/Cypress/cy | |
key: ${{ runner.os }}-cypress-13.5.x | |
- name: Retrieve saved Svelte Docker Image | |
uses: actions/download-artifact@v4 | |
with: | |
name: docker-artifact | |
path: svelte-artifacts/images | |
- name: Docker load | |
run: | | |
cd svelte-artifacts/images | |
docker load < svelte-image.tar | |
- name: Prepare environment | |
run: | | |
mkdir -p "$HOME/svelte-app" | |
mkdir -p "$HOME/.m2" | |
mkdir -p "$HOME/.gradle" | |
mkdir -p "$HOME/.cache" | |
- name: Generate application | |
run: | | |
cd "$HOME/svelte-app" | |
cp $TEST_SCRIPTS_PATH/${{ matrix.apps }} app.jdl | |
docker run --rm -v $PWD:/app -v $HOME/.cache:/home/jsvelte/.cache jhipster/jhipster-svelte:$GITHUB_SHA import-jdl app.jdl --no-insight --force | |
rm -rf node_modules/generator-jhipster-svelte | |
- name: Build application docker image | |
run: | | |
cd "$HOME/svelte-app" | |
./mvnw -ntp -Pprod compile jib:dockerBuild | |
- name: Prepare Lighthouse run prerequisites | |
run: | | |
cd "$HOME/svelte-app" | |
npm install -g @lhci/cli | |
npm install --save puppeteer | |
docker compose -f src/main/docker/app.yml up -d | |
timeout 180 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:8080/api/authenticate)" != "200" ]]; do sleep 5; done' || false | |
- name: Run Lighthouse tests - Unauthenticated Pages | |
run: | | |
cd "$HOME/svelte-app" | |
cp $TEST_SCRIPTS_PATH/lighthouse/lighthouserc.json lighthouserc.json | |
lhci autorun | |
env: | |
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }} | |
- name: Run Lighthouse tests - Authenticated Pages | |
run: | | |
cd "$HOME/svelte-app" | |
cp $TEST_SCRIPTS_PATH/lighthouse/lighthouserc-auth.json lighthouserc.json | |
cp $TEST_SCRIPTS_PATH/lighthouse/puppeteer-auth.cjs puppeteer-auth.cjs | |
lhci autorun | |
env: | |
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }} |