Skip to content

Make store take a list of (key, value) to "store many" #1008

Make store take a list of (key, value) to "store many"

Make store take a list of (key, value) to "store many" #1008

Workflow file for this run

name: HyperSDK CI
on:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
mock-gen:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
- shell: bash
run: scripts/mock.gen.sh
- shell: bash
run: scripts/tests.clean.sh
go-mod-tidy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
- shell: bash
run: go mod tidy
- shell: bash
working-directory: ./examples/morpheusvm
run: go mod tidy
- shell: bash
working-directory: ./examples/tokenvm
run: go mod tidy
- shell: bash
run: git diff
- shell: bash
run: scripts/tests.clean.sh
hypersdk-lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
- name: Run static analysis tests
shell: bash
run: scripts/tests.lint.sh
- name: Run shellcheck
shell: bash
run: scripts/tests.shellcheck.sh
hypersdk-unit-tests:
runs-on: ubuntu-20.04-32
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
- name: Install Rust
uses: ./.github/actions/install-rust
with:
targets: wasm32-unknown-unknown
cache: false
- name: Run unit tests
shell: bash
run: scripts/tests.unit.sh
hypersdk-tests:
runs-on: ubuntu-latest
needs: [mock-gen, go-mod-tidy, hypersdk-lint, hypersdk-unit-tests]
outputs:
only_programs_changed: ${{ steps.check_changes.outputs.only_programs_changed }}
steps:
- name: Finished HyperSDK tests
run: echo "Finished HyperSDK tests"
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check changes
id: check_changes
run: |
diff=$(git diff --name-only HEAD origin/main)
echo "diff:\n$diff\n"
output=$(echo $diff | grep -v '^x/programs/' || true)
if [ -n "$diff" ] && [ -z "$output" ]; then
echo "only x/programs changed, will skip unafected tests"
echo "only_programs_changed=true" >> $GITHUB_OUTPUT
else
echo "cannot skip tests"
echo "only_programs_changed=false" >> $GITHUB_OUTPUT
fi
# TokenVM
tokenvm-lint:
needs: [hypersdk-tests]
if: ${{ needs.hypersdk-tests.outputs.only_programs_changed != 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
with:
cache-dependency-path: |
go.sum
examples/tokenvm/go.sum
- name: Run static analysis tests
working-directory: ./examples/tokenvm
shell: bash
run: scripts/tests.lint.sh
- name: Build vm, cli, faucet, feed
working-directory: ./examples/tokenvm
shell: bash
run: scripts/build.sh
tokenvm-unit-tests:
needs: [hypersdk-tests]
if: ${{ needs.hypersdk-tests.outputs.only_programs_changed != 'true' }}
runs-on: ubuntu-20.04-32
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
with:
cache-dependency-path: |
go.sum
examples/tokenvm/go.sum
- name: Run unit tests
working-directory: ./examples/tokenvm
shell: bash
run: scripts/tests.unit.sh
- name: Run integration tests
working-directory: ./examples/tokenvm
shell: bash
run: scripts/tests.integration.sh
# - name: Archive code coverage results (text)
# uses: actions/upload-artifact@v4
# with:
# name: code-coverage-out
# path: ./examples/tokenvm/integration.coverage.out
# - name: Archive code coverage results (html)
# uses: actions/upload-artifact@v4
# with:
# name: code-coverage-html
# path: ./examples/tokenvm/integration.coverage.html
- name: Run e2e tests
working-directory: ./examples/tokenvm
shell: bash
run: scripts/run.sh
env:
MODE: 'test'
tokenvm-sync-tests:
needs: [tokenvm-lint, tokenvm-unit-tests]
runs-on: ubuntu-20.04-32
timeout-minutes: 25
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
with:
cache-dependency-path: |
go.sum
examples/tokenvm/go.sum
- name: Run sync tests
working-directory: ./examples/tokenvm
shell: bash
run: scripts/run.sh
env:
MODE: 'full-test'
token-wallet-release:
needs: [tokenvm-sync-tests]
runs-on: macos-latest-xl
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: ./.github/actions/token-wallet-release
tokenvm-release:
needs: [tokenvm-sync-tests]
# We build with 20.04 to maintain max compatibility: https://github.com/golang/go/issues/57328
runs-on: ubuntu-20.04-32
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: ./.github/actions/vm-release
with:
vm-name: tokenvm
github-token: ${{ secrets.GITHUB_TOKEN }}
# MorpheusVM
morpheusvm-lint:
needs: [hypersdk-tests]
if: ${{ needs.hypersdk-tests.outputs.only_programs_changed != 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
with:
cache-dependency-path: |
go.sum
examples/morpheusvm/go.sum
- name: Run static analysis tests
working-directory: ./examples/morpheusvm
shell: bash
run: scripts/tests.lint.sh
- name: Build vm, cli
working-directory: ./examples/morpheusvm
shell: bash
run: scripts/build.sh
morpheusvm-unit-tests:
needs: [hypersdk-tests]
if: ${{ needs.hypersdk-tests.outputs.only_programs_changed != 'true' }}
runs-on: ubuntu-20.04-32
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
with:
cache-dependency-path: |
go.sum
examples/morpheusvm/go.sum
- name: Run unit tests
working-directory: ./examples/morpheusvm
shell: bash
run: scripts/tests.unit.sh
- name: Run integration tests
working-directory: ./examples/morpheusvm
shell: bash
run: scripts/tests.integration.sh
# - name: Archive code coverage results (text)
# uses: actions/upload-artifact@v4
# with:
# name: code-coverage-out
# path: ./examples/morpheusvm/integration.coverage.out
# - name: Archive code coverage results (html)
# uses: actions/upload-artifact@v4
# with:
# name: code-coverage-html
# path: ./examples/morpheusvm/integration.coverage.html
- name: Run e2e tests
working-directory: ./examples/morpheusvm
shell: bash
run: scripts/run.sh
env:
MODE: 'test'
morpheusvm-sync-tests:
needs: [morpheusvm-lint, morpheusvm-unit-tests]
runs-on: ubuntu-20.04-32
timeout-minutes: 25
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/install-go
with:
cache-dependency-path: |
go.sum
examples/morpheusvm/go.sum
- name: Run sync tests
working-directory: ./examples/morpheusvm
shell: bash
run: scripts/run.sh
env:
MODE: 'full-test'
morpheusvm-release:
needs: [morpheusvm-sync-tests]
# We build with 20.04 to maintain max compatibility: https://github.com/golang/go/issues/57328
runs-on: ubuntu-20.04-32
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: ./.github/actions/vm-release
with:
vm-name: morpheusvm
github-token: ${{ secrets.GITHUB_TOKEN }}