Skip to content

fix(react,vue): vite compiles successfully (#1848) #412

fix(react,vue): vite compiles successfully (#1848)

fix(react,vue): vite compiles successfully (#1848) #412

Workflow file for this run

name: Build & Test
on:
push:
branches:
- main
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/setup-node@v4
with:
node-version: 20
- 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@v4
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@v4
- uses: actions/download-artifact@v4
with:
name: build
- run: tar -xf build.tar
- uses: actions/setup-node@v4
with:
node-version: 20
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://gh.neting.ccmunity/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@v4
- uses: actions/download-artifact@v4
with:
name: build
- run: tar -xf build.tar
- uses: actions/setup-node@v4
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://gh.neting.ccmunity/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: [verify-test, verify-test-legacy]
permissions:
contents: read
id-token: write
if: ${{ github.ref == 'refs/heads/main' }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- uses: actions/download-artifact@v4
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