Skip to content

test: run unit and e2e tests for starter apps #239

test: run unit and e2e tests for starter apps

test: run unit and e2e tests for starter apps #239

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 do not need to explicitly test angular-standalone, vue-vite, react-vite
# because the test command finds apps that start with
# the framework string. As a result "vue" will map
# to both "vue" and "vue-vite" apps. Similarly,
# "react" will map to both "react" and "react-vite" apps.
framework: ['angular', 'vue', 'react']
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 }}
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 }}
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