#294 - Added new model tests #352
Workflow file for this run
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: Run tests for posmulten | |
on: | |
push: | |
jobs: | |
compilation_and_unit_tests: | |
runs-on: ubuntu-latest | |
name: "Compilation and unit tests" | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v2 | |
# Install JDKs and maven toolchain | |
- uses: actions/setup-java@v3 | |
name: Set up JDK 11 | |
id: setupJava11 | |
with: | |
distribution: 'zulu' # See 'Supported distributions' for available options | |
java-version: '11' | |
- name: Set up JDK 1.8 | |
id: setupJava8 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 1.8 | |
- uses: cactuslab/maven-toolchains-xml-action@v1 | |
with: | |
toolchains: | | |
[ | |
{"jdkVersion": "8", "jdkHome": "${{steps.setupJava8.outputs.path}}"}, | |
{"jdkVersion": "11", "jdkHome": "${{steps.setupJava11.outputs.path}}"} | |
] | |
- name: Build with Maven | |
run: ./mvnw clean install -DskipTests --quiet && ./mvnw test | |
# Running tests for a different locale https://github.com/starnowski/posmulten/issues/270 | |
- name: Running tests with different locale | |
run: | | |
echo "Setting locale to de_DE.UTF-8" | |
sudo locale-gen de_DE.UTF-8 | |
sudo update-locale LANG=de_DE.UTF-8 | |
echo "Printing date for test" | |
date | |
./mvnw test | |
env: | |
LANG: "de_DE.UTF-8" | |
database_tests: | |
runs-on: ubuntu-latest | |
name: "Database creation tests for multiple postgres versions 9.6, 10, 11, 12, 13" | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v2 | |
- name: Install bats | |
run: .travis/bats/bats-core-installation.sh "$GITHUB_WORKSPACE/.travis/bats" | |
- name: Run bats tests | |
run: export PATH="$GITHUB_WORKSPACE/.travis/bats/bats-core/bin:$PATH" && bats/run_bats_test_for_all_db_version.sh | |
testing_configuration_jar: | |
runs-on: ubuntu-latest | |
name: "Testing configuration jar" | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v2 | |
- name: Install bats | |
run: .travis/bats/bats-core-installation.sh "$GITHUB_WORKSPACE/.travis/bats" | |
- name: Install other libs | |
run: sudo apt-get update && sudo apt-get -y install libxml2-utils | |
# Install JDKs and maven toolchain | |
- uses: actions/setup-java@v3 | |
name: Set up JDK 11 | |
id: setupJava11 | |
with: | |
distribution: 'zulu' # See 'Supported distributions' for available options | |
java-version: '11' | |
- name: Set up JDK 1.8 | |
id: setupJava8 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 1.8 | |
- uses: cactuslab/maven-toolchains-xml-action@v1 | |
with: | |
toolchains: | | |
[ | |
{"jdkVersion": "8", "jdkHome": "${{steps.setupJava8.outputs.path}}"}, | |
{"jdkVersion": "11", "jdkHome": "${{steps.setupJava11.outputs.path}}"} | |
] | |
- name: Run bats tests | |
run: ./mvnw -DskipTests --quiet clean install && export PATH="$GITHUB_WORKSPACE/.travis/bats/bats-core/bin:$PATH" && bats -tr bats/configuration-jar | |
integraion_tests: | |
needs: [compilation_and_unit_tests, database_tests, testing_configuration_jar] | |
runs-on: ubuntu-latest | |
name: "Integration and functional tests in postgresql-core module" | |
services: | |
postgres: | |
image: postgres:9.6 | |
env: | |
POSTGRES_DB: postgres | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_HOST: localhost | |
ports: | |
- 5432:5432 | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v2 | |
# Install JDKs and maven toolchain | |
- uses: actions/setup-java@v3 | |
name: Set up JDK 11 | |
id: setupJava11 | |
with: | |
distribution: 'zulu' # See 'Supported distributions' for available options | |
java-version: '11' | |
- name: Set up JDK 1.8 | |
id: setupJava8 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 1.8 | |
- uses: cactuslab/maven-toolchains-xml-action@v1 | |
with: | |
toolchains: | | |
[ | |
{"jdkVersion": "8", "jdkHome": "${{steps.setupJava8.outputs.path}}"}, | |
{"jdkVersion": "11", "jdkHome": "${{steps.setupJava11.outputs.path}}"} | |
] | |
- name: Install library for postgres | |
run: sudo apt-get -y install libpq-dev postgresql-client | |
- name: Create database | |
run: export PGPASSWORD=postgres && psql -f 'db_scripts/prepare_postgresql-core_db.sql' -U postgres -h 127.0.0.1 | |
- name: Run tests | |
run: ./mvnw -DskipTests --quiet clean install && ./mvnw -pl :postgresql-core -P !unit-tests,integration-tests test && ./mvnw -pl :postgresql-core-functional-tests,:configuration-yaml-interpreter-functional-tests -P !unit-tests,functional-tests test | |
configuration_e2e_tests: | |
needs: [compilation_and_unit_tests, database_tests, testing_configuration_jar] | |
runs-on: ubuntu-latest | |
name: "E2E smoke tests for configuration jar" | |
services: | |
postgres: | |
image: postgres:9.6 | |
env: | |
POSTGRES_DB: postgres | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_HOST: localhost | |
ports: | |
- 5432:5432 | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v2 | |
# Install JDKs and maven toolchain | |
- uses: actions/setup-java@v3 | |
name: Set up JDK 11 | |
id: setupJava11 | |
with: | |
distribution: 'zulu' # See 'Supported distributions' for available options | |
java-version: '11' | |
- name: Set up JDK 1.8 | |
id: setupJava8 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 1.8 | |
- uses: cactuslab/maven-toolchains-xml-action@v1 | |
with: | |
toolchains: | | |
[ | |
{"jdkVersion": "8", "jdkHome": "${{steps.setupJava8.outputs.path}}"}, | |
{"jdkVersion": "11", "jdkHome": "${{steps.setupJava11.outputs.path}}"} | |
] | |
- name: Install bats | |
run: .travis/bats/bats-core-installation.sh "$GITHUB_WORKSPACE/.travis/bats" | |
- name: Install library for postgres | |
run: sudo apt-get -y install libpq-dev postgresql-client | |
- name: Create database | |
run: export PGPASSWORD=postgres && psql -f 'db_scripts/prepare_postgresql-core_db.sql' -U postgres -h 127.0.0.1 | |
- name: Run tests | |
run: ./mvnw -DskipTests --quiet clean install && export PATH="$GITHUB_WORKSPACE/.travis/bats/bats-core/bin:$PATH" && bats -tr bats/configuration-integration | |
documentation_tests: | |
needs: [compilation_and_unit_tests, database_tests, testing_configuration_jar] | |
runs-on: ubuntu-latest | |
name: "Tests for configuration jar documentations" | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v2 | |
# Install JDKs and maven toolchain | |
- uses: actions/setup-java@v3 | |
name: Set up JDK 11 | |
id: setupJava11 | |
with: | |
distribution: 'zulu' # See 'Supported distributions' for available options | |
java-version: '11' | |
- name: Set up JDK 1.8 | |
id: setupJava8 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 1.8 | |
- uses: cactuslab/maven-toolchains-xml-action@v1 | |
with: | |
toolchains: | | |
[ | |
{"jdkVersion": "8", "jdkHome": "${{steps.setupJava8.outputs.path}}"}, | |
{"jdkVersion": "11", "jdkHome": "${{steps.setupJava11.outputs.path}}"} | |
] | |
- name: Install bats | |
run: .travis/bats/bats-core-installation.sh "$GITHUB_WORKSPACE/.travis/bats" | |
- name: Use Node.js 14.x | |
uses: actions/setup-node@v1 | |
with: | |
node-version: 14.x | |
- run: npm install | |
working-directory: ./configuration-parent/configuration-yaml-interpreter-readme-converter | |
env: | |
CI: true | |
- name: Run tests | |
run: ./mvnw -DskipTests --quiet clean install && export PATH="$GITHUB_WORKSPACE/.travis/bats/bats-core/bin:$PATH" && bats -tr bats/configuration-documentation | |
testing_swing_app: | |
needs: [compilation_and_unit_tests, database_tests, testing_configuration_jar] | |
runs-on: ubuntu-latest | |
name: "Testing Swing Application" | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v2 | |
# Install JDKs and maven toolchain | |
- uses: actions/setup-java@v3 | |
name: Set up JDK 11 | |
id: setupJava11 | |
with: | |
distribution: 'zulu' # See 'Supported distributions' for available options | |
java-version: '11' | |
- name: Set up JDK 1.8 | |
id: setupJava8 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 1.8 | |
- uses: cactuslab/maven-toolchains-xml-action@v1 | |
with: | |
toolchains: | | |
[ | |
{"jdkVersion": "8", "jdkHome": "${{steps.setupJava8.outputs.path}}"}, | |
{"jdkVersion": "11", "jdkHome": "${{steps.setupJava11.outputs.path}}"} | |
] | |
- name: Install tightvncserver | |
run: sudo apt-get update && sudo apt install tightvncserver | |
- name: Install openbox | |
run: sudo apt install openbox | |
- name: Copy xstartup | |
run: mkdir $HOME/.vnc && cp ./swing/xstartup $HOME/.vnc/xstartup && chmod +x $HOME/.vnc/xstartup | |
- name: Setting password for tightvncserver | |
run: ./swing/setpassword.sh | |
- name: Run Swing tests | |
id: swingTest1 | |
continue-on-error: true | |
run: ./mvnw -DskipTests --quiet clean install && ./swing/execute-on-vnc.sh ./mvnw -pl :openwebstart '-DxvfbRunningTests=true' -P !unit-tests,swing-tests test | |
#https://www.thisdot.co/blog/how-to-retry-failed-steps-in-github-action-workflows/ | |
# https://stackoverflow.com/questions/54443705/change-default-screen-resolution-on-headless-ubuntu | |
- name: Run Swing tests (Second time) | |
id: swingTest2 | |
if: steps.swingTest1.outcome == 'failure' | |
run: ./mvnw -DskipTests --quiet clean install && ./swing/execute-on-vnc.sh ./mvnw -pl :openwebstart '-DxvfbRunningTests=true' -P !unit-tests,swing-tests test | |
compatibility_tests: | |
needs: [configuration_e2e_tests, integraion_tests, documentation_tests, testing_swing_app] | |
runs-on: ubuntu-latest | |
name: "Running integration and functional tests that checks if code is compatible with postgres versions 10, 11, 12, 13" | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v2 | |
# Install JDKs and maven toolchain | |
- uses: actions/setup-java@v3 | |
name: Set up JDK 11 | |
id: setupJava11 | |
with: | |
distribution: 'zulu' # See 'Supported distributions' for available options | |
java-version: '11' | |
- name: Set up JDK 1.8 | |
id: setupJava8 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 1.8 | |
- uses: cactuslab/maven-toolchains-xml-action@v1 | |
with: | |
toolchains: | | |
[ | |
{"jdkVersion": "8", "jdkHome": "${{steps.setupJava8.outputs.path}}"}, | |
{"jdkVersion": "11", "jdkHome": "${{steps.setupJava11.outputs.path}}"} | |
] | |
- name: Build with Maven | |
run: bats/run_integration_test_for_all_db_version.sh | |
publish: | |
name: "Publish to the Maven Central Repository" | |
needs: [compatibility_tests] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
if: startsWith(github.ref, 'refs/tags/v') | |
# Install JDKs and maven toolchain | |
- uses: actions/setup-java@v3 | |
if: startsWith(github.ref, 'refs/tags/v') | |
name: Set up JDK 11 | |
id: setupJava11 | |
with: | |
distribution: 'zulu' # See 'Supported distributions' for available options | |
java-version: '11' | |
- name: Set up JDK 1.8 | |
if: startsWith(github.ref, 'refs/tags/v') | |
id: setupJava8 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 1.8 | |
- uses: cactuslab/maven-toolchains-xml-action@v1 | |
if: startsWith(github.ref, 'refs/tags/v') | |
with: | |
toolchains: | | |
[ | |
{"jdkVersion": "8", "jdkHome": "${{steps.setupJava8.outputs.path}}"}, | |
{"jdkVersion": "11", "jdkHome": "${{steps.setupJava11.outputs.path}}"} | |
] | |
- name: Publish to the Maven Central Repository | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: deploy/release.sh | |
env: | |
MAVEN_USERNAME: '${{ secrets.POSMULTEN_MAVEN_USERNAME }}' | |
MAVEN_PASSWORD: '${{ secrets.POSMULTEN_MAVEN_PASSWORD }}' | |
ENCRYPTION_PASSWORD: '${{ secrets.POSMULTEN_ENCRYPTION_PASSWORD }}' | |
GPG_KEYNAME: '${{ secrets.POSMULTEN_GPG_KEYNAME }}' | |
GPG_PASSPHRASE: '${{ secrets.POSMULTEN_GPG_PASSPHRASE }}' |