Skip to content

Cellar.sol v2.5 support #632

Cellar.sol v2.5 support

Cellar.sol v2.5 support #632

name: Integration tests
on:
push:
branches:
- main
tags:
- 'v*.*.*'
pull_request:
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}-steward
HARDHAT_IMAGE: ghcr.io/peggyjv/steward-hardhat
ORCHESTRATOR_IMAGE_NAME: ghcr.io/peggyjv/gravity-bridge-orchestrator:main
SOMMELIER_IMAGE: ghcr.io/peggyjv/sommelier-sommelier:latest
jobs:
hardhat-build:
permissions:
contents: write
packages: write
runs-on: ubuntu-20.04
steps:
- name: checkout
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v2
id: docker-cache
with:
path: /tmp/.buildx-cache
# Key is named differently to avoid collision
key: ${{ runner.os }}-multi-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-multi-buildx
- name: container-login
uses: docker/login-action@v1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: labels
id: meta
uses: docker/metadata-action@v3
with:
images: ${{ env.HARDHAT_IMAGE }}
- name: build-and-push
uses: docker/build-push-action@v2
with:
context: integration_tests/ethereum
file: integration_tests/ethereum/Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
builder: ${{ steps.buildx.outputs.name }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new
- name: Move Docker cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
steward-build:
permissions:
contents: write
packages: write
runs-on: ubuntu-20.04
steps:
- name: checkout
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v2
id: docker-cache
with:
path: /tmp/.buildx-cache
# Key is named differently to avoid collision
key: ${{ runner.os }}-multi-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-multi-buildx
- name: container-login
uses: docker/login-action@v1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: labels
id: meta
uses: docker/metadata-action@v3
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: build-and-push
uses: docker/build-push-action@v2
with:
file: Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
builder: ${{ steps.buildx.outputs.name }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new
- name: Move Docker cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
integration-tests:
permissions:
contents: write
packages: write
environment: CI
runs-on: ubuntu-20.04
needs: [ steward-build, hardhat-build ]
strategy:
fail-fast: false
matrix:
test_type: [ "AaveV2Stablecoin", "CellarV1", "CellarV2", "CellarV2_2" ]
steps:
- name: Set up Go 1.15
uses: actions/setup-go@v2
with:
go-version: 1.15
- name: checkout
uses: actions/checkout@v2
- name: go-cache
uses: actions/cache@v2
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: container-login
uses: docker/login-action@v1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: docker sommelier metadata
id: meta-sommelier
uses: docker/metadata-action@v3
with:
images: ${{ env.SOMMELIER_IMAGE }}
- name: docker hardhat metadata
id: meta-hardhat
uses: docker/metadata-action@v3
with:
images: ${{ env.HARDHAT_IMAGE }}
- name: docker steward metadata
id: meta-steward
uses: docker/metadata-action@v3
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: pull sommelier image
run: docker pull ${{ env.SOMMELIER_IMAGE }}
- name: rename sommelier image
run: docker tag ${{ env.SOMMELIER_IMAGE }} sommelier:prebuilt
- name: pull hardhat image
run: docker pull ${{ steps.meta-hardhat.outputs.tags }}
- name: rename hardhat image
run: docker tag ${{ steps.meta-hardhat.outputs.tags }} ethereum:prebuilt
- name: pull orchestrator image
run: docker pull ${{ env.ORCHESTRATOR_IMAGE_NAME }}
- name: rename orchestrator image
run: docker tag ${{ env.ORCHESTRATOR_IMAGE_NAME }} orchestrator:prebuilt
- name: pull steward image
run: docker pull ${{ steps.meta-steward.outputs.tags }}
- name: rename steward image
run: docker tag ${{ steps.meta-steward.outputs.tags }} steward:prebuilt
- name: clean the slate
run: make e2e_clean_slate
- name: build go test binary
run: cd integration_tests && go test -c
- name: Run end to end test
run: ./integration_tests/integration_tests.test -test.failfast -test.v -test.run IntegrationTestSuite -testify.m Test${{ matrix.test_type }}
env:
E2E_SKIP_CLEANUP: true
- name: Clean up docker images
run: ./clean_slate.sh
- name: Remove testnet tempdir
run: sudo rm -rf somm-e2e-testnet*