diff --git a/.github/workflows/validate-static.yml b/.github/workflows/validate-static.yml new file mode 100644 index 00000000..f6083e7d --- /dev/null +++ b/.github/workflows/validate-static.yml @@ -0,0 +1,47 @@ +name: Validate static + +on: + pull_request: + push: + branches: [master] + +jobs: + validate-static: + runs-on: ubuntu-latest + + env: + VALIDATOR_VERSION: 20.3.16 + + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + + - name: Cache node modules + uses: actions/cache@v1 + env: + cache-name: cache-node-modules + with: + path: ~/.npm + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + + - name: Cache validator + id: validator-cache + uses: actions/cache@v1 + with: + path: vnu-runtime-image + key: ${{ runner.os }}-validator-${{ env.VALIDATOR_VERSION }} + + - run: sudo apt-get -y install libxml2-utils + - run: npm install + + - name: Download validatornu + # There isn't a package with a `validatornu` command in Ubuntu, so download the validator + # from the GitHub releases and change the validate_static script later to use it. + run: wget https://github.com/validator/validator/releases/download/${{ env.VALIDATOR_VERSION }}/vnu.linux.zip && unzip vnu.linux.zip + if: steps.validator-cache.outputs.cache-hit != 'true' + + - run: sed -i 's+validatornu+vnu-runtime-image/bin/vnu+g' validate_static + + - name: validate static + run: ./validate_static +