Skip to content

Add Generate Models button to enable autogeneration of classes, associations, and mappings feature for relational databases #6912

Add Generate Models button to enable autogeneration of classes, associations, and mappings feature for relational databases

Add Generate Models button to enable autogeneration of classes, associations, and mappings feature for relational databases #6912

Workflow file for this run

name: Test
on:
schedule:
- cron: '0 0 * * *' # runs every day on default/base branch
push:
branches:
- master
- 'release/**'
pull_request:
branches:
- '**'
# Cancel running jobs from previous pipelines of the same workflow on PR to save resource when commits are pushed quickly
# NOTE: we don't want this behavior on default branch
# See https://stackoverflow.com/a/68422069
concurrency:
group: ${{ github.ref == 'refs/heads/master' && format('ci-default-branch-{0}-{1}', github.sha, github.workflow) || format('ci-pr-{0}-{1}', github.ref, github.workflow) }}
cancel-in-progress: true
jobs:
integration-and-unit-test:
name: Run Unit & Integration Tests
# Disable usage of large runner on default branch of forks
# NOTE: temporarily disable large runners
# runs-on: ${{ (github.repository != 'finos/legend-studio' && github.ref == 'refs/heads/master') && 'ubuntu-latest' || 'ubuntu-latest-4-cores' }}
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/[email protected]
with:
fetch-depth: 2 # recommended for improving relevancy of test coverage reporting
- name: Get Yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
- name: Setup Yarn cache
uses: actions/[email protected]
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: ${{ runner.os }}-yarn-
- name: Setup Node
uses: actions/[email protected]
with:
node-version: 16
- name: Install dependencies
run: yarn
- name: Build
run: yarn build
# NOTE: when we start to have more and more test, it might be a good idea to start sharding them
# See https://jestjs.io/docs/cli#--shard
# See https://github.com/microsoft/accessibility-insights-web/pull/5343
# The idea is to split the test suite into multiple shards then recombine them and upload the coverage
# to codecov (codecov should take care of merging the result)
# See https://about.codecov.io/product/feature/report-merging/
- name: Test
run: yarn test:ci
- name: Upload test coverage report
uses: codecov/[email protected]
with:
directory: ./build/coverage
# This job will run the grammar roundtrip test suite in Studio, which requires engine
# backend for the grammar parser/composer.
run-manual-tests:
name: Run Engine Roundtrip Tests
# Disable usage of large runner on default branch of forks
# NOTE: temporarily disable large runners
# runs-on: ${{ (github.repository != 'finos/legend-studio' && github.ref == 'refs/heads/master') && 'ubuntu-latest' || 'ubuntu-latest-4-cores' }}
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Get Yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
- name: Setup Yarn cache
uses: actions/[email protected]
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: ${{ runner.os }}-yarn-
- name: Setup Node
uses: actions/[email protected]
with:
node-version: 16
- name: Run engine server
working-directory: ./fixtures/legend-docker-setup/grammar-test-setup
run: docker compose --file=grammar-test-setup-docker-compose.yml up --detach
- name: Install dependencies
run: yarn
- name: Test
# TODO: we should consider building only relevant workspaces to reduce build time
run: yarn build && yarn workspace @finos/legend-manual-tests test:manual:ci
- name: Shut down engine server
working-directory: ./fixtures/legend-docker-setup/grammar-test-setup
run: docker compose --file=grammar-test-setup-docker-compose.yml down