ECOPROJECT-2327: Add Github action to validate PRs before merge it to main #8
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: Pull request | |
on: | |
pull_request: | |
types: | |
- opened | |
- reopened | |
- synchronize | |
- ready_for_review | |
branches: | |
- main | |
- releases/* | |
env: | |
NODE_OPTIONS: '--max-old-space-size=8192' | |
# See https://github.com/cypress-io/cypress/issues/25357 | |
ELECTRON_EXTRA_LAUNCH_ARGS: --disable-gpu | |
jobs: | |
preflight-check: | |
# Prevents running the workflow when a PR is marked as draft. | |
runs-on: ubuntu-latest | |
outputs: | |
skip: ${{ steps.check.outputs.skip }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Enable Corepack | |
run: | | |
corepack enable | |
corepack prepare yarn@4.5.0 --activate | |
- name: Check if PR is draft | |
id: check | |
run: | | |
if [[ "${{ github.event.pull_request.draft }}" == "true" ]]; then | |
skip=true | |
else | |
skip=false | |
fi | |
echo "skip=${skip}" >> $GITHUB_OUTPUT | |
echo "skip=${skip}" | |
needs: [dco-check] | |
dco-check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check DCO | |
uses: dcoapp/action@v1 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
lint-and-build: | |
# Execute lint and build when a PR is ready | |
needs: preflight-check | |
if: needs.preflight-check.outputs.skip == 'false' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Enable Corepack | |
run: | | |
corepack enable | |
corepack prepare yarn@4.5.0 --activate | |
- run: yarn install --immutable | |
- run: yarn all:lint | |
- run: yarn all:build | |