blob: ce5b17fceb6c5f8c8003b1d506ae6e6d19da412f [file] [log] [blame]
# 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 8
uses: actions/setup-java@v3.4.1
with:
distribution: temurin
java-version: 8
- 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 8
uses: actions/setup-java@v3.4.1
with:
distribution: temurin
java-version: 8
- 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 8
uses: actions/setup-java@v3.4.1
with:
distribution: temurin
java-version: 8
- 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