diff --git a/.github/workflows/link-check-test.yml b/.github/workflows/link-check-dotcom.yml similarity index 82% rename from .github/workflows/link-check-test.yml rename to .github/workflows/link-check-dotcom.yml index da2f6325f4..928a38b5bd 100644 --- a/.github/workflows/link-check-test.yml +++ b/.github/workflows/link-check-dotcom.yml @@ -17,7 +17,7 @@ jobs: with: cancel_others: 'false' github_token: ${{ github.token }} - paths: '[".github/workflows/link-check-test.yml", "assets/**", "content/**", "data/**", "includes/**", "javascripts/**", "jest-puppeteer.config.js", "jest.config.js", "layouts/**", "lib/**", "middleware/**", "package-lock.json", "package.json", "server.js", "translations/**", "webpack.config.js"]' + paths: '[".github/workflows/link-check-*.yml", "assets/**", "content/**", "data/**", "includes/**", "javascripts/**", "jest-puppeteer.config.js", "jest.config.js", "layouts/**", "lib/**", "middleware/**", "package-lock.json", "package.json", "server.js", "translations/**", "webpack.config.js"]' build: needs: see_if_should_skip runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }} @@ -51,5 +51,7 @@ jobs: run: npm run build - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} - name: Link check + name: 'Link check: Dotcom' + env: + VERSION: 'dotcom' run: npm run link-check diff --git a/.github/workflows/link-check-ghae.yml b/.github/workflows/link-check-ghae.yml new file mode 100644 index 0000000000..198f4a984e --- /dev/null +++ b/.github/workflows/link-check-ghae.yml @@ -0,0 +1,57 @@ +name: Link Checker + +on: + workflow_dispatch: + push: + +jobs: + see_if_should_skip: + continue-on-error: true + runs-on: ubuntu-latest + # Map a step output to a job output + outputs: + should_skip: ${{ steps.skip_check.outputs.should_skip }} + steps: + - id: skip_check + uses: fkirc/skip-duplicate-actions@36feb0d8d062137530c2e00bd278d138fe191289 + with: + cancel_others: 'false' + github_token: ${{ github.token }} + paths: '[".github/workflows/link-check-*.yml", "assets/**", "content/**", "data/**", "includes/**", "javascripts/**", "jest-puppeteer.config.js", "jest.config.js", "layouts/**", "lib/**", "middleware/**", "package-lock.json", "package.json", "server.js", "translations/**", "webpack.config.js"]' + build: + needs: see_if_should_skip + runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }} + steps: + # Each of these ifs needs to be repeated at each step to make sure the required check still runs + # Even if if doesn't do anything + - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} + name: Checkout + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + + - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} + name: Setup node + uses: actions/setup-node@c46424eee26de4078d34105d3de3cc4992202b1e + with: + node-version: 14.x + + - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} + name: Install + run: npm ci + + ## TODO + # - if: ${{ github.repository == 'github/docs-internal' && needs.see_if_should_skip.outputs.should_skip != 'true' }} + # name: Clone early access + # run: npm run heroku-postbuild + # env: + # DOCUBOT_REPO_PAT: ${{ secrets.DOCUBOT_REPO_PAT }} + # GIT_BRANCH: ${{ github.ref }} + + - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} + name: Build + run: npm run build + + - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} + name: 'Link check: GitHub AE' + env: + VERSION: 'github-ae' + run: npm run link-check diff --git a/.github/workflows/link-check-ghes.yml b/.github/workflows/link-check-ghes.yml new file mode 100644 index 0000000000..feb0095e6c --- /dev/null +++ b/.github/workflows/link-check-ghes.yml @@ -0,0 +1,57 @@ +name: Link Checker + +on: + workflow_dispatch: + push: + +jobs: + see_if_should_skip: + continue-on-error: true + runs-on: ubuntu-latest + # Map a step output to a job output + outputs: + should_skip: ${{ steps.skip_check.outputs.should_skip }} + steps: + - id: skip_check + uses: fkirc/skip-duplicate-actions@36feb0d8d062137530c2e00bd278d138fe191289 + with: + cancel_others: 'false' + github_token: ${{ github.token }} + paths: '[".github/workflows/link-check-*.yml", "assets/**", "content/**", "data/**", "includes/**", "javascripts/**", "jest-puppeteer.config.js", "jest.config.js", "layouts/**", "lib/**", "middleware/**", "package-lock.json", "package.json", "server.js", "translations/**", "webpack.config.js"]' + build: + needs: see_if_should_skip + runs-on: ${{ fromJSON('["ubuntu-latest", "self-hosted"]')[github.repository == 'github/docs-internal'] }} + steps: + # Each of these ifs needs to be repeated at each step to make sure the required check still runs + # Even if if doesn't do anything + - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} + name: Checkout + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + + - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} + name: Setup node + uses: actions/setup-node@c46424eee26de4078d34105d3de3cc4992202b1e + with: + node-version: 14.x + + - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} + name: Install + run: npm ci + + ## TODO + # - if: ${{ github.repository == 'github/docs-internal' && needs.see_if_should_skip.outputs.should_skip != 'true' }} + # name: Clone early access + # run: npm run heroku-postbuild + # env: + # DOCUBOT_REPO_PAT: ${{ secrets.DOCUBOT_REPO_PAT }} + # GIT_BRANCH: ${{ github.ref }} + + - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} + name: Build + run: npm run build + + - if: ${{ needs.see_if_should_skip.outputs.should_skip != 'true' }} + name: 'Link check: Enterprise Server' + env: + VERSION: 'enterprise-server' + run: npm run link-check