build(deps-dev): bump npm-run-all2 from 7.0.1 to 7.0.2 #1467
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
# 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 }} |