Skip to content

build with public runners #21

build with public runners

build with public runners #21

Workflow file for this run

#
# 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: build
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
assemble:
timeout-minutes: 30
runs-on: ubuntu-latest
container:
image: tmio/tuweni-build:1.2
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Set up GPG key
run: gpg --import gradle/tuweni-test.asc
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
cache: gradle
- name: gradle assemble
run: gradle assemble compileTestJava compileIntegrationTestJava -x test -Psignatory.keyId=38F6C7215DD49C32 -Psigning.gnupg.keyName=38F6C7215DD49C32 -Psigning.gnupg.executable=gpg
env:
ENABLE_SIGNING: true
- name: Upload source distrib
uses: actions/upload-artifact@v3
with:
name: distsrc
path: dist/build/distributions/tuweni-src-*.zip
- name: Upload binary distrib
uses: actions/upload-artifact@v3
with:
name: snapshot.zip
path: dist/build/distributions/tuweni-bin-*.zip
- name: Cache classes
uses: actions/cache@v3
with:
path: "**/*.class"
key: ${{ runner.os }}-build-${{ github.sha }}
test:
timeout-minutes: 30
runs-on: ubuntu-latest
needs: assemble
container:
image: tmio/tuweni-build:1.2
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
cache: gradle
- name: Cache classes
uses: actions/cache@v3
with:
path: "**/*.class"
key: ${{ runner.os }}-build-${{ github.sha }}
- name: gradle test
run: gradle test
- name: Archive Junit Report
if: always()
uses: actions/upload-artifact@v3
with:
name: junit-report
path: '**/build/reports/tests/**'
retention-days: 5
check-src:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [Linux, Windows]
needs: assemble
steps:
- name: Download distsrc
uses: actions/download-artifact@v3
id: download
with:
name: distsrc
- name: Unzip source
if: ${{ matrix.os == 'Linux' }}
run: unzip -q -o - tuweni-src-*.zip -d distunzipped
- name: Unzip source
if: ${{ matrix.os == 'Windows' }}
run: Expand-Archive -Force -Path tuweni-src-*.zip -DestinationPath distunzipped
- name: Rename folder
run: mv distunzipped/tuweni-src-* distunzipped/tuweni
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: 17
distribution: temurin
cache: gradle
- name: Build from source
if: ${{ matrix.os == 'ubuntu-latest' }}
run: cd distunzipped/tuweni && ./gradlew assemble
- name: Build from source
if: ${{ matrix.os == 'windows-latest' }}
run: cd distunzipped/tuweni && ./gradlew.bat assemble
integration-tests:
timeout-minutes: 30
runs-on: ubuntu-latest
needs: assemble
container:
image: tmio/tuweni-build:1.2
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
cache: gradle
- name: Cache classes
uses: actions/cache@v3
with:
path: "**/*.class"
key: ${{ runner.os }}-build-${{ github.sha }}
- name: gradle integrationTest
run: gradle compileJava compileKotlin compileIntegrationTestJava compileIntegrationTestKotlin devp2p-eth:integrationTest devp2p-proxy:integrationTest devp2p:integrationTest dist:integrationTest dns-discovery:integrationTest eth-client-ui:integrationTest eth-client:integrationTest ethstats:integrationTest gossip:integrationTest hobbits-relayer:integrationTest hobbits:integrationTest plumtree-servlet:integrationTest plumtree-vertx:integrationTest rlpx:integrationTest
- name: Archive Junit Report
if: always()
uses: actions/upload-artifact@v3
with:
name: junit-report
path: '**/build/reports/tests/**'
retention-days: 5
referenceTests:
timeout-minutes: 30
needs: assemble
runs-on: ubuntu-latest
container:
image: tmio/tuweni-build:1.2
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
cache: gradle
- name: Cache classes
uses: actions/cache@v3
with:
path: "**/*.class"
key: ${{ runner.os }}-build-${{ github.sha }}
- name: gradle evm:referenceTest
run: gradle evm:referenceTest
- name: Archive Junit Report
if: always()
uses: actions/upload-artifact@v3
with:
name: junit-report
path: '**/build/reports/tests/**'
retention-days: 5