Skip to content

feat(local-ic): stream interaction and container logs #1075

feat(local-ic): stream interaction and container logs

feat(local-ic): stream interaction and container logs #1075

name: Local Interchain
on:
pull_request:
# Ensures that only a single workflow per PR will run at a time. Cancels in-progress jobs if new commit is pushed.
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
GO_VERSION: 1.21
NODE_JS_VERSION: v21.x
jobs:
build:
name: build
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./local-interchain
steps:
- name: Checkout interchaintest
uses: actions/checkout@v4
- name: Setup go ${{ env.GO_VERSION }}
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- name: build local-interchain
run: go mod tidy && make install
- name: Upload localic artifact
uses: actions/upload-artifact@v3
with:
name: local-ic
path: ~/go/bin/local-ic
bash-e2e:
name: bash
needs: build
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./local-interchain
strategy:
fail-fast: false
steps:
- name: checkout chain
uses: actions/checkout@v4
- name: Download Tarball Artifact
uses: actions/download-artifact@v3
with:
name: local-ic
path: /tmp
- name: Make local-ic executable
run: chmod +x /tmp/local-ic
- name: Start background ibc local-interchain
run: /tmp/local-ic start juno_ibc --api-port 8080 &
- name: Run Bash Script
run: |
cd bash
bash ./test.bash
- name: Cleanup
run: killall local-ic && exit 0
rust-e2e:
name: rust
needs: build
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./local-interchain
strategy:
fail-fast: false
steps:
- name: checkout chain
uses: actions/checkout@v4
- name: Install latest toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
target: wasm32-unknown-unknown
override: true
- name: Download Tarball Artifact
uses: actions/download-artifact@v3
with:
name: local-ic
path: /tmp
- name: Make local-ic executable
run: chmod +x /tmp/local-ic
- name: Start background ibc local-interchain
run: /tmp/local-ic start juno_ibc --api-port 8080 &
- name: Run Rust Script
run: cd rust && cargo run --package localic-bin --bin localic-bin
- name: Cleanup
run: killall local-ic && exit 0
python-e2e:
name: python
needs: build
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./local-interchain
strategy:
matrix:
test:
- ["api_test", 8081]
- ["ibc_contract", 8082]
fail-fast: false
steps:
- name: checkout chain
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- run: pip install -r python/requirements.txt --break-system-packages
- name: Download Tarball Artifact
uses: actions/download-artifact@v3
with:
name: local-ic
path: /tmp
- name: Make local-ic executable
run: chmod +x /tmp/local-ic
- name: Start background ibc local-interchain
run: /tmp/local-ic start juno_ibc --api-port ${{ matrix.test[1] }} &
- name: Run Python Script
run: python3 ./python/${{ matrix.test[0] }}.py --api-port ${{ matrix.test[1] }}
- name: Cleanup
run: killall local-ic && exit 0
typescript-e2e:
name: typescript
needs: build
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./local-interchain
steps:
- name: checkout chain
uses: actions/checkout@v4
- name: Use Node.js ${{ env.NODE_JS_VERSION }}
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_JS_VERSION }}
- name: npm install
run: cd ts && npm ci
- name: Download Tarball Artifact
uses: actions/download-artifact@v3
with:
name: local-ic
path: /tmp
- name: Make local-ic executable
run: chmod +x /tmp/local-ic
- name: Start background juno_ibc
run: /tmp/local-ic start juno_ibc &
- name: Run TS Script
run: cd ts && npm run start
- name: Cleanup
run: killall local-ic && exit 0