Fixed a bug that causes the exit message to be dropped and the CLI to… #216
Workflow file for this run
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
on: | |
push: | |
branches: | |
- release/** | |
- develop | |
- feature/** | |
pull_request: | |
types: [opened, synchronize, reopened] | |
branches: | |
- release/** | |
- develop | |
- feature/** | |
merge_group: | |
workflow_dispatch: | |
inputs: | |
linkcheck_fail_on_error: | |
description: 'a boolean flag that determines if bad links found by the link checker fail fast and stop a complete build' | |
required: false | |
default: true | |
type: boolean | |
linkcheck_create_issue: | |
description: 'create new GitHub issue if broken links found' | |
required: false | |
default: false | |
type: boolean | |
name: Build and Test | |
env: | |
INPUT_FAIL_ON_ERROR: ${{ github.event.inputs.linkcheck_fail_on_error || 'true' }} | |
INPUT_ISSUE_ON_ERROR: ${{ github.event.inputs.linkcheck_create_issue || 'false' }} | |
MAVEN_VERSION: 3.9.8 | |
JAVA_DISTRO: 'temurin' | |
JAVA_VERSION_FILE: .java-version | |
jobs: | |
build-code: | |
name: Code | |
runs-on: ubuntu-20.04 | |
permissions: | |
actions: read | |
contents: read | |
security-events: write | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
submodules: recursive | |
filter: tree:0 | |
# ------------------------- | |
# Java Environment Setup | |
# ------------------------- | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 | |
with: | |
maven-version: ${{ env.MAVEN_VERSION }} | |
- name: Set up JDK | |
uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b | |
with: | |
java-version-file: ${{ env.JAVA_VERSION_FILE }} | |
distribution: ${{ env.JAVA_DISTRO }} | |
cache: 'maven' | |
- name: Initialize CodeQL | |
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.base_ref == 'develop') | |
uses: github/codeql-action/init@662472033e021d55d94146f66f6058822b0b39fd | |
with: | |
languages: java | |
# ------------------------- | |
# Maven Build | |
# ------------------------- | |
- name: Build and Test Code | |
run: | | |
mvn -B -e -Prelease package | |
- name: Perform CodeQL Analysis | |
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.base_ref == 'develop') | |
uses: github/codeql-action/analyze@662472033e021d55d94146f66f6058822b0b39fd | |
with: | |
upload: ${{ (github.ref_name == 'develop' || (github.event_name == 'pull_request' && github.base_ref == 'develop')) && 'always' || 'never' }} | |
build-website: | |
name: Website | |
runs-on: ubuntu-20.04 | |
permissions: | |
actions: read | |
contents: write | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
submodules: recursive | |
filter: tree:0 | |
# ------------------------- | |
# Java Environment Setup | |
# ------------------------- | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 | |
with: | |
maven-version: ${{ env.MAVEN_VERSION }} | |
- name: Set up JDK | |
uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b | |
with: | |
java-version-file: ${{ env.JAVA_VERSION_FILE }} | |
distribution: ${{ env.JAVA_DISTRO }} | |
cache: 'maven' | |
# ------------------------- | |
# Maven Build | |
# ------------------------- | |
- name: Build and Test Website | |
run: | | |
mvn -B -e -Prelease install site site:stage -Dmaven.test.skip=true | |
- name: Zip Artifacts for Upload | |
run: | | |
zip ${{ runner.temp }}/website.zip -r target/staging | |
- name: Upload generated site | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 | |
with: | |
name: website | |
path: | | |
${{ runner.temp }}/website.zip | |
retention-days: 5 | |
- id: linkchecker | |
name: Link Checker | |
uses: lycheeverse/lychee-action@7cd0af4c74a61395d455af97419279d86aafaede | |
with: | |
args: --verbose --no-progress --accept 200,206,429 './target/staging/**/*.html' --remap "https://github.com/metaschema-framework/metaschema-java/tree/main/ file://${GITHUB_WORKSPACE}/" --remap "https://metaschema-java.metaschema.dev/ file://${GITHUB_WORKSPACE}/target/staging/" --exclude-mail | |
format: markdown | |
output: html-link-report.md | |
debug: true | |
fail: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
continue-on-error: true | |
- name: Upload link check report | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 | |
with: | |
name: html-link-report | |
path: html-link-report.md | |
retention-days: 5 | |
- name: Create issue if bad links detected | |
if: ${{ failure() && env.lychee_exit_code != 0 && env.INPUT_ISSUE_ON_ERROR == 'true' }} | |
uses: peter-evans/create-issue-from-file@e8ef132d6df98ed982188e460ebb3b5d4ef3a9cd | |
with: | |
title: Scheduled Check of Website Content Found Bad Hyperlinks | |
content-filepath: ./lychee/out.md | |
labels: | | |
bug | |
documentation | |
- name: Fail on link check error | |
if: ${{ failure() && env.lychee_exit_code != 0 && env.INPUT_FAIL_ON_ERROR == 'true' }} | |
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea | |
with: | |
script: | | |
core.setFailed('Link checker detected broken or invalid links, read attached report.') |