Skip to content

chore(contributing): update the contributing guide to include preview… #297

chore(contributing): update the contributing guide to include preview…

chore(contributing): update the contributing guide to include preview… #297

Workflow file for this run

name: Build & Test
on:
push:
branches:
- main
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Build
run: |
npm install
npm run src:lint
npm run src:build
npm run starters:find-redundant
npm run starters:build -- --current
- run: tar -cf build.tar build dist
- uses: actions/upload-artifact@v3
with:
name: build
path: build.tar
test:
strategy:
matrix:
# We explicitly list each test app so they can
# be built in parallel rather than only specifying
# "vue" which would cause several projects to be built sequentially.
framework: ['vue-vite-official-blank', 'vue-vite-official-list', 'vue-vite-official-tabs', 'vue-vite-official-sidemenu', 'vue-official-blank', 'vue-official-list', 'vue-official-tabs', 'vue-official-sidemenu', 'react-vite-official-blank', 'react-vite-official-list', 'react-vite-official-tabs', 'react-vite-official-sidemenu', 'react-official-blank', 'react-official-list', 'react-official-tabs', 'react-official-sidemenu', 'angular-standalone-official-blank', 'angular-standalone-official-list', 'angular-standalone-official-tabs', 'angular-standalone-official-sidemenu', 'angular-official-blank', 'angular-official-list', 'angular-official-tabs', 'angular-official-sidemenu']
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: build
- run: tar -xf build.tar
- uses: actions/setup-node@v3
with:
node-version: 16
cache: npm
cache-dependency-path: |
build/${{ matrix.framework }}/ionic.starter.json
build/${{ matrix.framework }}/package.json
- name: Test ${{ matrix.framework }}
run: |
npm install
rm -rf node_modules/@types
npm run starters:test -- --type=${{ matrix.framework }}
# This step allows us to have a required
# status check for each matrix job without having
# to manually add each matrix run in the branch protection rules.
# Source: https://github.community/t/status-check-for-a-matrix-jobs/127354
verify-test:
if: ${{ always() }}
needs: test
runs-on: ubuntu-latest
steps:
- name: Check build matrix status
if: ${{ needs.test.result != 'success' }}
run: exit 1
test-legacy:
strategy:
matrix:
framework: ['ionic-angular', 'ionic1']
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: build
- run: tar -xf build.tar
- uses: actions/setup-node@v3
with:
# Legacy starter apps do not support
# node 16+ which is why we have a separate job
node-version: 14
cache: npm
cache-dependency-path: |
build/${{ matrix.framework }}-*/ionic.starter.json
build/${{ matrix.framework }}-*/package.json
- name: Test ${{ matrix.framework }}
run: |
npm install
rm -rf node_modules/@types
npm run starters:test -- --type=${{ matrix.framework }}
# This step allows us to have a required
# status check for each matrix job without having
# to manually add each matrix run in the branch protection rules.
# Source: https://github.community/t/status-check-for-a-matrix-jobs/127354
verify-test-legacy:
if: ${{ always() }}
needs: test-legacy
runs-on: ubuntu-latest
steps:
- name: Check build matrix status
if: ${{ needs.test-legacy.result != 'success' }}
run: exit 1
deploy:
runs-on: ubuntu-latest
needs: test
permissions:
contents: read
id-token: write
if: ${{ github.ref == 'refs/heads/main' }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- uses: actions/download-artifact@v3
with:
name: build
- run: tar -xf build.tar
- uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
aws-region: us-west-2
- name: Deploy
run: |
npm install
npm run starters:deploy -- --tag latest