name: Squiggle packages check on: # push: # Delete this line if there becomes a scarcity of build minutes. pull_request: branches: - master - staging 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-lint: name: Language lint runs-on: ubuntu-latest needs: pre_check if: ${{ !needs.pre_check.outputs.should_skip_lang }} defaults: run: shell: bash working-directory: packages/squiggle-lang steps: - uses: actions/checkout@v2 - name: Check lint run: yarn lint lang-build-test: name: Language build and test runs-on: ubuntu-latest needs: pre_check if: ${{ needs.pre_check.outputs.should_skip_lang != 'true'}} defaults: run: shell: bash working-directory: packages/squiggle-lang steps: - uses: actions/checkout@v2 - name: Install dependencies from monorepo level run: cd ../../ && yarn - name: Build rescript codebase run: yarn build - name: Run tests run: yarn test - name: Run webpack run: yarn bundle components-build-test: name: Components build and test runs-on: ubuntu-latest needs: pre_check if: ${{ (needs.pre_check.outputs.should_skip_components != 'true') || (needs.pre_check.outputs.should_skip_lang != 'true') }} defaults: run: shell: bash working-directory: packages/components steps: - uses: actions/checkout@v2 - name: Install dependencies from monorepo level run: cd ../../ && yarn - name: Build rescript codebase in squiggle-lang run: cd ../squiggle-lang && yarn build - name: Run webpack run: yarn bundle - name: Build storybook run: yarn build website-build: name: Website build runs-on: ubuntu-latest needs: pre_check if: ${{ !(needs.pre_check.outputs.should_skip_website && needs.pre_check.outputs.should_skip_lang && needs.pre_check.outputs.should_skip_components) }} defaults: run: shell: bash working-directory: packages/website steps: - uses: actions/checkout@v2 - name: Install dependencies from monorepo level run: cd ../../ && yarn - name: Build rescript in squiggle-lang run: cd ../squiggle-lang && yarn build - name: Build website assets run: yarn build