Skip to content

235 example for automating an asynchronous rest service #259

235 example for automating an asynchronous rest service

235 example for automating an asynchronous rest service #259

name: pull request snapshot build
on:
pull_request:
branches: [ main ]
# TODO ignore changes to *.md files only in root project directories
paths-ignore:
- '**.md'
- '.idea/**'
- '.*'
- '/*/.*'
jobs:
matrix-build:
uses: ./.github/workflows/matrix-build.yml
secrets: inherit
deploy-for-jdk11:
name: jdk-11 snapshot deploy
# ISSUE ChromeDriver/GeckoDriver fail to initialize on Ubuntu
# see https://github.com/QA-Automation-Starter/qa-automation/actions/runs/3294884059/jobs/5432863668
# see https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
# and https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md
# ISSUE Google Search behaves differently on MacOS causing tests to fail
# following this issues, the least worst remedy is to run against a
# remote Selenium node, like SauceLabs, hence bypassing the need for
# a ChromeDriver/GeckoDriver, and allowing this job to run un Ubuntu.
runs-on: ubuntu-latest
environment: development
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: maven
settings-path: ${{ github.workspace }}
server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml
server-username: OSSRH_USERNAME
server-password: OSSRH_PASSWORD
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: GPG_PASSPHRASE
- name: setup SSH
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
# ISSUE causes Error: Container action is only supported on Linux
# - name: Start RabbitMQ
# uses: namoshek/rabbitmq-github-action@v1
# with:
# version: '3.8.9'
# ports: '1883:5672 8883:15672'
# container-name: 'mqtt'
# NOTE: must run install at least in order to have artifacts in .m2
# .m2 artifacts are cached and reused in following generate-automation-project
# ISSUE: building in multi-threaded mode blocks during deploy phase
- name: deploy snapshots
shell: bash
run: |
git config --global core.longpaths true
git config --global user.name "Adrian Herscu"
git config --global user.email "[email protected]"
chmod +x mvnw && ./mvnw deploy \
--threads 1 \
-s $GITHUB_WORKSPACE/settings.xml \
-Pmode-build-full,provider-saucelabs-selenium,testing-tutorials
env:
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SAUCELABS_USER: ${{ secrets.SAUCELABS_USER }}
SAUCELABS_PASSWORD: ${{ secrets.SAUCELABS_PASSWORD }}
- name: save project version
id: version
shell: bash
run: |
echo "version=$(cat target/version.txt)" >> $GITHUB_OUTPUT
generate-automation-project:
uses: ./.github/workflows/generate-automation-project.yml
secrets: inherit
with:
archetype-version: ${{ needs.deploy-for-jdk11.outputs.version }}
needs: deploy-for-jdk11