Nightly build #1103
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Nightly build | |
on: | |
schedule: | |
- cron: "24 5 * * *" | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/[email protected] | |
- name: Set up JDK 17 for running Gradle | |
uses: actions/[email protected] | |
with: | |
distribution: temurin | |
java-version: 17 | |
- name: Cache Gradle Wrapper | |
uses: actions/[email protected] | |
with: | |
path: ~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-wrapper-cache-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }} | |
- name: Build and test | |
run: ./gradlew build -x :smoke-tests:test --scan --no-daemon | |
setup-muzzle-matrix: | |
runs-on: ubuntu-22.04 | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- name: Check out repository | |
uses: actions/[email protected] | |
- name: Set up JDK 17 for running Gradle | |
uses: actions/[email protected] | |
with: | |
distribution: temurin | |
java-version: 17 | |
- name: Cache Gradle Wrapper | |
uses: actions/[email protected] | |
with: | |
path: ~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-wrapper-cache-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }} | |
- id: set-matrix | |
run: echo "matrix={\"module\":[\"$(./gradlew -q instrumentation:listMuzzleInstrumentations | xargs echo | sed 's/ /","/g')\"]}" >> $GITHUB_OUTPUT | |
muzzle: | |
needs: setup-muzzle-matrix | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: ${{fromJson(needs.setup-muzzle-matrix.outputs.matrix)}} | |
fail-fast: false | |
steps: | |
- name: Check out repository | |
uses: actions/[email protected] | |
- name: Set up JDK 17 for running Gradle | |
uses: actions/[email protected] | |
with: | |
distribution: temurin | |
java-version: 17 | |
- name: Cache Gradle Wrapper | |
uses: actions/[email protected] | |
with: | |
path: ~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-wrapper-cache-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }} | |
- name: Run muzzle | |
# using retry because of sporadic gradle download failures | |
uses: nick-invision/[email protected] | |
with: | |
# timing out has not been a problem, these jobs typically finish in 2-3 minutes | |
timeout_minutes: 15 | |
max_attempts: 3 | |
command: ./gradlew ${{ matrix.module }}:muzzle --stacktrace --no-daemon | |
smoke-test: | |
runs-on: ${{ matrix.os }} | |
permissions: | |
packages: read | |
strategy: | |
matrix: | |
os: [ windows-2019, ubuntu-22.04 ] | |
suite: [ "glassfish", "jboss", "jetty", "liberty", "profiler", "tomcat", "tomee", "weblogic", "websphere", "wildfly", "other" ] | |
exclude: | |
- os: windows-2019 | |
suite: websphere | |
- os: windows-2019 | |
suite: profiler | |
fail-fast: false | |
steps: | |
- uses: actions/[email protected] | |
- name: Set up JDK 17 for running Gradle | |
uses: actions/[email protected] | |
with: | |
distribution: temurin | |
java-version: 17 | |
- name: Cache Gradle Wrapper | |
uses: actions/[email protected] | |
with: | |
path: ~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-wrapper-cache-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
if: startsWith(matrix.os, 'ubuntu') | |
- name: Pull proprietary images | |
run: ./gradlew pullProprietaryTestImages --scan --no-daemon | |
if: startsWith(matrix.os, 'ubuntu') | |
- name: Test | |
run: ./gradlew :smoke-tests:test -PsmokeTestSuite=${{ matrix.suite }} --scan --no-daemon | |
issue: | |
name: Open issue on failure | |
needs: [ build, muzzle, smoke-test ] | |
runs-on: ubuntu-22.04 | |
permissions: | |
issues: write | |
if: always() | |
steps: | |
# run this action to get workflow conclusion | |
# You can get conclusion by env (env.WORKFLOW_CONCLUSION) | |
- uses: technote-space/[email protected] | |
- uses: actions/[email protected] | |
- name: Create issue | |
if: env.WORKFLOW_CONCLUSION == 'failure' # notify only if failure | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
cat > body.txt << EOF | |
[Nightly build #$GITHUB_RUN_NUMBER](https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID) failed. | |
Please take a look and fix it ASAP. | |
EOF | |
gh issue create \ | |
--title "Nightly build #$GITHUB_RUN_NUMBER failed" \ | |
--label bug \ | |
--label area:build \ | |
--label automated \ | |
--assignee agoallikmaa,breedx-splk,laurit \ | |
--body-file body.txt | |
shellcheck: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/[email protected] | |
- name: Install shell check | |
run: wget -qO- "https://github.com/koalaman/shellcheck/releases/download/v0.8.0/shellcheck-v0.8.0.linux.x86_64.tar.xz" | tar -xJv | |
- name: Run shellcheck | |
run: shellcheck-v0.8.0/shellcheck --format=gcc $(find scripts -name '*.sh') |