Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.22"
go-version: "1.24.5"
check-latest: true
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ permissions:
jobs:
golangci:
name: golangci-lint
runs-on: Gaia-Runner-medium
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v5
with:
go-version: '1.22'
go-version: "1.24.5"
- uses: technote-space/get-diff-action@v6.1.2
id: git_diff
with:
Expand All @@ -32,4 +32,3 @@ jobs:
if: env.GIT_DIFF
run: |
make lint

121 changes: 1 addition & 120 deletions .github/workflows/nightly-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
steps:
- uses: actions/setup-go@v5
with:
go-version: "1.22"
go-version: "1.24.5"
- uses: actions/checkout@v4
with:
fetch-depth: 0 # get all history for all branches and tags
Expand Down Expand Up @@ -181,118 +181,6 @@ jobs:
go-version: "1.22" # The Go version to download (if necessary) and use.
- name: E2E consumer-double-downtime tests
run: go run ./tests/e2e/... --tc consumer-double-downtime
partial-set-security-opt-in-test:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/setup-go@v5
with:
go-version: "1.22"
- uses: actions/checkout@v4
- name: Checkout LFS objects
run: git lfs checkout
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.22" # The Go version to download (if necessary) and use.
- name: E2E partial set security opt-in chain
run: go run ./tests/e2e/... --tc partial-set-security-opt-in
partial-set-security-top-n-test:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/setup-go@v5
with:
go-version: "1.22"
- uses: actions/checkout@v4
- name: Checkout LFS objects
run: git lfs checkout
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.22" # The Go version to download (if necessary) and use.
- name: E2E partial set security Top N chain
run: go run ./tests/e2e/... --tc partial-set-security-top-n
partial-set-security-validator-set-cap-test:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/setup-go@v5
with:
go-version: "1.22"
- uses: actions/checkout@v4
- name: Checkout LFS objects
run: git lfs checkout
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.22" # The Go version to download (if necessary) and use.
- name: E2E partial set security validator-set cap
run: go run ./tests/e2e/... --tc partial-set-security-validator-set-cap
partial-set-security-validators-power-cap-test:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/setup-go@v5
with:
go-version: "1.22"
- uses: actions/checkout@v4
- name: Checkout LFS objects
run: git lfs checkout
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.22" # The Go version to download (if necessary) and use.
- name: E2E partial set security validators-power cap
run: go run ./tests/e2e/... --tc partial-set-security-validators-power-cap
partial-set-security-validators-allowlisted-test:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/setup-go@v5
with:
go-version: "1.22"
- uses: actions/checkout@v4
- name: Checkout LFS objects
run: git lfs checkout
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.22" # The Go version to download (if necessary) and use.
- name: E2E partial set security allowlist
run: go run ./tests/e2e/... --tc partial-set-security-validators-allowlisted
partial-set-security-validators-denylisted-test:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/setup-go@v5
with:
go-version: "1.22"
- uses: actions/checkout@v4
- name: Checkout LFS objects
run: git lfs checkout
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.22" # The Go version to download (if necessary) and use.
- name: E2E partial set security denylist
run: go run ./tests/e2e/... --tc partial-set-security-validators-denylisted
partial-set-security-modification-proposal:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/setup-go@v5
with:
go-version: "1.22"
- uses: actions/checkout@v4
- name: Checkout LFS objects
run: git lfs checkout
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.22" # The Go version to download (if necessary) and use.
- name: E2E partial set security modification proposal
run: go run ./tests/e2e/... --tc partial-set-security-modification-proposal
active-set-changes-test:
runs-on: ubuntu-latest
timeout-minutes: 20
Expand Down Expand Up @@ -321,13 +209,6 @@ jobs:
- consumer-misbehaviour-test
- consumer-double-sign-test
- consumer-double-downtime-test
- partial-set-security-opt-in-test
- partial-set-security-top-n-test
- partial-set-security-validator-set-cap-test
- partial-set-security-validators-power-cap-test
- partial-set-security-validators-allowlisted-test
- partial-set-security-validators-denylisted-test
- partial-set-security-modification-proposal
- active-set-changes-test
if: ${{ failure() }}
runs-on: ubuntu-latest
Expand Down
113 changes: 43 additions & 70 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ concurrency:

jobs:
tests:
runs-on: Gaia-Runner-medium
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.22"
go-version: "1.24.5"
check-latest: true
cache: true
cache-dependency-path: go.sum
Expand All @@ -39,7 +39,7 @@ jobs:
**/go.sum
**/Makefile
Makefile
- uses: actions/cache@v4.0.2
- uses: actions/cache@v4
with:
path: |
~/.cache/go-build
Expand All @@ -60,12 +60,12 @@ jobs:
path: ./profile.out

test-integration:
runs-on: Gaia-Runner-medium
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.22"
go-version: "1.24.5"
check-latest: true
cache: true
cache-dependency-path: go.sum
Expand All @@ -90,42 +90,14 @@ jobs:
name: "${{ github.sha }}-integration-coverage"
path: ./integration-profile.out

