Skip to content

test: angular, react, and vue apps are tested on CI #262

test: angular, react, and vue apps are tested on CI

test: angular, react, and vue apps are tested on CI #262

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 }}
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