feat: batching #217
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: CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
env: | |
GO_VERSION: 1.22.3 | |
jobs: | |
ci-lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: ./.github/actions/setup-go | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install actionlint | |
run: go install github.com/rhysd/actionlint/cmd/actionlint@latest | |
- name: Run actionlint | |
run: actionlint -shellcheck= -pyflakes= | |
setup-params: | |
runs-on: [self-hosted, docker] | |
needs: [ci-lint] | |
steps: | |
- name: Fetch parameters | |
run: lotus fetch-params 8388608 | |
shell: bash | |
build-mainnet: | |
runs-on: ubuntu-latest | |
needs: [ci-lint] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: ./.github/actions/setup-go | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install Dependencies | |
uses: ./.github/actions/install-deps | |
- name: Install FFI | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: | | |
make deps | |
shell: bash | |
- name: Build Go | |
run: make build | |
shell: bash | |
build-calibnet: | |
runs-on: ubuntu-latest | |
needs: [ ci-lint ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: ./.github/actions/setup-go | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install Dependencies | |
uses: ./.github/actions/install-deps | |
- name: Install FFI | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: | | |
make deps | |
shell: bash | |
- name: Build Go | |
run: make build | |
shell: bash | |
build-debug: | |
runs-on: ubuntu-latest | |
needs: [ ci-lint ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: ./.github/actions/setup-go | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install Dependencies | |
uses: ./.github/actions/install-deps | |
- name: Install FFI | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: | | |
make deps | |
shell: bash | |
- name: Build Go | |
run: make build | |
shell: bash | |
build-2k: | |
runs-on: ubuntu-latest | |
needs: [ ci-lint ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: ./.github/actions/setup-go | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install Dependencies | |
uses: ./.github/actions/install-deps | |
- name: Install FFI | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: | | |
make deps | |
shell: bash | |
- name: Build Go | |
run: make build | |
shell: bash | |
build-forest: | |
runs-on: ubuntu-latest | |
needs: [ ci-lint ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: ./.github/actions/setup-go | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install Dependencies | |
uses: ./.github/actions/install-deps | |
- name: Install FFI | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: | | |
make deps | |
shell: bash | |
- name: Build Forest | |
run: make forest-test | |
shell: bash | |
test: | |
runs-on: [self-hosted, docker] | |
needs: [setup-params] | |
env: | |
CONTAINER_NAME: yugabyte-${{ github.run_id }}-${{ matrix.test-suite.name }} | |
strategy: | |
fail-fast: false # Continue running even if one test fails | |
matrix: | |
test-suite: | |
- name: test-itest-curio | |
target: "./itests/curio_test.go" | |
- name: test-all | |
target: "`go list ./... | grep -v curio/itests`" | |
- name: test-itest-harmonyDB | |
target: "./itests/harmonydb_test.go" | |
- name: test-itest-alertnow | |
target: "./itests/alertnow_test.go" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: ./.github/actions/setup-go | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install Dependencies | |
uses: ./.github/actions/install-deps | |
- name: Install FFI | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: | | |
make deps | |
shell: bash | |
- name: Start YugabyteDB container with dynamic ports | |
id: start-yugabyte | |
run: | | |
# Start YugabyteDB container with dynamic port mapping for PostgreSQL and YCQL | |
docker run --rm --name ${{ env.CONTAINER_NAME }} -d yugabytedb/yugabyte:2024.1.2.0-b77 bin/yugabyted start --daemon=false | |
- name: Wait for YugabyteDB to start | |
run: | | |
while true; do | |
status=$(docker exec ${{ env.CONTAINER_NAME }} bin/yugabyted status); | |
echo $status; | |
echo $status | grep Running && break; | |
sleep 1; | |
done | |
shell: bash | |
- name: Get YugabyteDB container IP | |
id: get-yb-ip | |
run: | | |
# Retrieve internal bridge IP of YugabyteDB container | |
YB_IP=$(docker inspect $CONTAINER_NAME --format '{{ .NetworkSettings.Networks.bridge.IPAddress }}') | |
echo "yb_ip=$YB_IP" >> $GITHUB_OUTPUT | |
- name: Run tests | |
env: | |
CURIO_HARMONYDB_HOSTS: ${{ steps.get-yb-ip.outputs.yb_ip }} # Use internal IP for DB host | |
LOTUS_HARMONYDB_HOSTS: ${{ steps.get-yb-ip.outputs.yb_ip }} | |
run: | | |
echo "Using YugabyteDB Container IP: ${{env.CURIO_HARMONYDB_HOSTS}}" | |
export CURIO_HARMONYDB_HOSTS=${{ env.CURIO_HARMONYDB_HOSTS }} | |
export LOTUS_HARMONYDB_HOSTS=${{ env.CURIO_HARMONYDB_HOSTS }} | |
go test -v --tags=debug -timeout 30m ${{ matrix.test-suite.target }} | |
- name: Stop YugabyteDB container | |
if: always() # Ensure this runs even if the tests fail | |
run: docker stop ${{ env.CONTAINER_NAME }} | |
lint: | |
runs-on: ubuntu-latest | |
needs: [ci-lint] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: ./.github/actions/setup-go | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install Dependencies | |
uses: ./.github/actions/install-deps | |
- name: Install FFI | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: | | |
make deps | |
shell: bash | |
- name: Install golangci-lint | |
run: | | |
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.58.1 | |
shell: bash | |
- name: Lint | |
run: | | |
golangci-lint run -v --timeout 15m --concurrency 4 | |
shell: bash | |
gofmt: | |
runs-on: ubuntu-latest | |
needs: [ci-lint] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: ./.github/actions/setup-go | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Check gofmt | |
run: | | |
go fmt ./... | |
shell: bash | |
- name: Git diff check | |
run: git --no-pager diff | |
shell: bash | |
- name: Git diff quiet | |
run: git --no-pager diff --quiet | |
shell: bash | |
gen-check: | |
runs-on: ubuntu-latest | |
needs: [ci-lint] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: ./.github/actions/setup-go | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install Dependencies | |
uses: ./.github/actions/install-deps | |
- name: Install goimports | |
run: go install golang.org/x/tools/cmd/goimports | |
shell: bash | |
- name: Install cbor-gen-for | |
run: go install github.com/hannahhoward/cbor-gen-for | |
shell: bash | |
- name: Install FFI | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: | | |
make deps | |
shell: bash | |
- name: Generate Code | |
run: make gen | |
shell: bash | |
- name: Git diff check | |
run: git --no-pager diff | |
shell: bash | |
- name: Git diff quiet | |
run: git --no-pager diff --quiet | |
shell: bash | |
mod-tidy-check: | |
runs-on: ubuntu-latest | |
needs: [ci-lint] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: ./.github/actions/setup-go | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install Dependencies | |
uses: ./.github/actions/install-deps | |
- name: Run mod tidy check | |
run: go mod tidy -v | |
shell: bash |