Skip to content

ci(strict-check): add tsconfig strict check to pull requests #1224

ci(strict-check): add tsconfig strict check to pull requests

ci(strict-check): add tsconfig strict check to pull requests #1224

Workflow file for this run

name: Pull Request
on:
pull_request:
branches-ignore:
- changeset-release/main
types:
- opened
- reopened
- synchronize
concurrency:
group: pr-${{ github.head_ref }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest
outputs:
core_any_changed: ${{ steps.changes.outputs.core_any_changed }}
core_all_changed_files: ${{ steps.changes.outputs.core_all_changed_files }}
aggrid_any_changed: ${{ steps.changes.outputs.aggrid_any_changed }}
echarts_any_changed: ${{ steps.changes.outputs.echarts_any_changed }}
docs_any_changed: ${{ steps.changes.outputs.docs_any_changed }}
unittests_any_changed: ${{ steps.changes.outputs.unittests_any_changed }}
steps:
- uses: actions/checkout@v3
- name: Track changes between commits
id: changes
uses: tj-actions/changed-files@v43
with:
files_yaml: |
core:
- packages/core/**
aggrid:
- packages/aggrid/**
echarts:
- packages/echarts/**
docs:
- packages/documentation/**
- packages/example-styles/**
- packages/html-test-app/**
- packages/angular-test-app/**
- packages/react-test-app/**
- packages/vue-test-app/**
unittests:
- packages/core/**
- packages/angular/**
- packages/react/**
- packages/angular-test-app/**
- packages/react-test-app/**
- packages/figma-plugin/**
build:
needs: changes
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: ./.github/workflows/actions/turbo
- name: Build
run: pnpm build --cache-dir=.turbo --filter \!documentation
- name: Lint
run: pnpm lint
- name: Check for local development changes
run: ./scripts/lint-build.sh
build-docs:
needs: [changes, build]
if: ${{ needs.changes.outputs.docs_any_changed == 'true' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: ./.github/workflows/actions/turbo
- name: Build
run: pnpm build --cache-dir=.turbo --filter documentation
visual-testing-core:
if: ${{ needs.changes.outputs.core_any_changed == 'true' }}
needs: [build, changes]
timeout-minutes: 10
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
shard: [1/4, 2/4, 3/4, 4/4]
steps:
- uses: actions/checkout@v3
- uses: ./.github/workflows/actions/turbo
- name: Install Playwright Browsers
run: pnpm exec playwright install chromium --with-deps
- name: Visual Regression
run: pnpm run visual-regression --cache-dir=.turbo --filter @siemens/ix -- --shard ${{ matrix.shard }}
- uses: actions/upload-artifact@v3
if: always()
with:
name: core-blob-report
path: |
./packages/core/blob-report/
retention-days: 1
visual-testing-aggrid:
if: ${{ needs.changes.outputs.core_any_changed == 'true' || needs.changes.outputs.aggrid_any_changed == 'true' }}
needs: [build, changes]
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/workflows/actions/turbo
- name: Install Playwright Browsers
run: pnpm exec playwright install chromium --with-deps
- name: Visual Regression
run: pnpm run visual-regression --cache-dir=.turbo --filter @siemens/ix-aggrid
- uses: actions/upload-artifact@v3
if: failure()
with:
name: aggrid-html-report--attempt-${{ github.run_attempt }}
path: |
./packages/aggrid/playwright-report/
retention-days: 1
visual-testing-echarts:
if: ${{ needs.changes.outputs.core_any_changed == 'true' || needs.changes.outputs.echarts_any_changed == 'true' }}
needs: [build, changes]
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/workflows/actions/turbo
- name: Install Playwright Browsers
run: pnpm exec playwright install chromium --with-deps
- name: Visual Regression
run: pnpm run visual-regression --cache-dir=.turbo --filter @siemens/ix-echarts
- uses: actions/upload-artifact@v3
if: failure()
with:
name: echarts-html-report--attempt-${{ github.run_attempt }}
path: |
./packages/echarts/playwright-report/
retention-days: 1
merge-core-reports:
if: failure()
needs: [visual-testing-core]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/workflows/actions/turbo
- name: Download blob reports from GitHub Actions Artifacts
uses: actions/download-artifact@v3
with:
name: core-blob-report
path: all-blob-reports
- name: Merge into HTML Report
run: pnpm exec playwright merge-reports --reporter html ./all-blob-reports
- name: Upload HTML report
uses: actions/upload-artifact@v3
with:
name: core-html-report--attempt-${{ github.run_attempt }}
path: playwright-report
retention-days: 2
unit:
if: ${{ needs.changes.outputs.unittests_any_changed == 'true' }}
needs: [build, changes]
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/workflows/actions/turbo
- name: Install Playwright Browsers
run: pnpm exec playwright install chromium --with-deps
- name: Test
run: pnpm run test --cache-dir=.turbo --filter !\documentation
strict:
if: ${{ needs.changes.outputs.core_any_changed == 'true' }}
needs: [changes]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/workflows/actions/turbo
- name: Strict
id: report
env:
ALL_CHANGED_FILES: ${{ needs.changes.outputs.core_all_changed_files }}
run: pnpm --filter @siemens/ix exec strict-check ${ALL_CHANGED_FILES}
- name: Find Comment
uses: peter-evans/find-comment@v3
id: find-comment
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: '### Report of `strict` check'
- name: Delete comment
if: ${{ steps.report.outputs.has_errors != 'true' }}
uses: actions-cool/issues-helper@v3
with:
actions: 'delete-comment'
token: ${{ secrets.GITHUB_TOKEN }}
comment-id: ${{ steps.find-comment.outputs.comment-id }}
- name: Create or update comment
if: ${{ steps.report.outputs.has_errors == 'true' }}
uses: peter-evans/create-or-update-comment@v4
with:
comment-id: ${{ steps.find-comment.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: ${{ steps.report.outputs.body }}
edit-mode: replace