106 lines
3.0 KiB
YAML
106 lines
3.0 KiB
YAML
name: Squiggle packages check
|
|
|
|
on: [push]
|
|
|
|
jobs:
|
|
|
|
pre_check:
|
|
name: Precheck for skipping redundant jobs
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
should_skip_lang: ${{ steps.skip_lang_check.outputs.should_skip }}
|
|
should_skip_components: ${{ steps.skip_components_check.outputs.should_skip }}
|
|
should_skip_website: ${{ steps.skip_website_check.outputs.should_skip }}
|
|
steps:
|
|
- id: skip_lang_check
|
|
name: Check if the changes are about squiggle-lang src files
|
|
uses: fkirc/skip-duplicate-actions@master
|
|
with:
|
|
paths: '["packages/squiggle-lang/*"]'
|
|
- id: skip_components_check
|
|
name: Check if the changes are about components src files
|
|
uses: fkirc/skip-duplicate-actions@master
|
|
with:
|
|
paths: '["packages/components/*"]'
|
|
- id: skip_website_check
|
|
name: Check if the changes are about website src files
|
|
uses: fkirc/skip-duplicate-actions@master
|
|
with:
|
|
paths: '["packages/website/*"]'
|
|
|
|
lang-build-test:
|
|
name: Language build and test
|
|
runs-on: ubuntu-latest
|
|
needs: pre_check
|
|
if: ${{ needs.pre_check.outputs.should_skip_lang != 'true' || needs.pre_check.outputs.should_skip_components != 'true' }}
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
working-directory: packages/squiggle-lang
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install packages from monorepo level
|
|
run: cd ../../ && yarn
|
|
- name: Install packages
|
|
run: yarn
|
|
- name: Build rescript codebase
|
|
run: yarn build
|
|
- name: Run tests
|
|
run: yarn test
|
|
- name: Run tsc and webpack
|
|
run: yarn bundle
|
|
- name: Cache lang build and bundle outputs
|
|
uses: actions/cache@v3
|
|
id: lang-outputs
|
|
with:
|
|
path: |
|
|
lib
|
|
dist
|
|
node_modules
|
|
key: ${{ github.sha }}
|
|
|
|
components-build-test:
|
|
name: Components build and test
|
|
runs-on: ubuntu-latest
|
|
needs: [pre_check, lang-build-test]
|
|
if: ${{ needs.pre_check.outputs.should_skip_components != 'true' }}
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
working-directory: packages/components
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Gain lang build and bundle outputs from cache
|
|
uses: actions/cache@v3
|
|
id: lang-outputs
|
|
with:
|
|
path: |
|
|
lib
|
|
dist
|
|
node_modules
|
|
key: ${{ github.sha }}
|
|
- name: Install packages from monorepo level
|
|
run: cd ../../ && yarn
|
|
- name: Install packages for components package
|
|
run: yarn
|
|
- name: Run tsc and webpack
|
|
run: yarn bundle
|
|
- name: Build storybook
|
|
run: yarn build
|
|
|
|
website-dry-build:
|
|
name: Website dry build
|
|
runs-on: ubuntu-latest
|
|
needs: pre_check
|
|
if: ${{ needs.pre_check.outputs.should_skip_website != 'true' }}
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
working-directory: packages/website
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install packages
|
|
run: yarn
|
|
- name: Build website assets
|
|
run: yarn build
|