Merge pull request #524 from swisspost/develop #130
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: | |
workflow_dispatch: | |
push: | |
pull_request: | |
branches: [ "master", "develop" ] | |
jobs: | |
build_maven: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: '11' | |
server-id: sonatype-nexus-staging # Value of the distributionManagement/repository/id field of the pom.xml | |
server-username: CI_DEPLOY_USERNAME # env variable for username in deploy | |
server-password: CI_DEPLOY_PASSWORD # env variable for token in deploy | |
gpg-private-key: ${{ secrets.CI_GPG_PRIVATE_KEY }} # Value of the GPG private key to import | |
gpg-passphrase: CI_GPG_PASSPHRASE # env variable for GPG private key passphrase | |
- name: Start Redis | |
uses: supercharge/[email protected] | |
with: | |
redis-version: 4 | |
- name: Install chromedriver | |
uses: nanasess/[email protected] | |
with: | |
# Optional: do not specify to match Chrome's version | |
chromedriver-version: '114.0.5735.90' | |
- name: Install, unit test | |
run: mvn install -Dmaven.javadoc.skip=true -PpublicRepos -B -V | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v3 | |
- name: Non UI integration tests | |
run: mvn install -PnonUiIntegrationTests | |
- name: UI integration tests | |
run: | | |
export DISPLAY=:99 | |
chromedriver --url-base=/wd/hub & | |
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional | |
java -jar gateleen-playground/target/playground.jar &> playground_logs.log & | |
sleep 5s | |
mvn deploy -PuploadStaticFiles | |
mvn install -PuiIntegrationTests | |
- name: Release to maven central | |
if: github.ref_name == 'master' && github.event_name != 'pull_request' && github.repository == 'swisspost/gateleen' | |
run: | | |
curl -s https://get.sdkman.io | bash | |
source "$HOME/.sdkman/bin/sdkman-init.sh" | |
sdk install groovy 3.0.8 | |
chmod +x ./maybe-release.sh | |
./maybe-release.sh | |
env: | |
CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }} | |
CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }} | |
CI_GPG_PASSPHRASE: ${{ secrets.CI_GPG_PASSPHRASE }} | |
- name: After release | |
run: bash <(curl -s https://codecov.io/bash) |