From c137e75d7e9a0111eb4165424692f4d79834d59a Mon Sep 17 00:00:00 2001 From: Geert Bevin Date: Tue, 9 May 2023 21:30:21 -0400 Subject: [PATCH] Added GitHub workflows --- .github/workflows/bld.yml | 107 ++++++++++++++++++++++++++++++++++++ .github/workflows/pages.yml | 57 +++++++++++++++++++ 2 files changed, 164 insertions(+) create mode 100644 .github/workflows/bld.yml create mode 100644 .github/workflows/pages.yml diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml new file mode 100644 index 0000000..48df3ac --- /dev/null +++ b/.github/workflows/bld.yml @@ -0,0 +1,107 @@ +name: bld-ci + +on: [push, pull_request, workflow_dispatch] + +jobs: + build-bld-project: + runs-on: ubuntu-latest + + services: + oracle: + image: gvenzl/oracle-xe:18-slim + env: + ORACLE_RANDOM_PASSWORD: true + APP_USER: unittests + APP_USER_PASSWORD: password + ports: + - 1521:1521 + options: >- + --health-cmd healthcheck.sh + --health-interval 10s + --health-timeout 5s + --health-retries 10 + + oracle-free: + image: gvenzl/oracle-free:latest + env: + ORACLE_RANDOM_PASSWORD: true + APP_USER: unittests + APP_USER_PASSWORD: password + ports: + - 1522:1521 + options: >- + --health-cmd healthcheck.sh + --health-interval 10s + --health-timeout 5s + --health-retries 10 + + mysql: + image: mysql:8 + env: + MYSQL_DATABASE: unittests + MYSQL_USER: unittests + MYSQL_PASSWORD: password + MYSQL_ROOT_PASSWORD: root + ports: + - 3306:3306 + options: >- + --health-cmd="mysqladmin ping" + --health-interval=10s + --health-timeout=5s + --health-retries=3 + + mariadb: + image: mariadb:10.9 + env: + MARIADB_DATABASE: unittests + MARIADB_USER: unittests + MARIADB_PASSWORD: password + MARIADB_ROOT_PASSWORD: root + ports: + - 3307:3306 + options: >- + --health-cmd="mysqladmin ping" + --health-interval=10s + --health-timeout=5s + --health-retries=3 + + postgres: + image: postgres:15 + env: + POSTGRES_DB: unittests + POSTGRES_PASSWORD: password + POSTGRES_PORT: 5432 + POSTGRES_USER: unittests + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + + env: + MYSQL_DATABASE: unittests + MYSQL_USER: root + MYSQL_PASSWORD: root + + strategy: + matrix: + java-version: [ 17, 19 ] + + steps: + - name: Checkout source repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up JDK ${{ matrix.java-version }} + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: ${{ matrix.java-version }} + + - name: Run tests + run: >- + ./bld download compile test + -Dtest.postgres=true -Dtest.mysql=true -Dtest.mariadb=true -Dtest.oracle=true -Dtest.oracle-free=true diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..52d3467 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,57 @@ +name: javadocs-pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + runs-on: ubuntu-latest + + steps: + - name: Checkout source repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: 17 + + - name: Build Javadocs + run: ./bld download clean compile javadoc + + - name: Setup Pages + uses: actions/configure-pages@v3 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + # Upload generated Javadocs repository + path: 'build/javadoc/' + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 \ No newline at end of file