Skip to content

build(deps): bump org.apache.maven.plugins:maven-surefire-plugin #1205

build(deps): bump org.apache.maven.plugins:maven-surefire-plugin

build(deps): bump org.apache.maven.plugins:maven-surefire-plugin #1205

Workflow file for this run

# For more information see: https://docs.github.com/en/actions/
name: Project CI
on:
push:
branches: ['main']
paths: ['**.java', '**.ts', '**.vue', '.github/workflows/**', 'pom.xml', 'package.json', 'yarn.lock']
pull_request:
branches: ['main']
paths: ['**.java', '**.ts', '**.vue', '.github/workflows/**', 'pom.xml', 'package.json', 'yarn.lock']
workflow_dispatch:
jobs:
changes:
runs-on: ubuntu-latest
name: Check diffs
outputs:
java: ${{ steps.check-java.outputs.changed }}
node: ${{ steps.check-node.outputs.changed }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Java
id: check-java
run: |
if git diff --name-only HEAD^ HEAD | grep -qE '\.java$|pom\.xml'; then
echo "changed=true" >> $GITHUB_OUTPUT
else
echo "changed=false" >> $GITHUB_OUTPUT
fi
- name: node
id: check-node
run: |
if git diff --name-only HEAD^ HEAD | grep -qE '\.ts$|\.vue$|package\.json|yarn\.lock'; then
echo "changed=true" >> $GITHUB_OUTPUT
else
echo "changed=false" >> $GITHUB_OUTPUT
fi
- name: Debug outputs
run: |
git diff --name-only HEAD^ HEAD
echo "Java changes: ${{ steps.check-java.outputs.changed }}"
echo "Node changes: ${{ steps.check-node.outputs.changed }}"
notice:
runs-on: ubuntu-latest
env:
JAVA_VERSION: '11'
name: Check notice
needs: changes
if: ${{ github.event_name != 'pull_request' || needs.changes.outputs.java == 'true' }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK ${{ env.JAVA_VERSION }}
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: 'temurin'
cache: maven
- name: Check NOTICE
run: ./mvnw notice:check
license-headers:
runs-on: ubuntu-latest
name: Check and generate license headers
needs: changes
continue-on-error: true
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check license headers
id: check
run: ./scripts/license.sh 1
- name: Generate license headers
if: ${{ github.event_name != 'pull_request' && (needs.changes.outputs.java == 'true' || needs.changes.outputs.node == 'true') && steps.check.conclusion == 'failure' }}
id: generate
run: ./scripts/license.sh 2
- name: Commit changes
if: ${{ github.event_name != 'pull_request' && steps.generate.conclusion == 'success' }}
run: |
git config --global user.name 'github-actions'
git config --global user.email '41898282+github-actions[bot]@users.noreply.github.com'
./scripts/license.sh 3
frontend:
runs-on: ubuntu-latest
strategy:
matrix:
node: ['22', 'latest']
name: Node ${{ matrix.node }}
needs: changes
if: ${{ github.event_name != 'pull_request' || needs.changes.outputs.node == 'true' }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'yarn'
- name: Install dependencies
run: yarn install --immutable
- name: Build frontend
run: yarn build
- name: Tests frontend (unit tests)
run: yarn test:unit
# - name: Tests frontend (e2e tests)
# run: yarn test:e2e
backend:
runs-on: ubuntu-latest
strategy:
matrix:
java: ['11', '17']
mariadb: ['10.3', 'latest']
env:
LANG: 'fr_FR.UTF-8'
LC_ALL: 'fr_FR.UTF-8'
LANGUAGE: 'fr_FR.UTF-8'
LC_CTYPE: 'fr_FR.UTF-8'
TZ: 'Europe/Paris'
MARIADB_IMG: 'wodby/mariadb'
JACOCO_JAVA: '11'
JACOCO_MARIADB: '10.3'
name: Java ${{ matrix.java }} & mariadb ${{ matrix.mariadb }}
needs: changes
if: ${{ github.event_name != 'pull_request' || needs.changes.outputs.java == 'true' }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Checkout badges branch to a badges directory nested inside first checkout
uses: actions/checkout@v4
with:
ref: badges
path: badges
- name: Set timezone
uses: szenius/[email protected]
with:
timezoneLinux: 'Europe/Paris'
- name: Set up locale ENV
run: |
sudo locale-gen $LANG
sudo update-locale LANG=$LANG
sudo apt install net-tools
- name: Check locales
run: locale -a
# - name: Pull ${{ env.MARIADB_IMG }}:${{ matrix.mariadb }} image
# run: docker pull ${{ env.MARIADB_IMG }}:${{ matrix.mariadb }}
# - name: Run MariaDB container
# run: |
# docker run --rm -t -d --name mariadb -v \
# --health-cmd="mysqladmin -uroot -proot ping" --health-interval=10s --health-timeout=10s --health-retries=10 \
# -p 3306:3306/tcp \
# -e "TZ=Europe/Paris" \
# -e "MYSQL_USER=root" \
# -e "MYSQL_ROOT_PASSWORD=root" \
# -e "MYSQL_DATABASE=glc" \
# -e "MYSQL_DEFAULT_STORAGE_ENGINE=InnoDB" \
# -e "MYSQL_CHARACTER_SET_SERVER=utf8mb4" \
# -e "MYSQL_COLLATION_SERVER=utf8mb4_unicode_520_ci" \
# -e "MYSQL_INNODB_BUFFER_POOL_SIZE=2G" \
# -e "MYSQL_INNODB_DEFAULT_ROW_FORMAT=dynamic" \
# -e "MYSQL_INNODB_DATA_FILE_PATH=ibdata1:100M:autoextend:max:10G" \
# -e "MYSQL_INNODB_FLUSH_LOG_AT_TRX_COMMIT=1" \
# -e "MYSQL_INNODB_LOG_BUFFER_SIZE=64M" \
# -e "MYSQL_INNODB_LOG_FILE_SIZE=256M" \
# -e "MYSQL_INNODB_STRICT_MODE=ON" \
# -e "MYSQL_LOWER_CASE_TABLE_NAMES=1" \
# -e "MYSQL_MAX_CONNECT_ERRORS=100" \
# -e "MYSQL_MAX_CONNECTIONS=1000" \
# -e "MYSQL_QUERY_CACHE_LIMIT=10M" \
# -e "MYSQL_QUERY_CACHE_SIZE=0" \
# -e "MYSQL_QUERY_CACHE_TYPE=OFF" \
# ${{ env.MARIADB_IMG }}:${{ matrix.mariadb }} &
# sleep 30
# - name: Test MariaDB
# run: docker exec mariadb /bin/bash -c "mysql -h127.0.0.1 -uroot -proot -e \"show variables like '%time_zone'; select now();\""
# - name: Check date
# run: |
# date
# mysql -h127.0.0.1 -uroot -proot -e "show variables like '%time_zone'; select now();"
# - name: DB connection test and conf checks
# run: |
# netstat -pnltu
# mysql -h127.0.0.1 -uroot -proot -e "show databases;"
# mysql -h127.0.0.1 -uroot -proot -e "show variables like 'char%'; show variables like 'collation%';show variables like 'innodb_default_row_format';"
# mysql -h127.0.0.1 -uroot -proot -e "use glc;show tables;"
# - name: Populate database
# run: mysql -h127.0.0.1 -uroot -proot < ./src/test/resources/glc.sql
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: maven
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Build backend
run: ./mvnw -B clean package -Pprod -Dmaven.test.skip=true -Darguments="-DskipTests"
# - name: Tests backend
# run: ./mvnw test -Ptest
# - name: Generate JaCoCo badge
# id: jacoco
# uses: cicirello/jacoco-badge-generator@v2
# with:
# badges-directory: badges
# generate-branches-badge: true
# generate-summary: true
# - name: Log coverage percentages to workflow output
# run: |
# echo "coverage = ${{ steps.jacoco.outputs.coverage }}"
# echo "branches = ${{ steps.jacoco.outputs.branches }}"
# - name: Upload JaCoCo coverage report as a workflow artifact
# if: ${{ matrix.mariadb == env.JACOCO_MARIADB }}
# uses: actions/upload-artifact@v4
# with:
# name: jacoco-report-java-${{ matrix.java }}
# path: target/site/jacoco/
# - name: Commit and push the coverage badges and summary file
# if: ${{ github.event_name != 'pull_request' && matrix.java == env.JACOCO_JAVA && matrix.mariadb == env.JACOCO_MARIADB }}
# run: |
# cd badges
# if [[ `git status --porcelain *.svg *.json` ]]; then
# git config --global user.name 'github-actions'
# git config --global user.email '41898282+github-actions[bot]@users.noreply.github.com'
# git add *.svg *.json
# git commit -m "Autogenerated JaCoCo coverage badges" *.svg *.json
# git push
# fi
# - name: Comment on PR with coverage percentages
# if: ${{ github.event_name == 'pull_request' && matrix.java == env.JACOCO_JAVA && matrix.mariadb == env.JACOCO_MARIADB }}
# run: |
# REPORT=$(<badges/coverage-summary.json)
# COVERAGE=$(jq -r '.coverage' <<< "$REPORT")%
# BRANCHES=$(jq -r '.branches' <<< "$REPORT")%
# NEWLINE=$'\n'
# BODY="## JaCoCo Test Coverage Summary Statistics${NEWLINE}* __Coverage:__ ${COVERAGE}${NEWLINE}* __Branches:__ ${BRANCHES}"
# gh pr comment ${{github.event.pull_request.number}} -b "${BODY}"
# continue-on-error: true
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}