From f3429fe3da14b30b9f56cbc26d214ca9624a31fb Mon Sep 17 00:00:00 2001 From: Lauren Tan Date: Fri, 21 Jun 2024 10:46:54 -0400 Subject: [PATCH] [ci] Add new lint GitHub action Copies the existing circleci workflow for linting into GitHub actions. I didn't remove the circleci for now just to check for parity. ghstack-source-id: 440dd5f9e7d10690b35a6f8adf227ba2bcc7e908 Pull Request resolved: https://github.com/facebook/react/pull/30023 --- .github/workflows/lint.yml | 79 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 .github/workflows/lint.yml diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000000000..2b22e09ff70ea --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,79 @@ +name: Lint + +on: + push: + branches: [main] + pull_request: + +jobs: + prettier: + name: Run prettier + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18.x + cache: "yarn" + cache-dependency-path: yarn.lock + - name: Restore cached node_modules + uses: actions/cache@v4 + with: + path: "**/node_modules" + key: ${{ runner.arch }}-${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + - run: yarn install --frozen-lockfile + - run: yarn prettier-check + + eslint: + name: Run eslint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18.x + cache: "yarn" + cache-dependency-path: yarn.lock + - name: Restore cached node_modules + uses: actions/cache@v4 + with: + path: "**/node_modules" + key: ${{ runner.arch }}-${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + - run: yarn install --frozen-lockfile + - run: node ./scripts/tasks/eslint + + check_license: + name: Check license + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18.x + cache: "yarn" + cache-dependency-path: yarn.lock + - name: Restore cached node_modules + uses: actions/cache@v4 + with: + path: "**/node_modules" + key: ${{ runner.arch }}-${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + - run: yarn install --frozen-lockfile + - run: ./scripts/circleci/check_license.sh + + test_print_warnings: + name: Test print warnings + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18.x + cache: "yarn" + cache-dependency-path: yarn.lock + - name: Restore cached node_modules + uses: actions/cache@v4 + with: + path: "**/node_modules" + key: ${{ runner.arch }}-${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + - run: yarn install --frozen-lockfile + - run: ./scripts/circleci/test_print_warnings.sh