[maven-release-plugin] prepare release 3.2.1 #89
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
# 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 |