blob: 12ae8c8f86faa7f9c912f9132398c16edc0d86ba [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: Daffodil CI
on: [push, pull_request]
jobs:
test:
name: Java ${{ matrix.java_version }}, Scala ${{ matrix.scala_version }}, ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
java_version: [ 8, 11, 15 ]
scala_version: [ 2.12.11 ]
os: [ 'ubuntu-latest', 'windows-latest' ]
env:
SBT: sbt -J-Xms1024m -J-Xmx5120m -J-XX:ReservedCodeCacheSize=512m -J-XX:MaxMetaspaceSize=1024m ++${{ matrix.scala_version }} coverage
SBTNOCOV: sbt -J-Xms1024m -J-Xmx5120m -J-XX:ReservedCodeCacheSize=512m -J-XX:MaxMetaspaceSize=1024m ++${{ matrix.scala_version }}
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
steps:
############################################################
# Setup
############################################################
- name: Checkout Repository
uses: actions/checkout@v2.0.0
- name: Install Java
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java_version }}
############################################################
# Build & Package
############################################################
- name: Compile
run: $SBT compile test:compile it:compile
- name: Build Documentation
run: $SBTNOCOV unidoc
- name: Package Zip & Tar
run: $SBTNOCOV daffodil-cli/universal:packageBin daffodil-cli/universal:packageZipTarball
- name: Package RPM
run: $SBTNOCOV daffodil-cli/rpm:packageBin
if: runner.os == 'Linux'
############################################################
# Test
############################################################
- name: Run Rat Check
run: $SBTNOCOV ratCheck || (cat target/rat.txt; exit 1)
- name: Run Unit Tests
run: $SBT test
- name: Run Integration Tests
run: $SBT it:test
- name: Generate Coverage Report
run: $SBT coverageAggregate
- name: Upload Coverage Report
uses: codecov/codecov-action@v1