Skip to content

Nightly build

Nightly build #859

Workflow file for this run

name: Nightly build
on:
schedule:
- cron: "24 5 * * *"
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4.1.1
- name: Set up JDK 17 for running Gradle
uses: actions/setup-java@v4.0.0
with:
distribution: temurin
java-version: 17
- name: Cache Gradle Wrapper
uses: actions/cache@v3.3.2
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/checkout@v4.1.1
- name: Set up JDK 17 for running Gradle
uses: actions/setup-java@v4.0.0
with:
distribution: temurin
java-version: 17
- name: Cache Gradle Wrapper
uses: actions/cache@v3.3.2
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/checkout@v4.1.1
- name: Set up JDK 17 for running Gradle
uses: actions/setup-java@v4.0.0
with:
distribution: temurin
java-version: 17
- name: Cache Gradle Wrapper
uses: actions/cache@v3.3.2
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/retry@v2.9.0
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/checkout@v4.1.1
- name: Set up JDK 17 for running Gradle
uses: actions/setup-java@v4.0.0
with:
distribution: temurin
java-version: 17
- name: Cache Gradle Wrapper
uses: actions/cache@v3.3.2
with:
path: ~/.gradle/wrapper
key: ${{ runner.os }}-gradle-wrapper-cache-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.0.0
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/workflow-conclusion-action@v3.0.3
- uses: actions/checkout@v4.1.1
- 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/checkout@v4.1.1
- 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')