repo-analysis:
runs-on: ubuntu-latest
needs: [tests, test-integration]
steps:
- uses: actions/checkout@v4
- uses: technote-space/get-diff-action@v6.1.2
id: git_diff
with:
PATTERNS: |
**/*.go
go.mod
go.sum
**/go.mod
**/go.sum
- uses: actions/download-artifact@v4
if: env.GIT_DIFF
with:
name: "${{ github.sha }}-coverage"
- uses: actions/download-artifact@v4
if: env.GIT_DIFF
with:
name: "${{ github.sha }}-integration-coverage"
- uses: actions/download-artifact@v4
if: env.GIT_DIFF
with:
name: "${{ github.sha }}-mbt-coverage"
continue-on-error: true
- name: sonarcloud
if: ${{ env.GIT_DIFF && !github.event.pull_request.draft }}
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
# ICS1: SonarCloud analysis removed - not used in this fork
# To enable code analysis, consider:
# - GitHub CodeQL: Built-in security scanning (free for public repos)
# - golangci-lint: Go-specific linting and analysis
# - gosec: Go security checker

test-e2e:
runs-on: Gaia-Runner-medium
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -134,7 +106,7 @@ jobs:
run: git lfs checkout
- uses: actions/setup-go@v5
with:
go-version: "1.22"
go-version: "1.24.5"
check-latest: true
cache: true
cache-dependency-path: go.sum
Expand All @@ -155,36 +127,37 @@ jobs:
run: |
make test-e2e-short

test-e2e-compatibility:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
lfs: true
- name: checkout LFS objects
run: git lfs checkout
- uses: actions/setup-go@v5
with:
go-version: "1.22"
check-latest: true
cache: true
cache-dependency-path: go.sum
- uses: technote-space/get-diff-action@v6.1.2
id: git_diff
with:
PATTERNS: |
**/*.go
go.mod
go.sum
**/go.mod
**/go.sum
**/Makefile
Makefile
Dockerfile*
- name: e2e compatibility tests
if: env.GIT_DIFF
run: |
make test-e2e-compatibility-tests-latest
# Temporarily disabled until we have a build in AtomOne
# test-e2e-compatibility:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# with:
# lfs: true
# - name: checkout LFS objects
# run: git lfs checkout
# - uses: actions/setup-go@v5
# with:
# go-version: "1.24.5"
# check-latest: true
# cache: true
# cache-dependency-path: go.sum
# - uses: technote-space/get-diff-action@v6.1.2
# id: git_diff
# with:
# PATTERNS: |
# **/*.go
# go.mod
# go.sum
# **/go.mod
# **/go.sum
# **/Makefile
# Makefile
# Dockerfile*
# - name: e2e compatibility tests
# if: env.GIT_DIFF
# run: |
# make test-e2e-compatibility-tests-latest

model-analysis:
runs-on: ubuntu-latest
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@ docs/versioned_sidebars

# Go test binaries
*.test

# Log files
*.log
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ RUN go mod tidy
# Install interchain security binary
RUN make install

# Get Hermes build
FROM --platform=linux/amd64 ghcr.io/informalsystems/hermes:1.10.0 AS hermes-builder
# Get Hermes build - using ICS-specific image with required patches
FROM --platform=linux/amd64 otacrew/hermes-ics:latest AS hermes-builder

# Get CometMock
FROM ghcr.io/informalsystems/cometmock:v0.38.x as cometmock-builder
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ COMMIT := $(shell git log -1 --format='%H')
# Fetch tags and get the latest ICS version by filtering tags by vX.Y.Z and vX.Y.Z-lsm
# using lazy set to only execute commands when variable is used
# Note: v.5.0.0 is currently excluded from the list as it's a pre-release and will be added back once it's out of pre-release status
LATEST_RELEASE ?= $(shell git fetch; git tag -l --sort -v:refname 'v*.?' 'v*.?'-lsm 'v*.??' 'v*.??'-lsm --no-contains v5.0.0 | head -n 1)
LATEST_RELEASE ?= $(shell git fetch; git tag -l --sort -v:refname 'v*.?' 'v*.?'-lsm 'v*.??' 'v*.??'-lsm | head -n 1)

# don't override user values
ifeq (,$(VERSION))
Expand Down
35 changes: 35 additions & 0 deletions app/common/version_modifier.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package common

import (
"context"

"github.com/cosmos/cosmos-sdk/baseapp"
)

// SimpleVersionModifier implements the baseapp.VersionModifier interface
// required by AtomOne SDK v0.50.14 for ABCI queries to function properly.
//
// ICS1 E2E FIX: AtomOne SDK requires a VersionModifier for the baseapp to handle
// ABCI info queries correctly. Without this, Hermes relayer fails with
// "app.versionModifier is nil" error when creating IBC connections.
//
// This implementation returns protocol version 0, which is sufficient for testing
// and basic operations. Production deployments may want to implement proper
// version tracking if protocol upgrades are planned.
type SimpleVersionModifier struct{}

// Ensure SimpleVersionModifier implements the baseapp.VersionModifier interface
var _ baseapp.VersionModifier = (*SimpleVersionModifier)(nil)

// SetAppVersion sets the application protocol version.
// This implementation is a no-op as we don't need to track version changes for testing.
func (s SimpleVersionModifier) SetAppVersion(ctx context.Context, version uint64) error {
// For testing purposes, we don't need to store the version
return nil
}

// AppVersion returns the current application protocol version.
// Returns 0 as the default version, which is sufficient for testing.
func (s SimpleVersionModifier) AppVersion(ctx context.Context) (uint64, error) {
return 0, nil
}
Loading
Loading