feat: CNS-957-provider-jail #673
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Lava Build | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
test-consensus: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
cache-dependency-path: go.sum | |
# Setup Paths | |
- name: home | |
run: pwd && ls -l | |
- name: ls usr | |
run: ls -l /home/runner/work/lava/lava | |
- name: cp lava | |
run: cp -r ~/work/lava/lava ~/go/lava | |
- name: export PATH | |
run: export PATH=$PATH:/go:/go/bin:$(go env GOPATH)/bin:/usr/local:`pwd`:/home/runner/work/lava/lava/ | |
- name: export GOPATH | |
run: export GOPATH=$GOPATH:$(go env GOPATH):/go:/go/lava:/usr/local:`pwd` | |
- name: export LAVA | |
run: export LAVA=/home/runner/work/lava/lava | |
- name: go env | |
run: go env | |
- name: pwd | |
run: pwd | |
- name: tree | |
run: tree | |
- name: ls -l | |
run: ls -l | |
###################################################### | |
### Run Consensus unitests | |
###################################################### | |
- name: Lava Unit Tests | |
run: | | |
go install github.com/jstemmer/go-junit-report/v2@latest | |
go test -v ./utils/... | go-junit-report -iocopy -set-exit-code -out utils-report.xml | |
go test -v ./common/... | go-junit-report -iocopy -set-exit-code -out common-report.xml | |
go test -v ./x/pairing/... | go-junit-report -iocopy -set-exit-code -out pairing-report.xml | |
go test -v ./x/epochstorage/... | go-junit-report -iocopy -set-exit-code -out epochstorage-report.xml | |
go test -v ./x/spec/... | go-junit-report -iocopy -set-exit-code -out spec-report.xml | |
go test -v ./x/conflict/... | go-junit-report -iocopy -set-exit-code -out conflict-report.xml | |
go test -v ./x/plans/... | go-junit-report -iocopy -set-exit-code -out plans-report.xml | |
go test -v ./x/projects/... | go-junit-report -iocopy -set-exit-code -out projects-report.xml | |
go test -v ./x/subscription/... | go-junit-report -iocopy -set-exit-code -out subscription-report.xml | |
go test -v ./x/dualstaking/... | go-junit-report -iocopy -set-exit-code -out dualstaking-report.xml | |
go test -v ./x/fixationstore/... | go-junit-report -iocopy -set-exit-code -out fixationstore-report.xml | |
go test -v ./x/timerstore/... | go-junit-report -iocopy -set-exit-code -out timerstore-report.xml | |
go test -v ./x/downtime/... | go-junit-report -iocopy -set-exit-code -out downtime-report.xml | |
go test -v ./x/rewards/... | go-junit-report -iocopy -set-exit-code -out rewards-report.xml | |
- name: Upload Test Results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Test Results (Consensus) | |
path: "*-report.xml" | |
test-protocol: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
cache-dependency-path: go.sum | |
# Setup Paths | |
- name: home | |
run: pwd && ls -l | |
- name: ls usr | |
run: ls -l /home/runner/work/lava/lava | |
- name: cp lava | |
run: cp -r ~/work/lava/lava ~/go/lava | |
- name: export GOPATH | |
run: export GOPATH=$GOPATH:$(go env GOPATH):/go:/go/lava:/usr/local:`pwd` | |
- name: export PATH | |
run: export PATH=$PATH:/go:/go/bin:$(go env GOPATH)/bin:/usr/local:`pwd`:/home/runner/work/lava/lava/:$GOPATH/bin | |
- name: export LAVA | |
run: export LAVA=/home/runner/work/lava/lava | |
- name: go env | |
run: go env | |
- name: pwd | |
run: pwd | |
- name: tree | |
run: tree | |
- name: ls -l | |
run: ls -l | |
###################################################### | |
### Run protocol unitests | |
###################################################### | |
- name: Run Lava Protocol Tests | |
run: | | |
go install github.com/jstemmer/go-junit-report/v2@latest | |
go test -v ./protocol/... | go-junit-report -iocopy -set-exit-code -out protocol-report.xml | |
go test -v ./ecosystem/cache/... | go-junit-report -iocopy -set-exit-code -out cache-report.xml | |
- name: Upload Test Results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Test Results (Protocol) | |
path: "*-report.xml" | |
test-protocol-e2e: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
cache-dependency-path: go.sum | |
###################################################### | |
### Run Lava Protocol E2E Tests | |
###################################################### | |
- name: Run Lava Protocol E2E Tests -timeout 1200s | |
run: | | |
go install github.com/jstemmer/go-junit-report/v2@latest | |
go test ./testutil/e2e/ -run ^TestLavaProtocol$ -v -timeout 1200s | go-junit-report -iocopy -set-exit-code -out protocol-e2e-report.xml # 20mins | |
- name: Upload Test Results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Test Results (Protocol E2E) | |
path: "*-report.xml" | |
- name: tail -n 1000 Lavad Logs | |
if: always() | |
run: tail -n 1000 testutil/e2e/protocolLogs/00_StartLava.log | |
- name: Print all warnings and errors from lavad | |
continue-on-error: true | |
if: always() | |
run: cat testutil/e2e/protocolLogs/00_StartLava.log | grep 'WRN |ERR ' | |
- name: Stake Lava All Logs | |
if: always() | |
run: cat testutil/e2e/protocolLogs/01_stakeLava.log | |
- name: Stake Lava Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: cat testutil/e2e/protocolLogs/01_stakeLava_errors.log | |
- name: head -n 300 JSON Proxy Logs | |
if: always() | |
run: head -n 300 testutil/e2e/protocolLogs/02_jsonProxy.log | |
- name: tail -n 300 JSON Proxy Logs | |
if: always() | |
run: tail -n 300 testutil/e2e/protocolLogs/02_jsonProxy.log | |
- name: JSON Proxy Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: cat testutil/e2e/protocolLogs/02_jsonProxy_errors.log | |
- name: JSON Provider All Logs | |
if: always() | |
run: grep "" testutil/e2e/protocolLogs/03_EthProvider* --exclude="*errors*" | |
- name: JSON Provider Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: grep "" testutil/e2e/protocolLogs/03_EthProvider* --include="*errors*" | |
- name: JSON Consumer All Logs | |
if: always() | |
run: grep "" testutil/e2e/protocolLogs/04_jsonConsumer* --exclude="*errors*" | |
- name: JSON Consumer Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: grep "" testutil/e2e/protocolLogs/04_jsonConsumer* --include="*errors*" | |
- name: Lava Provider All Logs | |
if: always() | |
run: grep "" testutil/e2e/protocolLogs/05_LavaProvider* --exclude="*errors*" | |
- name: Lava Provider Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: grep "" testutil/e2e/protocolLogs/05_LavaProvider* --include="*errors*" | |
- name: Lava over Lava All Logs | |
if: always() | |
run: cat testutil/e2e/protocolLogs/07_lavaOverLava.log | |
- name: Lava over Lava Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: cat testutil/e2e/protocolLogs/07_lavaOverLava_errors.log | |
- name: RPCConsumer Consumer All Logs | |
if: always() | |
run: grep "" testutil/e2e/protocolLogs/06_RPCConsumer* --exclude="*errors*" | |
- name: RPCConsumer Consumer Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: grep "" testutil/e2e/protocolLogs/06_RPCConsumer* --include="*errors*" | |
test-sdk-e2e: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
cache-dependency-path: go.sum | |
# Install Node.js | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "21.2.0" | |
- name: Init the SDK | |
run: GOPATH=~/go ./scripts/init_sdk.sh -s | |
working-directory: ./ecosystem/lava-sdk | |
- name: Build | |
run: yarn build | |
working-directory: ./ecosystem/lava-sdk | |
- name: Install ts-node | |
run: npm install -g ts-node | |
- name: Install telescope dependencies | |
run: yarn; yarn e2e-setup | |
working-directory: ./ecosystem/lavajs | |
- name: Setup test environment | |
run: npm init --yes; npm install --save-dev @types/node | |
###################################################### | |
### Run Lava SDK E2E Tests | |
###################################################### | |
- name: Run Lava SDK E2E Tests -timeout 1200s | |
run: | | |
go install github.com/jstemmer/go-junit-report/v2@latest | |
go test ./testutil/e2e/ -run ^TestLavaSDK -v -timeout 1200s | go-junit-report -iocopy -set-exit-code -out sdk-e2e-report.xml # 20mins | |
- name: Upload Test Results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Test Results (SDK E2E) | |
path: "*-report.xml" | |
- name: tail -n 300 Lavad Logs | |
if: always() | |
run: tail -n 300 testutil/e2e/sdkLogs/00_StartLava.log | |
- name: Stake Lava All Logs | |
if: always() | |
run: cat testutil/e2e/sdkLogs/01_stakeLava.log | |
- name: Stake Lava Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: cat testutil/e2e/sdkLogs/01_stakeLava_errors.log | |
- name: head -n 300 JSON Proxy Logs | |
if: always() | |
run: head -n 300 testutil/e2e/sdkLogs/02_jsonProxy.log | |
- name: tail -n 300 JSON Proxy Logs | |
if: always() | |
run: tail -n 300 testutil/e2e/sdkLogs/02_jsonProxy.log | |
- name: JSON Proxy Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: cat testutil/e2e/sdkLogs/02_jsonProxy_errors.log | |
- name: JSON Provider All Logs | |
if: always() | |
run: grep "" testutil/e2e/sdkLogs/03_EthProvider* --exclude="*errors*" | |
- name: JSON Provider Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: grep "" testutil/e2e/sdkLogs/03_EthProvider* --include="*errors*" | |
- name: Lava Provider All Logs | |
if: always() | |
run: grep "" testutil/e2e/sdkLogs/05_LavaProvider* --exclude="*errors*" | |
- name: Lava Provider Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: grep "" testutil/e2e/sdkLogs/05_LavaProvider* --include="*errors*" | |
- name: Badge Server All Logs | |
if: always() | |
run: grep "" testutil/e2e/sdkLogs/01_BadgeServer* --exclude="*errors*" | |
- name: Badge Server Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: grep "" testutil/e2e/sdkLogs/01_BadgeServer* --include="*errors*" | |
- name: Lava SDK All Logs | |
if: always() | |
run: grep "" testutil/e2e/sdkLogs/01_sdkTest* --exclude="*errors*" | |
- name: Lava SDK Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: grep "" testutil/e2e/sdkLogs/01_sdkTest* --include="*errors*" | |
test-payment-e2e: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
cache-dependency-path: go.sum | |
###################################################### | |
### Run Lava Protocol Payment E2E Tests | |
###################################################### | |
- name: Run Lava Payment E2E Tests -timeout 1200s | |
run: | | |
go install github.com/jstemmer/go-junit-report/v2@latest | |
go test ./testutil/e2e/ -run ^TestLavaProtocolPayment$ -v -timeout 1200s | go-junit-report -iocopy -set-exit-code -out payment-e2e-report.xml # 20mins | |
- name: Upload Test Results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Test Results (Payment E2E) | |
path: "*-report.xml" | |
- name: tail -n 300 Lavad Logs | |
if: always() | |
run: tail -n 300 testutil/e2e/protocolLogs/00_StartLava.log | |
- name: Stake Lava All Logs | |
if: always() | |
run: cat testutil/e2e/protocolLogs/01_stakeLavaForPayment.log | |
- name: Stake Lava Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: cat testutil/e2e/protocolLogs/01_stakeLava_errors.log | |
- name: Lava Provider All Logs | |
if: always() | |
run: grep "" testutil/e2e/protocolLogs/05_LavaProvider* --exclude="*errors*" | |
- name: Lava Provider Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: grep "" testutil/e2e/protocolLogs/05_LavaProvider* --include="*errors*" | |
- name: RPCConsumer Consumer All Logs | |
if: always() | |
run: grep "" testutil/e2e/protocolLogs/06_RPCConsumer* --exclude="*errors*" | |
- name: RPCConsumer Consumer Error Only Logs | |
if: always() | |
continue-on-error: true | |
run: grep "" testutil/e2e/protocolLogs/06_RPCConsumer* --include="*errors*" | |
report-tests-results: | |
runs-on: ubuntu-latest | |
needs: [test-consensus, test-protocol, test-protocol-e2e, test-sdk-e2e, test-payment-e2e] | |
if: always() | |
steps: | |
- name: Download Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: artifacts | |
- name: Publish Test Results | |
uses: EnricoMi/publish-unit-test-result-action@v2 | |
with: | |
files: "artifacts/**/*.xml" | |
build_and_package: | |
name: ${{ matrix.binary }}-${{ matrix.targetos }}-${{ matrix.arch }} | |
needs: [test-consensus, test-protocol] | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
arch: [amd64, arm64] | |
targetos: [darwin, linux] | |
binary: [lavad, lavap, lavavisor] | |
include: | |
- targetos: darwin | |
arch: arm64 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
cache-dependency-path: go.sum | |
env: | |
GOOS: ${{ matrix.targetos }} | |
GOARCH: ${{ matrix.arch }} | |
- name: Download Dependencies | |
run: go mod download | |
- name: Build ${{ matrix.binary }} | |
run: | | |
GOWRK=off go build -o out/${{ matrix.binary }} cmd/${{ matrix.binary }}/main.go | |
- name: Upload Lava Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.binary }}-${{ matrix.targetos }}-${{ matrix.arch }} | |
path: out/${{ matrix.binary }} |