Skip to content

[maven-release-plugin] prepare for next development iteration #90

[maven-release-plugin] prepare for next development iteration

[maven-release-plugin] prepare for next development iteration #90

Workflow file for this run

# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Java CI with Maven
on:
push:
branches: [ 'main' ]
pull_request:
branches: [ '**' ]
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"
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
java: ['11', '17']
node: ['16.17.0','16', '18']
mariadb: ['10.6','latest']
env:
MARIADB_IMG: "wodby/mariadb"
name: Run MariaDB ${{ matrix.mariadb }} + java ${{ matrix.java }} + node ${{ matrix.node }}
steps:
- uses: szenius/[email protected]
with:
timezoneLinux: "Europe/Paris"
- uses: actions/checkout@v3
- name: Set up locale ENV
run: |
sudo locale-gen $LANG
sudo update-locale LANG=$LANG
sudo apt install net-tools
- name: Set up variable ENV
if: startsWith(matrix.java, '8')
run: |
echo "MVN_PARAMS=-Dmaven.compiler.target=1.8" >> $GITHUB_ENV
- name: Check locales
run: locale -a
- name: Pull $MARIADB_IMG:${{ matrix.mariadb }} docker image
run: docker pull ${MARIADB_IMG}:${{ matrix.mariadb }}
- name: Run MariaDB container
run: |
docker run -t -d --name mariadb --rm -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=publisher_test" \
-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" \
${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: Clone Openldap container
uses: actions/checkout@v3
with:
repository: 'GIP-RECIA/docker-openldap-test'
path: '.docker-openldap-test'
- name: Start Openldap Container
run: docker-compose -f "${{ github.workspace }}/.docker-openldap-test/docker-compose.yml" up -d --build
- name: Set up JDK ${{ matrix.java }} version
uses: actions/setup-java@v3
with:
java-version: "${{ matrix.java }}"
distribution: 'temurin'
cache: 'maven'
- name: Set up Node ${{ matrix.node }} version
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: 'npm'
- 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 publisher_test;SHOW TABLES;"
- name: Project requirements
run: |
./mvnw --version
./mvnw clean generate-sources -Pci -B ${MVN_PARAMS}
./mvnw compile liquibase:update -Pci -B ${MVN_PARAMS}
mkdir -p ${{ github.workspace }}/tmp
# install npm
npm ci
npm run test:unit
- name: DB final conf
run: |
# apply Database fix in waiting a management of "perm" not null and "perm" is null in abstract way
mysql -h127.0.0.1 -u root -proot -e "ALTER TABLE publisher_test.t_permission CHANGE perm perm VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NULL;"
- name: Maven running API test agains DB/OS timezone
run: ./mvnw test -Pci -Dtest=org.esupportail.publisher.repository.ItemRepositoryTest#testRequestScheduledPublishedOptionalDate -Dspring.profiles.active=test -Dapp.upload.path=${{ github.workspace }}/tmp -Dapp.upload.protectedPath=${{ github.workspace }}/tmp -Dspring.jpa.show-sql=false -Dlogging.config=classpath:logback-ci.xml -B ${MVN_PARAMS}
- name: Maven notice:check
run: ./mvnw notice:check -B ${MVN_PARAMS}
- name: Maven license:check
run: ./mvnw license:check -B ${MVN_PARAMS}
- name: Maven running API test
run: ./mvnw test -Pci -Dspring.profiles.active=test -Dapp.upload.path=${{ github.workspace }}/tmp -Dapp.upload.protectedPath=${{ github.workspace }}/tmp -Dspring.jpa.show-sql=false -Dlogging.config=classpath:logback-ci.xml -B ${MVN_PARAMS}
- name: Build with Maven
run: ./mvnw clean package -Pprod -Dmaven.test.skip=true -Darguments="-DskipTests -Dmaven.deploy.skip=true" -B ${MVN_PARAMS}
- name: Stop containers
run: docker-compose -f "${{ github.workspace }}/.docker-openldap-test/docker-compose.yml" down