platform/.github/workflows/main.yml
Andrey Sobolev fb290699be
Sanity testing
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2022-01-27 11:36:46 +07:00

202 lines
5.8 KiB
YAML

# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ./common/temp
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }}
# - name: Checking for mis-matching dependencies...
# run: node common/scripts/install-run-rush.js check
# - name: Checking for missing change logs...
# run: node common/scripts/install-run-rush.js change -v
- name: Installing...
run: node common/scripts/install-run-rush.js install
- name: Building...
run: node common/scripts/install-run-rush.js rebuild -l --verbose
- name: Cache build results
uses: actions/cache@v2
env:
cache-name: cache-build-results
with:
path: |
cloud
common
deploy
dev
models
packages
plugins
pods
server
templates
tests
rush.json
.prettierrc
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}
restore-keys: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}
svelte-check:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Cache build results
uses: actions/cache@v2
env:
cache-name: cache-build-results
with:
path: |
cloud
common
deploy
dev
models
packages
plugins
pods
server
templates
tests
rush.json
.prettierrc
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}
restore-keys: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}
- name: Checking svelte sources...
run: node common/scripts/install-run-rush.js svelte-check
test:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Cache build results
uses: actions/cache@v2
env:
cache-name: cache-build-results
with:
path: |
cloud
common
deploy
dev
models
packages
plugins
pods
server
templates
tests
rush.json
.prettierrc
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}
restore-keys: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}
- name: Start MongoDB
uses: supercharge/mongodb-github-action@1.3.0
with:
mongodb-version: 4.4
- name: Testing...
uses: paambaati/codeclimate-action@v2.7.5
env:
CC_TEST_REPORTER_ID: 346a83855d7124e9da8e6ec36a4fd01dc432f5cdc755eb28da7d9c44da9d1142
with:
coverageCommand: node common/scripts/install-run-rush.js test --verbose
coverageLocations: |
${{github.workspace}}/packages/*/coverage/lcov.info:lcov
${{github.workspace}}/server/*/coverage/lcov.info:lcov
uitest:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Cache build results
uses: actions/cache@v2
env:
cache-name: cache-build-results
with:
path: |
cloud
common
deploy
dev
models
packages
plugins
pods
server
templates
tests
rush.json
.prettierrc
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}
restore-keys: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}
- name: Installing...
run: node common/scripts/install-run-rush.js install
- name: Bundle
run: node common/scripts/install-run-rush.js bundle
- name: Docker build
run: node common/scripts/install-run-rush.js docker:build
- name: Prepare server
run: |
cd ./tests
./prepare.sh
- name: Install Playwright
run: |
cd ./tests/sanity
node ../../common/scripts/install-run-rushx.js ci
- name: Run UI tests
run: |
cd ./tests/sanity
node ../../common/scripts/install-run-rushx.js uitest
- name: Upload test results
if: always()
uses: actions/upload-artifact@v2
with:
name: playwright-results
path: ./tests/sanity/playwright-report/