🩺 Quality assurance checks on PR 688 #1391
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: Checks | |
run-name: 🩺 Quality assurance checks on ${{ github.event_name == 'pull_request' && 'PR' || '🌱' }} ${{ github.event_name == 'pull_request' && github.event.number || github.ref_name }} | |
env: | |
NODE_VERSION: 18.16.1 | |
TEST_HIDE_CONSOLE: true | |
# This workflow runs for Pull Requests which are not draft, | |
# as well as commits going to the default branch | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: [opened, synchronize, ready_for_review] | |
# Only allow concurrent checks on the main branch to keep history | |
# on QA checks | |
concurrency: | |
group: checks-${{ github.ref }} | |
cancel-in-progress: ${{ github.ref_name != 'main' }} | |
jobs: | |
format-lint-test: | |
if: github.event.pull_request.draft == false | |
name: Format check, lint, unit tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
persist-credentials: false | |
fetch-depth: 0 | |
- name: Use Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: 'npm' | |
- name: Derive appropriate SHAs for base and head for `nx affected` commands | |
uses: nrwl/nx-set-shas@v2 | |
with: | |
main-branch-name: 'main' | |
- run: npm ci | |
- run: npx nx format:check | |
- run: npx nx affected -t lint --parallel=3 | |
- run: npx nx affected -t test --parallel=3 --configuration=ci --ci --codeCoverage --coverageReporters=lcov | |
- name: Coveralls | |
uses: coverallsapp/github-action@v2 | |
with: | |
allow-empty: true | |
# - name: Archive Code Coverage Results (on main) | |
# if: github.event_name != 'pull_request' | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: code-coverage-report | |
# path: ./coverage/**/coverage-summary.json | |
# if-no-files-found: error | |
# | |
# - name: Create Code Coverage Badge (on PR) | |
# if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' | |
# uses: dkhunt27/nx-code-coverage@v1 | |
# with: | |
# github-token: ${{ secrets.GITHUB_TOKEN }} | |
# coverage-folder: ./coverage | |
# coverage-base-folder: ./coverage-base | |
# gist-token: ${{ secrets.COVERAGE_GIST_TOKEN }} | |
# gist-id: c759fcfd4e71c8853beedbe1785fc081 | |
# color: green | |
# named-logo: jest | |
# no-coverage-ran: false | |
build-affected: | |
if: github.event.pull_request.draft == false | |
name: Attempt to build affected apps | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
persist-credentials: false | |
fetch-depth: 0 | |
- name: Use Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: 'npm' | |
- name: Derive appropriate SHAs for base and head for `nx affected` commands | |
uses: nrwl/nx-set-shas@v2 | |
with: | |
main-branch-name: 'main' | |
- run: npm ci | |
- run: npx nx affected -t build --parallel=3 | |
affected-recap: | |
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' | |
name: Print affected libs and apps | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@v3 | |
with: | |
persist-credentials: false | |
fetch-depth: 0 | |
- name: Use Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: 'npm' | |
- name: Derive appropriate SHAs for base and head for `nx affected` commands | |
uses: nrwl/nx-set-shas@v3 | |
- name: Install dependencies | |
run: npm ci | |
- name: Compute affected projects | |
run: | | |
echo "AFFECTED_LIBS=$(npx nx print-affected --type=lib --select=projects | awk 'BEGIN {RS = ", "; ORS = ", "} \ | |
{ print "`"$1"`" }')" >> $GITHUB_ENV | |
- name: Compute affected apps | |
run: | | |
echo "AFFECTED_APPS=$(npx nx print-affected --type=app --select=projects | awk 'BEGIN {RS = ", "; ORS = ", "} \ | |
{ print "`"$1"`" }')" >> $GITHUB_ENV | |
- name: add PR comment | |
uses: thollander/actions-comment-pull-request@v2 | |
with: | |
message: 'Affected libs: ${{ env.AFFECTED_LIBS }} | |
Affected apps: ${{ env.AFFECTED_APPS }} | |
- [ ] 🚀 Build and deploy storybook and demo on GitHub Pages | |
- [ ] 📦 Build and push affected docker images' | |
comment_tag: build-options | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |