| # |
| # 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" |