531a952df3
- Adds support for react-refresh through `@pmmwh/react-refresh-webpack-plugin`. Updated webpack config to support this. Means entire app is no longer refreshed on changes, only individual components, and state is maintained. - React refresh removes need for `google-apps-script-webpack-dev-server` package - In client code, support for server function autocomplete through use of gas-client 1.0.0. Requires certain files to be typescript .ts files - Remove need for "global" exports in main server file through updated gas-webpack-plugin
73 lines
2.7 KiB
YAML
73 lines
2.7 KiB
YAML
name: Local integration tests - Extended Version
|
|
|
|
on:
|
|
push:
|
|
|
|
jobs:
|
|
extended-integration-test:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [macos-10.15, macos-latest, windows-latest]
|
|
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
|
node-version: [12, 14, 16]
|
|
timeout-minutes: 11
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v2
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
- name: Install packages [npm ci]
|
|
run: npm ci
|
|
- name: Allow installing cert in Mac OS Big Sur
|
|
run: sudo security authorizationdb write com.apple.trust-settings.admin allow
|
|
if: matrix.os == 'macOS-latest'
|
|
- name: Install mkcert
|
|
run: brew install mkcert
|
|
if: runner.os == 'MacOS'
|
|
- name: Run mkcert setup [mkcert -install]
|
|
run: mkcert -install
|
|
if: runner.os == 'MacOS'
|
|
- name: Install https cert [npm setup:https]
|
|
run: npm run setup:https
|
|
if: runner.os == 'MacOS'
|
|
- run: |
|
|
mkdir certs
|
|
.\test\generate-cert.ps1
|
|
shell: pwsh
|
|
if: runner.os == 'Windows'
|
|
- name: Add .clasprc.json to home folder
|
|
run: echo "$DOT_CLASPRC" > $HOME/.clasprc.json
|
|
shell: bash
|
|
env:
|
|
DOT_CLASPRC: ${{ secrets.DOT_CLASPRC }}
|
|
- name: Add .clasp.json to project directory
|
|
run: echo "$DOT_CLASP" > .clasp.json
|
|
shell: bash
|
|
env:
|
|
DOT_CLASP: ${{ secrets.DOT_CLASP }}
|
|
- name: Add environment variables to .env file
|
|
run: |
|
|
echo "EMAIL=$TEST_ACCOUNT_EMAIL" > .env
|
|
echo "TEST_RECOVERY_EMAIL=$TEST_RECOVERY_EMAIL" >> .env
|
|
echo "PASSWORD=$TEST_ACCOUNT_PASSWORD" >> .env
|
|
echo "SHEET_URL=$TEST_SPREADSHEET_URL" >> .env
|
|
echo "S3_BUCKET_NAME=$S3_BUCKET_NAME" >> .env
|
|
echo "AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY" >> .env
|
|
echo "AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID" >> .env
|
|
shell: bash
|
|
env:
|
|
TEST_ACCOUNT_EMAIL: ${{ secrets.TEST_ACCOUNT_EMAIL }}
|
|
TEST_RECOVERY_EMAIL: ${{ secrets.TEST_RECOVERY_EMAIL }}
|
|
TEST_ACCOUNT_PASSWORD: ${{ secrets.TEST_ACCOUNT_PASSWORD }}
|
|
TEST_SPREADSHEET_URL: ${{ secrets.TEST_SPREADSHEET_URL }}
|
|
S3_BUCKET_NAME: ${{ secrets.S3_BUCKET_NAME }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
- name: Build and deploy dev setup [npm run deploy:dev]
|
|
run: npm run deploy:dev
|
|
- name: Run integration tests
|
|
run: npm run test:integration:extended
|
|
shell: bash
|