From 7d846a111037abc60679e91fa710ed8df357d3d8 Mon Sep 17 00:00:00 2001 From: Jacek Gebal Date: Fri, 14 Jan 2022 00:43:50 +0200 Subject: [PATCH 1/2] Adding Github Action for building the project. --- .github/workflows/build.yml | 109 ++++++++++++++++++++++++++++++++ .travis/create_api_user.sh | 0 .travis/install_demo_project.sh | 10 +-- .travis/install_utplsql.sh | 21 +++--- .travis/start_db.sh | 0 5 files changed, 124 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/build.yml mode change 100644 => 100755 .travis/create_api_user.sh mode change 100644 => 100755 .travis/install_demo_project.sh mode change 100644 => 100755 .travis/install_utplsql.sh mode change 100644 => 100755 .travis/start_db.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..2c36c20 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,109 @@ +name: Build, test, deploy documentation +on: + push: + branches: [ develop, feature/github_actions ] + pull_request: + branches: [ develop ] + workflow_dispatch: + repository_dispatch: + types: [utPLSQL-build] + +defaults: + run: + shell: bash + +jobs: + build: + 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","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: Display env + run: | + echo JAVA_HOME = ${JAVA_HOME} + echo UTPLSQL_FILE = ${UTPLSQL_FILE} + echo ORACLE_VERSION = ${ORACLE_VERSION} + echo PATH = ${PATH} + ls ${JAVA_HOME} + java -version + echo $JAVA_OPTS + echo $GRADLE_OPTS + echo GRADLE_HOME = ${GRADLE_HOME} + + - 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 + + 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: + 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' diff --git a/.travis/create_api_user.sh b/.travis/create_api_user.sh old mode 100644 new mode 100755 diff --git a/.travis/install_demo_project.sh b/.travis/install_demo_project.sh old mode 100644 new mode 100755 index adb9566..20bf1a4 --- a/.travis/install_demo_project.sh +++ b/.travis/install_demo_project.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -ev +set -evx cd $(dirname $(readlink -f $0)) PROJECT_FILE="utPLSQL-demo-project" @@ -13,7 +13,7 @@ grant select any dictionary to ${DB_USER}; exit SQL -cd ${PROJECT_FILE} +cd /${PROJECT_FILE} sqlplus -S -L ${DB_USER}/${DB_PASS}@//127.0.0.1:1521/xe < install.sh.tmp < Date: Fri, 14 Jan 2022 23:47:37 +0200 Subject: [PATCH 2/2] Adding job to publish to `https://packagecloud.io/utPLSQL/utPLSQL-java-api` --- .github/workflows/build.yml | 42 ++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2c36c20..3dd9f5e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,7 +1,9 @@ name: Build, test, deploy documentation on: push: - branches: [ develop, feature/github_actions ] + branches: [ develop ] + tags: + - v* pull_request: branches: [ develop ] workflow_dispatch: @@ -14,6 +16,7 @@ defaults: 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" @@ -73,18 +76,6 @@ jobs: java-version: ${{matrix.jdk}} cache: 'gradle' - - name: Display env - run: | - echo JAVA_HOME = ${JAVA_HOME} - echo UTPLSQL_FILE = ${UTPLSQL_FILE} - echo ORACLE_VERSION = ${ORACLE_VERSION} - echo PATH = ${PATH} - ls ${JAVA_HOME} - java -version - echo $JAVA_OPTS - echo $GRADLE_OPTS - echo GRADLE_HOME = ${GRADLE_HOME} - - name: Install utplsql run: .travis/install_utplsql.sh @@ -94,10 +85,33 @@ jobs: - 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: Upload archives + env: + PACKAGECLOUD_TOKEN: ${{secrets.PACKAGECLOUD_TOKEN}} + run: ./gradlew uploadArchives + slack-workflow-status: if: always() name: Post Workflow Status To Slack - needs: [ build ] + needs: [ build, deploy ] runs-on: ubuntu-latest steps: - name: Slack Workflow Notification