Add GitHub workflow for automatically updating index.js
#259
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
name: ci | |
on: # rebuild any PRs and main branch changes | |
pull_request: | |
push: | |
branches: | |
- main | |
- 'releases/*' | |
permissions: | |
contents: read | |
jobs: | |
build: # make sure build/ci work properly | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: npm | |
- name: Build and test | |
run: | | |
npm -v | |
node -v | |
npm clean-install | |
npm run all | |
# Integration test for successful validation of wrappers | |
test-validation-success: | |
name: 'Test: Validation success' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: npm | |
- name: Build action | |
# Pull requests are not expected to update `action/index.js`, and pushes to the `main` branch | |
# might not have updated the file either (and rely on CI to do that), therefore build the | |
# action here first | |
run: | | |
npm clean-install | |
npm run github_ci_all | |
- name: Run wrapper-validation-action | |
id: action-test | |
uses: ./ | |
with: | |
# to allow the invalid wrapper jar present in test data | |
allow-checksums: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 | |
- name: Check outcome | |
env: | |
# Evaluate workflow expressions here as env variable values instead of inside shell script | |
# below to not accidentally inject code into shell script or break its syntax | |
FAILED_WRAPPERS: ${{ steps.action-test.outputs.failed-wrapper }} | |
FAILED_WRAPPERS_MATCHES: ${{ steps.action-test.outputs.failed-wrapper == '' }} | |
run: | | |
if [ "$FAILED_WRAPPERS_MATCHES" != "true" ] ; then | |
echo "'outputs.failed-wrapper' has unexpected content: $FAILED_WRAPPERS" | |
exit 1 | |
fi | |
# Integration test for failing validation of wrappers | |
test-validation-error: | |
name: 'Test: Validation error' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: npm | |
- name: Build action | |
# Pull requests are not expected to update `action/index.js`, and pushes to the `main` branch | |
# might not have updated the file either (and rely on CI to do that), therefore build the | |
# action here first | |
run: | | |
npm clean-install | |
npm run github_ci_all | |
- name: Run wrapper-validation-action | |
id: action-test | |
uses: ./ | |
# Expected to fail; validated below | |
continue-on-error: true | |
- name: Check outcome | |
env: | |
# Evaluate workflow expressions here as env variable values instead of inside shell script | |
# below to not accidentally inject code into shell script or break its syntax | |
VALIDATION_FAILED: ${{ steps.action-test.outcome == 'failure' }} | |
FAILED_WRAPPERS: ${{ steps.action-test.outputs.failed-wrapper }} | |
FAILED_WRAPPERS_MATCHES: ${{ steps.action-test.outputs.failed-wrapper == '__tests__/data/invalid/gradle-wrapper.jar|__tests__/data/invalid/gradlе-wrapper.jar' }} | |
run: | | |
if [ "$VALIDATION_FAILED" != "true" ] ; then | |
echo "Expected validation to fail, but it didn't" | |
exit 1 | |
fi | |
if [ "$FAILED_WRAPPERS_MATCHES" != "true" ] ; then | |
echo "'outputs.failed-wrapper' has unexpected content: $FAILED_WRAPPERS" | |
exit 1 | |
fi |