blob: 1ee27b35eaa3a1e98fdc24bee0d133a960e24795 [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: master pr build
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
checks:
runs-on: ubuntu-latest
container:
image: tmio/tuweni-build:1.1
steps:
- uses: actions/checkout@v1
with:
submodules: true
- name: gradle checks
uses: eskatos/gradle-command-action@v1
with:
gradle-version: 6.3
arguments: rat spotlessCheck checkLicenses
# Disable for now
# - name: Collect JUnit tests
# uses: danger/danger-js@9.1.8
assemble:
runs-on: ubuntu-latest
container:
image: tmio/tuweni-build:1.1
steps:
- uses: actions/checkout@v1
with:
submodules: true
- name: Cache Gradle packages
uses: actions/cache@v1
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Cache Maven Repository
uses: actions/cache@v1
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/dependency-versions.gradle') }}
restore-keys: ${{ runner.os }}-m2
- name: gradle assemble
uses: eskatos/gradle-command-action@v1
with:
gradle-version: 6.3
arguments: assemble -x test
- name: Upload build
uses: actions/upload-artifact@v1
with:
name: Libs
path: build/libs
package-checks:
runs-on: ubuntu-latest
container:
image: tmio/tuweni-build:1.1
steps:
- uses: actions/checkout@v1
with:
submodules: true
- name: Set up GPG key
run: gpg --import gradle/tuweni-test.asc
- name: Cache Maven Repository
uses: actions/cache@v1
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/dependency-versions.gradle') }}
restore-keys: ${{ runner.os }}-m2
- name: gradle assemble
uses: eskatos/gradle-command-action@v1
env:
ENABLE_SIGNING: true
with:
gradle-version: 6.3
arguments: assemble -x test -Psignatory.keyId=38F6C7215DD49C32 -Psigning.gnupg.keyName=38F6C7215DD49C32 -Psigning.gnupg.executable=gpg
- name: Unzip source
run: unzip -o dist/build/distributions/tuweni-src-*.zip -d distsrc
- name: Build from source
run: cd distsrc/$(ls distsrc) && gradle setup && ./gradlew assemble
test:
runs-on: ubuntu-latest
container:
image: tmio/tuweni-build:1.1
steps:
- uses: actions/checkout@v1
with:
submodules: true
- name: Cache Gradle packages
uses: actions/cache@v1
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Cache Maven Repository
uses: actions/cache@v1
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/dependency-versions.gradle') }}
restore-keys: ${{ runner.os }}-m2
- name: gradle test
uses: eskatos/gradle-command-action@v1
with:
gradle-version: 6.3
arguments: test jacocoTestReport
- name: Upload test reports
uses: actions/upload-artifact@v2
with:
name: Reports
path: "**/build/reports"
- name: Upload to Codecov
uses: codecov/codecov-action@v1
integration-tests:
runs-on: ubuntu-latest
container:
image: tmio/tuweni-build:1.1
steps:
- uses: actions/checkout@v1
with:
submodules: true
- name: Cache Gradle packages
uses: actions/cache@v1
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Cache Maven Repository
uses: actions/cache@v1
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/dependency-versions.gradle') }}
restore-keys: ${{ runner.os }}-m2
- name: gradle integrationTest
uses: eskatos/gradle-command-action@v1
with:
gradle-version: 6.3
arguments: integrationTest
- name: Upload test reports
uses: actions/upload-artifact@v2
with:
name: Reports
path: "**/build/reports"