2021-09-11 09:51:51 +03:00
|
|
|
# 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:
|
2021-11-26 14:05:18 +03:00
|
|
|
branches: [ main, develop ]
|
2021-09-11 09:51:51 +03:00
|
|
|
pull_request:
|
2021-11-26 14:05:18 +03:00
|
|
|
branches: [ main, develop ]
|
2022-02-23 19:10:43 +03:00
|
|
|
create:
|
|
|
|
tags:
|
|
|
|
- v*
|
2021-09-11 09:51:51 +03:00
|
|
|
|
|
|
|
# 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
|
|
|
|
|
2022-01-25 11:25:20 +03:00
|
|
|
- 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') }}
|
|
|
|
|
2021-09-11 09:51:51 +03:00
|
|
|
# - 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
|
|
|
|
|
2022-02-08 12:06:06 +03:00
|
|
|
- name: Setting model version from git release...
|
|
|
|
run: node common/scripts/install-run-rush.js bump-model-version
|
|
|
|
|
2021-09-11 09:51:51 +03:00
|
|
|
- name: Building...
|
2022-01-25 11:25:20 +03:00
|
|
|
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
|
2022-02-22 12:09:13 +03:00
|
|
|
server-plugins
|
2022-01-25 11:25:20 +03:00
|
|
|
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
|
2022-02-22 12:09:13 +03:00
|
|
|
server-plugins
|
2022-01-25 11:25:20 +03:00
|
|
|
templates
|
|
|
|
tests
|
|
|
|
rush.json
|
|
|
|
.prettierrc
|
|
|
|
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}
|
|
|
|
restore-keys: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}
|
2021-09-11 10:19:59 +03:00
|
|
|
|
2021-09-11 11:07:50 +03:00
|
|
|
- name: Checking svelte sources...
|
2021-11-18 15:48:05 +03:00
|
|
|
run: node common/scripts/install-run-rush.js svelte-check
|
2022-02-10 12:04:18 +03:00
|
|
|
linting:
|
|
|
|
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
|
2022-02-22 12:09:13 +03:00
|
|
|
server-plugins
|
2022-02-10 12:04:18 +03:00
|
|
|
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: Linting...
|
|
|
|
run: node common/scripts/install-run-rush.js lint
|
2022-01-25 11:25:20 +03:00
|
|
|
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
|
2022-02-22 12:09:13 +03:00
|
|
|
server-plugins
|
2022-01-25 11:25:20 +03:00
|
|
|
templates
|
|
|
|
tests
|
|
|
|
rush.json
|
|
|
|
.prettierrc
|
|
|
|
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}
|
|
|
|
restore-keys: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}
|
2021-09-12 10:37:22 +03:00
|
|
|
|
2021-12-02 12:07:25 +03:00
|
|
|
- name: Start MongoDB
|
|
|
|
uses: supercharge/mongodb-github-action@1.3.0
|
|
|
|
with:
|
|
|
|
mongodb-version: 4.4
|
|
|
|
|
2021-09-12 10:37:22 +03:00
|
|
|
- name: Testing...
|
|
|
|
uses: paambaati/codeclimate-action@v2.7.5
|
|
|
|
env:
|
|
|
|
CC_TEST_REPORTER_ID: 346a83855d7124e9da8e6ec36a4fd01dc432f5cdc755eb28da7d9c44da9d1142
|
|
|
|
with:
|
2022-01-25 11:25:20 +03:00
|
|
|
coverageCommand: node common/scripts/install-run-rush.js test --verbose
|
2021-09-12 10:37:22 +03:00
|
|
|
coverageLocations: |
|
|
|
|
${{github.workspace}}/packages/*/coverage/lcov.info:lcov
|
2021-09-12 12:10:10 +03:00
|
|
|
${{github.workspace}}/server/*/coverage/lcov.info:lcov
|
2022-01-25 11:25:20 +03:00
|
|
|
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
|
2022-02-22 12:09:13 +03:00
|
|
|
server-plugins
|
2022-01-25 11:25:20 +03:00
|
|
|
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
|
2022-02-23 19:10:43 +03:00
|
|
|
path: ./tests/sanity/playwright-report/
|
|
|
|
docker-build:
|
|
|
|
if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
|
|
|
|
needs: [ build, uitest, test, linting, svelte-check ]
|
|
|
|
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
|
|
|
|
server-plugins
|
|
|
|
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: Setting model version from git release...
|
|
|
|
run: node common/scripts/install-run-rush.js bump-model-version
|
|
|
|
- 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: Login to Docker Hub
|
|
|
|
uses: docker/login-action@v1
|
|
|
|
with:
|
|
|
|
username: hardcoreeng
|
|
|
|
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
|
|
|
|
|
|
|
|
- name: Docker push staging
|
|
|
|
if: ${{ github.ref == 'refs/heads/main' }}
|
|
|
|
run: node common/scripts/install-run-rush.js docker:staging
|
|
|
|
- name: Docker push tag
|
|
|
|
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
|
|
|
run: |
|
|
|
|
echo Pushing release of tag ${{ github.ref }}
|
|
|
|
node common/scripts/install-run-rush.js docker:push
|