Skip to content

refactor: Separated JDK management code into its own module #4205

refactor: Separated JDK management code into its own module

refactor: Separated JDK management code into its own module #4205

Workflow file for this run

name: ci-build
on:
push:
branches:
- main
tags-ignore:
- '*.*'
pull_request:
branches:
- main
workflow_dispatch:
inputs:
debug_enabled:
description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
required: false
default: false
jobs:
updatewebsite:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
with:
fetch-depth: 2
- name: Verify Changed files in docs
uses: tj-actions/verify-changed-files@fda469d6b456070da68fa3fdbc07a513d858b200 # v8.8
id: verify-changed-files
with:
files: |
docs
- name: update website
if: ${{ github.ref == 'refs/heads/main' && steps.verify-changed-files.outputs.files_changed == 'true'}}
uses: benc-uk/workflow-dispatch@e2e5e9a103e331dad343f381a29e654aea3cf8fc # v1
with:
workflow: github-pages
repo: jbangdev/jbang.dev
token: ${{ secrets.BREW_GITHUB_TOKEN }}
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: build-and-testing
steps:
- name: Rate limit info
run: 'curl -H "Accept: application/vnd.github+json" https://api.github.com/rate_limit'
- name: Setup tmate session
uses: mxschmitt/action-tmate@a283f9441d2d96eb62436dc46d7014f5d357ac22 # v3
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled }}
with:
limit-access-to-actor: true
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: gradle/wrapper-validation-action@56b90f209b02bf6d1deae490e9ef18b21a389cd4 # v1
- name: install-java8
uses: actions/setup-java@0ab4596768b603586c0de567f2430c30f5b0d2b0 # v3
with:
java-version: 11
distribution: temurin
cache: gradle
- name: build-gradle
run: ./gradlew --no-daemon clean build installDist publish --build-cache --scan -s
- name: integration-test-non-windows
if: runner.os != 'Windows'
run: |
export PATH=`pwd`/build/install/jbang/bin:$PATH
cd itests
./test_suite.sh
./itests.sh
- name: add-to-path
run: echo "../build/install/jbang/bin" >> $env:GITHUB_PATH
- name: integration-test-windows
if: runner.os == 'Windows'
working-directory: itests
run: |
echo "::add-matcher::.github/karatewindows-matcher.json"
.\itests.cmd
echo "::remove-matcher owner=karate-windows::"
- name: codecoverage-report
run: |
./gradlew --no-daemon jacocoTestReport
- name: Upload Test Report
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3
if: always() # always run even if the previous step fails
with:
name: junit-test-results
path: '**/build/test-results/test/TEST-*.xml'
retention-days: 1
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2
with:
#files: ./coverage1.xml,./coverage2.xml # optional
flags: ${{ runner.os }} # optional
name: ${{ runner.os }}-tests # optional
verbose: true # optional (default = false)
- name: build-choco-package
if: runner.os == 'Windows'
uses: actions/setup-dotnet@608ee757cfcce72c2e91e99aca128e0cae67de87 # v1
with:
dotnet-version: '2.2.204' # SDK Version to use.
- name: build-choco
if: runner.os == 'Windows'
run: |
powershell
choco pack build/choco/jbang.nuspec
- name: Archive build results
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3
if: always()
with:
name: ${{ runner.os }}-build-${{ github.sha }}
path: build
- name: Upload jbang.zip
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3
if: always() && runner.os != 'Windows'
with:
name: jbang-${{ github.sha }}
path: build/install/jbang
testing:
needs: build
strategy:
## disable fail-fast so on variance failing don't fail the rest
#fail-fast: false
matrix:
os: [ubuntu-latest]
java: [8,11,17,19]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/setup-java@0ab4596768b603586c0de567f2430c30f5b0d2b0 # v3
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3
with:
name: ${{ runner.os }}-build-${{ github.sha }}
path: build
- name: smoke-test
run: |
java -version
chmod +x ./build/install/jbang/bin/jbang
./build/install/jbang/bin/jbang init --template=cli helloworld.java
./build/install/jbang/bin/jbang --verbose helloworld.java
rm helloworld.java
- name: smoke-quarkus-test
run: |
java -version
chmod +x ./build/install/jbang/bin/jbang
./build/install/jbang/bin/jbang init --template=qcli qcli.java
./build/install/jbang/bin/jbang --fresh --verbose qcli.java
rm qcli.java
- name: smoke-quarkus-diff-version-test
run: |
java -version
chmod +x ./build/install/jbang/bin/jbang
./build/install/jbang/bin/jbang init --template=qcli qcli.java
./build/install/jbang/bin/jbang --fresh --verbose --java 17 qcli.java
rm qcli.java
- name: integration-test-non-windows
## karate can't run on java 17 or higher due to missing nashorn
if: runner.os != 'Windows' && matrix.java < 17
run: |
export PATH=`pwd`/build/install/jbang/bin:$PATH
cd build/itests
chmod +x ./test_suite.sh
chmod +x ./itests.sh
./test_suite.sh
./itests.sh
- name: add-to-path
run: echo "../build/install/jbang/bin" >> $env:GITHUB_PATH
- name: integration-test-windows
if: runner.os == 'Windows' && matrix.java < 17
working-directory: itests
run: |
echo "::add-matcher::.github/karatewindows-matcher.json"
.\itests.cmd
echo "::remove-matcher owner=karate-windows::"