name: Build and deploy snapshot on: push: branches: [ develop ] pull_request: branches: [ develop ] workflow_dispatch: jobs: build: runs-on: ubuntu-latest env: UTPLSQL_VERSION: develop UTPLSQL_FILE: utPLSQL DB_URL: "//localhost:1521/FREEPDB1" DB_USER: APP DB_PASS: pass services: oracle: image: gvenzl/oracle-free:23-slim-faststart env: ORACLE_PASSWORD: oracle ports: - 1521:1521 options: >- --health-cmd healthcheck.sh --health-interval 10s --health-timeout 5s --health-retries 10 --name oracle steps: - uses: actions/checkout@v4 - name: Install utPLSQL run: .github/scripts/1_install_utplsql.sh - name: Install demo project run: .github/scripts/2_install_demo_project.sh - name: Set up JDK 17 uses: actions/setup-java@v5 with: java-version: '17' distribution: 'temurin' server-id: central server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} gpg-passphrase: MAVEN_GPG_PASSPHRASE - name: Cache local Maven repository uses: actions/cache@v4 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} restore-keys: | ${{ runner.os }}-maven- - name: Maven unit and integration tests with sonar run: mvn clean verify sonar:sonar -Pcoverage -Dsonar.projectKey=utPLSQL_utPLSQL-maven-plugin env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - name: Maven deploy snapshot if: github.event_name != 'pull_request' run: mvn deploy -DskipTests env: MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - name: Publish unit test results uses: EnricoMi/publish-unit-test-result-action@v2 if: always() with: files: target/**/TEST**.xml