fix(store): reduce change detection cycles with pending tasks #1649
Workflow file for this run
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
# For more information see: | |
# - https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions | |
# - https://docs.github.com/en/actions/learn-github-actions/contexts#github-context | |
name: pr-validation | |
on: | |
pull_request: | |
env: | |
NODE_VERSION: 18.x | |
BASE_REF: ${{ format('remotes/origin/{0}', github.base_ref) }} | |
defaults: | |
run: | |
shell: bash | |
concurrency: | |
group: ${{ github.head_ref }}.${{ github.sha }}.pr-validation | |
cancel-in-progress: true | |
jobs: | |
premerge-build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Setup | |
uses: ./.github/actions/setup | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
github-ref-name: ${{ github.head_ref }} | |
github-sha: ${{ github.event.pull_request.head.sha }} | |
- name: Build NGXS | |
run: yarn build | |
- name: Upload Build Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ngxs-build | |
path: ./@ngxs | |
retention-days: 1 | |
# create a preview release of the packages using pkg.pr.new | |
- name: Continuous Release | |
run: npx pkg-pr-new publish --compact ./@ngxs/devtools-plugin ./@ngxs/form-plugin ./@ngxs/hmr-plugin ./@ngxs/router-plugin ./@ngxs/storage-plugin ./@ngxs/store ./@ngxs/websocket-plugin | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
premerge-test: | |
runs-on: ubuntu-latest | |
needs: premerge-build | |
strategy: | |
matrix: | |
script: [lint, 'test'] | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Setup | |
uses: ./.github/actions/setup | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
github-ref-name: ${{ github.head_ref }} | |
github-sha: ${{ github.event.pull_request.head.sha }} | |
- name: Run ${{ matrix.script }} | |
run: yarn nx run-many --target=${{ matrix.script }} --all --configuration=ci --base=${{ env.BASE_REF}} --head=HEAD | |
- name: Upload coverage results to Code Climate | |
if: ${{ matrix.script == 'test' }} | |
run: | | |
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > /tmp/cc-test-reporter | |
chmod +x /tmp/cc-test-reporter | |
node tools/merge-reports.js --coverageDir=coverage/packages --reporterBinaryPath=/tmp/cc-test-reporter | |
/tmp/cc-test-reporter upload-coverage -i tmp/codeclimate-final.json | |
env: | |
CC_TEST_REPORTER_ID: 3f4c9a9d57ded045e0f9ab5d23e5bbcbf709bb85637bea555f1233e72134b818 # TODO: better store it in the repository secrets. Name the variable: CC_TEST_REPORTER_ID. Then delete this line and uncomment the next one | |
# CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} | |
premerge-integration-test: | |
runs-on: ubuntu-latest | |
needs: premerge-build | |
strategy: | |
matrix: | |
script: | |
- 'integration:ng19' | |
- 'test:types' | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Setup | |
uses: ./.github/actions/setup | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
github-ref-name: ${{ github.head_ref }} | |
github-sha: ${{ github.event.pull_request.head.sha }} | |
- name: Run ${{ matrix.script }} | |
run: yarn ${{ matrix.script }} | |
- name: Upload an integration test artifact | |
if: ${{ startsWith( matrix.script, 'integration:' ) }} | |
uses: ./.github/actions/upload-integration-test-artifact | |
with: | |
script: ${{ matrix.script }} | |
premerge-bundlemon: | |
if: github.repository_owner == 'ngxs' | |
runs-on: ubuntu-latest | |
needs: premerge-integration-test | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Setup | |
uses: ./.github/actions/setup | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
github-ref-name: ${{ github.head_ref }} | |
github-sha: ${{ github.event.pull_request.head.sha }} | |
- name: Download integration test artifacts | |
uses: ./.github/actions/download-integration-test-artifacts | |
- name: Run BundleMon | |
run: yarn bundlemon | |
env: | |
BUNDLEMON_PROJECT_ID: 62b174ff6619780d8caf79fa | |
CI_COMMIT_SHA: ${{ github.event.pull_request.head.sha }} |