name: Build and Deploy Snapshot
on:
  push:
    branches:
    - master
    paths-ignore:
    - "README.md"
    - "release-notes/*"
  pull_request:
    branches:
    - master
jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        java_version: ['8', '11', '17']
        os: ['ubuntu-20.04']
    env:
      JAVA_OPTS: "-XX:+TieredCompilation -XX:TieredStopAtLevel=1"
    steps:
    - uses: actions/checkout@v3
    - name: Set up JDK
      uses: actions/setup-java@v3
      with:
        distribution: 'temurin'
        java-version: ${{ matrix.java_version }}
        server-id: sonatype-nexus-snapshots
        server-username: CI_DEPLOY_USERNAME
        server-password: CI_DEPLOY_PASSWORD
        cache: 'maven'
        # See https://github.com/actions/setup-java/blob/v2/docs/advanced-usage.md#Publishing-using-Apache-Maven
        # gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
        # gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase
    - name: Build
      run: ./mvnw -V -B -ff -ntp verify
    - name: Deploy snapshot
      if: github.event_name != 'pull_request' && matrix.java_version == '8'
      env:
        CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }}
        CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }}
        # MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
      run: ./mvnw -B -ff -DskipTests -ntp source:jar deploy
    - name: Generate code coverage
      if: github.event_name != 'pull_request' && matrix.java_version == '8'
      run: ./mvnw -B -ff -ntp test
    - name: Publish code coverage
      if: github.event_name != 'pull_request' && matrix.java_version == '8'
      uses: codecov/codecov-action@v1
      with:
        token: ${{ secrets.CODECOV_TOKEN }}
        file: ./target/site/jacoco/jacoco.xml
        flags: unittests

Add Github workflow for building
Add Github workflow for building
