refactor(docs): changed to non hashbased routing and ssr #1023
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: on-pull-request-or-push | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- development | |
env: | |
NX_BRANCH: ${{ github.event.number }} | |
NX_RUN_GROUP: ${{ github.run_id }} | |
NX_CLOUD_AUTH_TOKEN: ${{ secrets.NX_CLOUD_AUTH_TOKEN }} | |
MOZ_HEALESS: 1 | |
SAUCE_USERNAME_PR: valorkinpr | |
SAUCE_ACCESS_KEY_PR: e0a97bd3-4b74-4408-89bf-cce1b44a8bf1 | |
FIREBASE_CHANNEL: ${{ fromJSON('["", "live"]')[!github.base_ref] }} | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 0 | |
CACHE_NODE_MODULES_PATH: | | |
~/.npm | |
node_modules | |
CACHE_DIST_PATH: dist | |
jobs: | |
# one run | |
one_run: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Cancel Previous Runs | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ secrets.GITHUB_TOKEN }} | |
# install dependencies | |
install: | |
runs-on: ubuntu-latest | |
needs: one_run | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
id: cache | |
with: | |
path: ${{ env.CACHE_NODE_MODULES_PATH }} | |
key: node_modules-${{ hashFiles('**/package-lock.json') }} | |
- run: npm ci | |
if: steps.cache.outputs.cache-hit != 'true' | |
# build ngx-bootstrap | |
build: | |
needs: install | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: ${{ env.CACHE_NODE_MODULES_PATH }} | |
key: node_modules-${{ hashFiles('**/package-lock.json') }} | |
- uses: actions/cache@v3 | |
with: | |
path: ${{ env.CACHE_DIST_PATH }} | |
key: dist-${{ github.run_id }} | |
# - run: | | |
# npx nx build ngx-bootstrap --runner=cloud --configuration=production | |
# npx nx build --runner=cloud --configuration=production | |
- run: | | |
npx nx build ngx-bootstrap --configuration=production | |
npx nx prerender --configuration=production | |
# run unit tests | |
unit_tests_with_coverage: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: ${{ env.CACHE_NODE_MODULES_PATH }} | |
key: node_modules-${{ hashFiles('**/package-lock.json') }} | |
- uses: actions/cache@v3 | |
with: | |
path: ${{ env.CACHE_DIST_PATH }} | |
key: dist-${{ github.run_id }} | |
# - run: npm test -- --runner=cloud --codeCoverage | |
- run: npm test -- --codeCoverage | |
- run: npx codecov ./coverage/ | |
continue-on-error: true | |
# run linting | |
linting: | |
runs-on: ubuntu-latest | |
needs: install | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: ${{ env.CACHE_NODE_MODULES_PATH }} | |
key: node_modules-${{ hashFiles('**/package-lock.json') }} | |
# - run: npm run lint -- --runner=cloud | |
- run: npm run lint -- | |
# firebase deploy preview | |
firebase_preview: | |
runs-on: ubuntu-latest | |
needs: build | |
outputs: | |
output_url: ${{ steps.firebase_hosting_preview.outputs.details_url }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: ${{ env.CACHE_DIST_PATH }} | |
key: dist-${{ github.run_id }} | |
- uses: FirebaseExtended/action-hosting-deploy@v0 | |
continue-on-error: true | |
id: firebase_hosting_preview | |
with: | |
repoToken: '${{ secrets.GITHUB_TOKEN }}' | |
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_NGX_BOOTSTRAP_DEMO }}' | |
projectId: ngx-bootstrap-demo | |
channelId: ${{ env.FIREBASE_CHANNEL }} | |
expires: 7d | |
# run playwright | |
e2e_smoke: | |
name: e2e smoke (${{ matrix.shard }}/${{ strategy.job-total }}) | |
runs-on: ubuntu-latest | |
needs: [install, build, firebase_preview] | |
strategy: | |
fail-fast: false | |
matrix: | |
shard: [1, 2] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: ${{ env.CACHE_NODE_MODULES_PATH }} | |
key: node_modules-${{ hashFiles('**/package-lock.json') }} | |
- uses: actions/cache@v3 | |
with: | |
path: ${{ env.CACHE_DIST_PATH }} | |
key: dist-${{ github.run_id }} | |
- name: Install playwright browsers | |
run: | | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npx playwright install | |
npx playwright install-deps chromium | |
- name: smoke e2e on firebase | |
if: ${{ needs.firebase_preview.outputs.output_url }} | |
run: PLAYWRIGHT_TEST_BASE_URL="${{ needs.firebase_preview.outputs.output_url }}/ngx-bootstrap/" npx nx run ngx-bootstrap-docs-e2e:e2e --pwProject=chromium-integration --skipServe --shard=${{ matrix.shard }}/${{ strategy.job-total }} | |
- name: smoke e2e local | |
if: ${{ !needs.firebase_preview.outputs.output_url }} | |
run: npx nx run ngx-bootstrap-docs-e2e:e2e --pwProject=chromium-integration --shard=${{ matrix.shard }}/${{ strategy.job-total }} | |
- uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: playwright-report-smoke-${{ matrix.shard }}_${{ strategy.job-total }} | |
path: apps/ngx-bootstrap-docs-e2e/playwright-report | |
retention-days: 14 | |
e2e_full: | |
name: e2e full | |
runs-on: ubuntu-latest | |
needs: [e2e_smoke] | |
strategy: | |
fail-fast: false | |
matrix: | |
shard: [1, 2] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: ${{ env.CACHE_NODE_MODULES_PATH }} | |
key: node_modules-${{ hashFiles('**/package-lock.json') }} | |
- uses: actions/cache@v3 | |
with: | |
path: ${{ env.CACHE_DIST_PATH }} | |
key: dist-${{ github.run_id }} | |
- name: Install playwright browsers | |
run: | | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npx playwright install | |
npx playwright install-deps chromium | |
- name: full e2e on firebase | |
if: ${{ needs.firebase_preview.outputs.output_url }} | |
continue-on-error: true | |
run: npx nx run ngx-bootstrap-docs-e2e:e2e --pwProject=chromium-full --baseUrl=${{ needs.firebase_preview.outputs.output_url }}/ngx-bootstrap/ --skipServe --shard=${{ matrix.shard }}/${{ strategy.job-total }} | |
- name: full e2e on local | |
if: ${{ !needs.firebase_preview.outputs.output_url }} | |
continue-on-error: true | |
run: npx nx run ngx-bootstrap-docs-e2e:e2e --pwProject=chromium-full --shard=${{ matrix.shard }}/${{ strategy.job-total }} | |
- uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: playwright-report-full-${{ matrix.shard }}_${{ strategy.job-total }} | |
path: apps/ngx-bootstrap-docs-e2e/playwright-report | |
retention-days: 14 |