Skip to content

v18.1.6

v18.1.6 #14

Workflow file for this run

# 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: release
on:
release:
types:
- created
env:
NODE_VERSION: 18.x
defaults:
run:
shell: bash
concurrency:
group: ${{ github.ref_name }}.${{ github.sha }}.release
cancel-in-progress: true
jobs:
release-build:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
with:
node-version: ${{ env.NODE_VERSION }}
github-ref-name: ${{ github.ref_name }}
github-sha: ${{ github.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
release-test:
runs-on: ubuntu-latest
needs: release-build
strategy:
matrix:
script: [lint, 'test']
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
with:
node-version: ${{ env.NODE_VERSION }}
github-ref-name: ${{ github.ref_name }}
github-sha: ${{ github.sha }}
- name: Run ${{ matrix.script }}
run: yarn nx run-many --target=${{ matrix.script }} --configuration=ci --all
- name: Upload coverage results to Code Climate
if: ${{ matrix.script == 'test:ci' }}
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 }}
release-integration-test:
runs-on: ubuntu-latest
needs: release-build
strategy:
matrix:
script:
- 'integration:ng16'
- 'integration:ng17'
- 'integration:ng18'
- 'test:types'
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
with:
node-version: ${{ env.NODE_VERSION }}
github-ref-name: ${{ github.ref_name }}
github-sha: ${{ github.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 }}
release-bundlemon:
if: github.repository_owner == 'ngxs'
runs-on: ubuntu-latest
needs: release-integration-test
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
with:
node-version: ${{ env.NODE_VERSION }}
github-ref-name: ${{ github.ref_name }}
github-sha: ${{ github.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.sha }}
release-publish:
if: github.repository_owner == 'ngxs'
runs-on: ubuntu-latest
environment: npm-publish
needs: [release-build, release-test, release-integration-test, release-bundlemon]
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
with:
node-version: ${{ env.NODE_VERSION }}
github-ref-name: ${{ github.ref_name }}
github-sha: ${{ github.sha }}
- name: Check @ngxs build artifacts
uses: ./.github/actions/check-build-artifacts
- name: Production release - publish tagged builds to all @ngxs packages
run: yarn publish:tagged
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}