Build #2243
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: Build | |
on: | |
push: | |
branches: main | |
pull_request: | |
branches: main | |
schedule: | |
- cron: '0 16 * * *' | |
workflow_dispatch: | |
permissions: | |
contents: read | |
jobs: | |
build: | |
if: ${{ github.repository_owner == 'ihub-pub' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@8ca2b8b2ece13480cda6dacd3511b49857a23c09 # v2.5.1 | |
with: | |
disable-sudo: true | |
egress-policy: audit | |
- name: Checkout | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3.12.0 | |
with: | |
java-version: '11' | |
distribution: 'temurin' | |
cache: 'gradle' | |
- name: Build with Gradle | |
uses: gradle/gradle-build-action@a4cf152f482c7ca97ef56ead29bf08bcd953284c # v2.7.0 | |
with: | |
arguments: build -x test --scan | |
project-matrix: | |
if: ${{ github.repository_owner == 'ihub-pub' }} | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.name.outputs.test }} | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@8ca2b8b2ece13480cda6dacd3511b49857a23c09 # v2.5.1 | |
with: | |
disable-sudo: true | |
egress-policy: audit | |
- name: Checkout | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
- id: name | |
name: Project Name Matrix | |
run: | | |
projects=() | |
for file in ./* | |
do | |
if [[ $file =~ "ihub-" ]] | |
then | |
projects[${#projects[@]}]=$(basename $file) | |
fi | |
done | |
p=$(IFS=,; echo "${projects[*]}") | |
p=${p//,/\",\"} | |
echo "test=[\"$p\"]" >> $GITHUB_OUTPUT | |
matrix-test: | |
runs-on: ubuntu-latest | |
needs: project-matrix | |
strategy: | |
matrix: | |
project_name: ${{ fromJson(needs.project-matrix.outputs.matrix) }} | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@8ca2b8b2ece13480cda6dacd3511b49857a23c09 # v2.5.1 | |
with: | |
disable-sudo: true | |
egress-policy: audit | |
- name: Checkout | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
with: | |
ref: ${{ github.ref }} | |
fetch-depth: 0 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3.12.0 | |
with: | |
java-version: '11' | |
distribution: 'temurin' | |
cache: 'gradle' | |
- name: Testspace Setup CLI | |
uses: testspace-com/setup-testspace@ee1482f978eb5010ec27b6f6372904f01f2edd68 # v1.0.6 | |
with: | |
domain: ${{ github.repository_owner }} | |
- name: Chmod | |
run: chmod +x ./gradlew | |
- name: Build with Gradle | |
uses: gradle/gradle-build-action@a4cf152f482c7ca97ef56ead29bf08bcd953284c # v2.7.0 | |
with: | |
arguments: ${{ matrix.project_name }}:test -DiHubTest.failFast=true | |
- name: Upload Coverage Reports | |
if: ${{ github.repository_owner == 'ihub-pub' }} | |
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # v3.1.4 | |
- name: Publish Results to Testspace | |
run: testspace */build/test-results/test/*.xml */build/reports/*/test/*.xml | |
- name: Upload Test Result | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
name: ${{ matrix.project_name }}-test | |
path: | | |
*/build/reports/tests | |
retention-days: 1 | |
check: | |
runs-on: ubuntu-latest | |
needs: [ build, matrix-test ] | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@8ca2b8b2ece13480cda6dacd3511b49857a23c09 # v2.5.1 | |
with: | |
disable-sudo: true | |
egress-policy: audit | |
- name: Check Status | |
run: echo "Check Status" |