Permalink
Cannot retrieve contributors at this time
121 lines (103 sloc)
3.85 KB
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
codeql-action/.github/workflows/pr-checks.yml
View runs Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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: PR Checks | |
on: | |
push: | |
branches: [main, releases/v1, releases/v2] | |
pull_request: | |
# Run checks on reopened draft PRs to support triggering PR checks on draft PRs that were opened | |
# by other workflows. | |
types: [opened, synchronize, reopened, ready_for_review] | |
workflow_dispatch: | |
jobs: | |
check-js: | |
name: Check JS | |
runs-on: ubuntu-latest | |
timeout-minutes: 45 | |
strategy: | |
fail-fast: true | |
matrix: | |
node-types-version: [12.12, current] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Lint | |
run: npm run-script lint | |
- name: Update version of @types/node | |
if: matrix.node-types-version != 'current' | |
env: | |
NODE_TYPES_VERSION: ${{ matrix.node-types-version }} | |
run: | | |
# Export `NODE_TYPES_VERSION` so it's available to jq | |
export NODE_TYPES_VERSION="${NODE_TYPES_VERSION}" | |
contents=$(jq '.devDependencies."@types/node" = env.NODE_TYPES_VERSION' package.json) | |
echo "${contents}" > package.json | |
# Usually we run `npm install` on macOS to ensure that we pick up macOS-only dependencies. | |
# However we're not checking in the updated lockfile here, so it's fine to run | |
# `npm install` on Linux. | |
npm install | |
if [ ! -z "$(git status --porcelain)" ]; then | |
git config --global user.email "github-actions@github.com" | |
git config --global user.name "github-actions[bot]" | |
# The period in `git add --all .` ensures that we stage deleted files too. | |
git add --all . | |
git commit -m "Use @types/node=${NODE_TYPES_VERSION}" | |
fi | |
- name: Check generated JS | |
run: .github/workflows/script/check-js.sh | |
check-node-modules: | |
name: Check modules up to date | |
runs-on: macos-latest | |
timeout-minutes: 45 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Check node modules up to date | |
run: .github/workflows/script/check-node-modules.sh | |
check-file-contents: | |
name: Check file contents | |
runs-on: ubuntu-latest | |
timeout-minutes: 45 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
# Checks for any conflict markers created by git. This check is primarily intended to validate that | |
# any merge conflicts in the v2 -> v1 backport PR are fixed before the PR is merged. | |
- name: Check for merge conflicts | |
run: | | |
# Use `|| true` since grep returns exit code 1 if there are no matches, and we don't want | |
# this to fail the workflow. | |
FILES_WITH_CONFLICTS=$(grep --extended-regexp --ignore-case --line-number --recursive \ | |
'^(<<<<<<<|>>>>>>>)' . || true) | |
if [[ "${FILES_WITH_CONFLICTS}" ]]; then | |
echo "Fail: Found merge conflict markers in the following files:" | |
echo "" | |
echo "${FILES_WITH_CONFLICTS}" | |
exit 1 | |
else | |
echo "Success: Found no merge conflict markers." | |
fi | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: 3.8 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install ruamel.yaml | |
# Ensure the generated PR check workflows are up to date. | |
- name: Verify PR checks up to date | |
run: .github/workflows/script/verify-pr-checks.sh | |
npm-test: | |
name: Unit Test | |
needs: [check-js, check-node-modules] | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 45 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: npm test | |
run: | | |
# Run any commands referenced in package.json using Bash, otherwise | |
# we won't be able to find them on Windows. | |
npm config set script-shell bash | |
npm test |