name: Deploy and test on: push: branches: [ develop ] pull_request: branches: [ develop ] workflow_dispatch: repository_dispatch: types: [utPLSQL-build] jobs: build: env: UTPLSQL_VERSION: ${{matrix.utplsql-version}} ORACLE_DOCKER_IMAGE: gvenzl/oracle-free:23-slim-faststart SERVICE_NAME: FREEPDB1 runs-on: ubuntu-latest strategy: matrix: utplsql-version: [develop, v3.1.13] services: oracle: image: gvenzl/oracle-free:23-slim-faststart env: ORACLE_PASSWORD: oracle SERVICE_NAME: FREEPDB1 ports: - 1521:1521 options: >- --health-cmd healthcheck.sh --health-interval 10s --health-timeout 5s --health-retries 10 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install utPLSQL ${{matrix.utplsql-version}} run: echo Installing ${UTPLSQL_VERSION} && sh ${{ github.workspace }}/scripts/1_install_utplsql.sh - name: Install utPLSQL-cli run: curl -Lk -o utPLSQL-cli.zip "https://github.com/utPLSQL/utPLSQL-cli/releases/download/3.1.9/utPLSQL-cli.zip" && unzip utPLSQL-cli.zip && chmod -R u+x utPLSQL-cli - name: Install demo project run: sh ${{ github.workspace }}/scripts/2_install_demo_project.sh - name: Install unit tests run: sh ${{ github.workspace }}/scripts/3_install_tests.sh - name: Run unit tests run: sh ${{ github.workspace }}/scripts/4_run_tests.sh - name: SonarCloud Scan uses: SonarSource/sonarqube-scan-action@master env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} slack-workflow-status: if: always() name: Post Workflow Status To Slack needs: [ build ] runs-on: ubuntu-latest steps: - name: Slack Workflow Notification uses: Gamesight/slack-workflow-status@master with: # Required Input repo_token: ${{secrets.GITHUB_TOKEN}} slack_webhook_url: ${{secrets.SLACK_WEBHOOK_URL}} # Optional Input name: 'Github Actions[bot]' icon_url: 'https://octodex.github.com/images/mona-the-rivetertocat.png'