Skip to content

utPLSQL-build

utPLSQL-build #136

Workflow file for this run

name: Build & test
on:
push:
branches: [ develop ]
tags:
- v*
pull_request:
branches: [ develop ]
workflow_dispatch:
repository_dispatch:
types: [utPLSQL-build]
defaults:
run:
shell: bash
jobs:
build:
name: Test on JDK ${{ matrix.jdk }} with utPLSQL ${{ matrix.utplsql_version }}
runs-on: ubuntu-latest
env:
ORACLE_VERSION: "gvenzl/oracle-xe:18.4.0-slim"
UTPLSQL_VERSION: ${{matrix.utplsql_version}}
UTPLSQL_FILE: ${{matrix.utplsql_file}}
ORACLE_PASSWORD: oracle
DB_URL: "127.0.0.1:1521:XE"
DB_USER: app
DB_PASS: app
strategy:
fail-fast: false
matrix:
utplsql_version: ["v3.0.1","v3.0.2","v3.0.3","v3.0.4","v3.1.1","v3.1.2","v3.1.3","v3.1.6","v3.1.7","v3.1.8","v3.1.9","v3.1.10","v3.1.11","develop"]
utplsql_file: ["utPLSQL"]
jdk: ['8']
include:
- utplsql_version: "v3.0.0"
jdk: '8'
utplsql_file: "utPLSQLv3.0.0"
- utplsql_version: "develop"
jdk: '9'
utplsql_file: "utPLSQL"
- utplsql_version: "develop"
jdk: '10'
utplsql_file: "utPLSQL"
- utplsql_version: "develop"
jdk: '11'
utplsql_file: "utPLSQL"
- utplsql_version: "develop"
jdk: '12'
utplsql_file: "utPLSQL"
- utplsql_version: "develop"
jdk: '13'
utplsql_file: "utPLSQL"
services:
oracle:
image: gvenzl/oracle-xe:18.4.0-slim
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@v2
with:
fetch-depth: 0
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: ${{matrix.jdk}}
cache: 'gradle'
- name: Install utplsql
run: .travis/install_utplsql.sh
- name: Install demo project
run: .travis/install_demo_project.sh
- name: Build and test
run: ./gradlew check
deploy:
name: Deploy snapshot
needs: [ build ]
concurrency: deploy
runs-on: ubuntu-latest
if: |
github.repository == 'utPLSQL/utPLSQL-java-api' &&
github.base_ref == null &&
(github.ref == 'refs/heads/develop' || startsWith( github.ref, 'refs/tags/v' ) )
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '8'
cache: 'gradle'
- name: Set env variable
uses: FranzDiebold/github-env-vars-action@v2 #https://github.com/marketplace/actions/github-environment-variables-action
- name: Set CI_TAG
run: if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then echo "CI_TAG=${CI_REF_NAME}" >> ${GITHUB_ENV}; fi
- name: Upload archives
env:
PACKAGECLOUD_TOKEN: ${{secrets.PACKAGECLOUD_TOKEN}}
run: ./gradlew uploadArchives
dispatch:
name: Dispatch downstream builds
concurrency: trigger
needs: [ build, deploy ]
runs-on: ubuntu-latest
if: |
github.repository == 'utPLSQL/utPLSQL-java-api' && github.base_ref == null && github.ref == 'refs/heads/develop'
strategy:
matrix:
repo: ['utPLSQL/utPLSQL-maven-plugin', 'utPLSQL/utPLSQL-cli']
steps:
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.API_TOKEN_GITHUB }}
repository: ${{ matrix.repo }}
event-type: utPLSQL-java-api-build
slack-workflow-status:
if: always()
name: Post Workflow Status To Slack
needs: [ build, deploy, dispatch ]
runs-on: ubuntu-latest
steps:
- name: Slack Workflow Notification
uses: Gamesight/slack-workflow-status@master
with:
repo_token: ${{secrets.GITHUB_TOKEN}}
slack_webhook_url: ${{secrets.SLACK_WEBHOOK_URL}}
name: 'Github Actions[bot]'
icon_url: 'https://octodex.github.com/images/mona-the-rivetertocat.png'