| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| --- |
| name: CI |
| on: |
| push: |
| branches-ignore: [ 'dependabot/**' ] |
| pull_request: |
| types: [opened, synchronize, reopened] |
| |
| jobs: |
| single-commit: |
| name: Single Commit Pull Request |
| if: github.event_name == 'pull_request' |
| runs-on: ubuntu-20.04 |
| steps: |
| - name: Check Single Commit |
| uses: actions/github-script@v6.1.0 |
| with: |
| script: | |
| const commits = await github.rest.pulls.listCommits({ |
| ...context.repo, |
| pull_number: context.issue.number, |
| }); |
| core.info("Number of commits in this pull request: " + commits.data.length); |
| if (commits.data.length > 1) { |
| core.setFailed("If approved with two +1's, squash this pull request into one commit"); |
| } |
| |
| code-format: |
| name: TypeScript/Scala Formatting |
| runs-on: ubuntu-20.04 |
| defaults: |
| run: |
| shell: bash |
| env: |
| SBT: sbt -J-Xms1024m -J-Xmx5120m -J-XX:ReservedCodeCacheSize=512m -J-XX:MaxMetaspaceSize=1024m ++2.12.15 |
| steps: |
| - uses: actions/checkout@v3.0.2 |
| - name: Setup Node 16 |
| uses: actions/setup-node@v3.3.0 |
| with: |
| node-version: '16' |
| - name: Setup Java 11 |
| uses: actions/setup-java@v3.4.1 |
| with: |
| distribution: temurin |
| java-version: 11 |
| - run: $SBT scalafmtCheck |
| - run: $SBT scalafmtSbtCheck |
| - run: yarn install |
| - run: yarn lint |
| |
| rat-check: |
| name: Rat Check |
| runs-on: ubuntu-20.04 |
| defaults: |
| run: |
| shell: bash |
| env: |
| SBT: sbt -J-Xms1024m -J-Xmx5120m -J-XX:ReservedCodeCacheSize=512m -J-XX:MaxMetaspaceSize=1024m ++2.12.15 |
| steps: |
| - name: Setup Java 11 |
| uses: actions/setup-java@v3.4.1 |
| with: |
| distribution: temurin |
| java-version: 11 |
| - name: Check out Repository |
| uses: actions/checkout@v3.0.2 |
| with: |
| fetch-depth: 0 |
| - name: Run Rat Check |
| run: $SBT ratCheck || (cat target/rat.txt; exit 1) |
| |
| build-test-package: |
| name: Build, Test, and Package |
| strategy: |
| matrix: |
| os: [macos-11, ubuntu-20.04, windows-2019] |
| node: [ '14', '16' ] |
| runs-on: ${{ matrix.os }} |
| defaults: |
| run: |
| shell: bash |
| env: |
| SBT: sbt -J-Xms1024m -J-Xmx5120m -J-XX:ReservedCodeCacheSize=512m -J-XX:MaxMetaspaceSize=1024m ++2.12.15 |
| steps: |
| - name: Setup Java 11 |
| uses: actions/setup-java@v3.4.1 |
| with: |
| distribution: temurin |
| java-version: 11 |
| - uses: actions/checkout@v3.0.2 |
| - name: Install Node.js |
| uses: actions/setup-node@v3.3.0 |
| with: |
| node-version: ${{ matrix.node}} |
| - run: $SBT compile # used to initialize sbt, if not done sbt universal:packageBin ran by yarn package times out -- windows only |
| if: runner.os == 'Windows' |
| - run: yarn install |
| - run: yarn package |
| - run: xvfb-run -a yarn test |
| if: runner.os == 'Linux' |
| - run: yarn test |
| if: runner.os != 'Linux' |
| - run: $SBT test |