ipld-eth-server/.github/workflows/on-pr.yaml

123 lines
4.5 KiB
YAML
Raw Normal View History

name: Docker Build
on: [pull_request]
jobs:
build:
name: Run docker build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run docker build
run: make docker-build
test:
2021-04-19 11:24:58 +00:00
name: Run unit tests
env:
GOPATH: /tmp/go
2022-04-18 20:42:20 +00:00
BUILD_HOSTNAME: ${{ secrets.BUILD_HOSTNAME }}
BUILD_USERNAME: ${{ secrets.BUILD_USERNAME }}
BUILD_KEY: ${{ secrets.BUILD_KEY }}
BUILD_PASSWORD: ${{ secrets.BUILD_PASSWORD}}
strategy:
matrix:
go-version: [1.16.x, 1.17.x]
2022-04-18 20:20:41 +00:00
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
2022-04-18 20:20:41 +00:00
# Passed experience with GHA has taught me to store variables in files instead of passing them as variables.
2022-04-18 20:35:44 +00:00
- name: Output variables
2022-04-18 20:20:41 +00:00
run: |
2022-04-18 21:04:49 +00:00
echo $GITHUB_REPOSITORY > /tmp/git_repository
echo $GITHUB_HEAD_REF > /tmp/git_head_ref
2022-04-18 21:07:18 +00:00
echo ${{ env.BUILD_KEY }} | scp -i /dev/stdin /tmp/git_repository {{ env.BUILD_USERNAME }}@${{ env.BUILD_HOSTNAME }}:/tmp/git_repository
echo ${{ env.BUILD_KEY }} | scp -i /dev/stdin /tmp/git_head_ref {{ env.BUILD_USERNAME }}@${{ env.BUILD_HOSTNAME }}:/tmp/git_head_ref
echo ${{ env.BUILD_KEY }} | scp -i /dev/stdin ./github/workflows/run_unit_test.sh {{ env.BUILD_USERNAME }}@${{ env.BUILD_HOSTNAME }}:/tmp/run_unit_test.sh
2022-04-18 20:35:44 +00:00
2022-04-18 21:07:18 +00:00
#- name: SCP some files
# uses: appleboy/scp-action@master
# with:
# host: ${{ env.BUILD_HOSTNAME }}
# username: ${{ env.BUILD_USERNAME }}
# key: ${{ env.BUILD_KEY }}
# port: 22
# source: "/tmp/git_repository,/tmp/git_head_ref,./github/workflows/run_unit_test.sh"
# target: "/tmp/"
2022-04-18 20:20:41 +00:00
- name: Trigger Unit Test
2022-04-18 21:01:34 +00:00
uses: appleboy/ssh-action@master
with:
host: ${{ env.BUILD_HOSTNAME }}
username: ${{ env.BUILD_USERNAME }}
key: ${{ env.BUILD_KEY }}
port: 22
script: /tmp/run_unit_test.sh
2022-04-18 20:20:41 +00:00
- name: Get the logs and cat them
run: |
2022-04-18 21:01:34 +00:00
echo ${{ env.BUILD_KEY }} | scp -i /dev/stdin {{ env.BUILD_USERNAME }}@${{ env.BUILD_HOSTNAME }}:/tmp/test.log .
2022-04-18 20:20:41 +00:00
cat ./test.log
- name: Check Error Code
run: |
2022-04-18 21:01:34 +00:00
echo ${{ env.BUILD_KEY }} | scp -i /dev/stdin {{ env.BUILD_USERNAME }}@${{ env.BUILD_HOSTNAME }}:/tmp/return_test.txt .
2022-04-18 20:20:41 +00:00
[ $(cat ./return_test.txt) -eq 0 ]
integrationtest:
name: Run integration tests
env:
GOPATH: /tmp/go
DB_WRITE: true
ETH_FORWARD_ETH_CALLS: false
ETH_PROXY_ON_ERROR: false
ETH_HTTP_PATH: ""
strategy:
matrix:
go-version: [1.16.x]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Create GOPATH
run: mkdir -p /tmp/go
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go-version }}
- uses: actions/checkout@v2
- name: Run database
2021-10-09 12:00:33 +00:00
run: docker-compose -f docker-compose.test.yml -f docker-compose.yml up -d ipld-eth-db dapptools contract eth-server
- name: Test
run: |
while [ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:8081)" != "200" ]; do echo "waiting for ipld-eth-server..." && sleep 5; done && \
while [ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:8545)" != "200" ]; do echo "waiting for geth-statediff..." && sleep 5; done && \
make integrationtest
integrationtest_forwardethcalls:
2021-12-29 21:20:12 +00:00
name: Run integration tests for direct proxy fall-through of eth_calls
env:
GOPATH: /tmp/go
DB_WRITE: false
ETH_FORWARD_ETH_CALLS: true
ETH_PROXY_ON_ERROR: false
ETH_HTTP_PATH: "dapptools:8545"
strategy:
matrix:
2022-04-18 14:48:36 +00:00
go-version: [1.16.x]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Create GOPATH
run: mkdir -p /tmp/go
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go-version }}
- uses: actions/checkout@v2
- name: Run database
run: docker-compose -f docker-compose.test.yml -f docker-compose.yml up -d ipld-eth-db dapptools contract eth-server
- name: Test
run: |
while [ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:8081)" != "200" ]; do echo "waiting for ipld-eth-server..." && sleep 5; done && \
while [ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:8545)" != "200" ]; do echo "waiting for geth-statediff..." && sleep 5; done && \
make integrationtest