-
Notifications
You must be signed in to change notification settings - Fork 392
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c857374
commit 4b87887
Showing
84 changed files
with
15,666 additions
and
119 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Please see the documentation for all configuration options: | ||
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates | ||
|
||
version: 2 | ||
updates: | ||
# Maintain dependencies for Go | ||
- package-ecosystem: "gomod" | ||
directory: "/" | ||
schedule: | ||
interval: "daily" | ||
|
||
# Maintain dependencies for GitHub Actions | ||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
schedule: | ||
interval: "daily" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# CODEOWNERS: <https://help.github.com/articles/about-codeowners/> | ||
|
||
* @cosmosregistry/core |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
name: Build Tutorial | ||
on: ["push"] | ||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
arch: [amd64] | ||
targetos: [darwin, linux] | ||
include: | ||
- targetos: darwin | ||
arch: arm64 | ||
name: Tutorial ${{ matrix.arch }} for ${{ matrix.targetos }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/[email protected] | ||
with: | ||
go-version: "1.21" | ||
check-latest: true | ||
env: | ||
GOOS: ${{ matrix.targetos }} | ||
GOARCH: ${{ matrix.arch }} | ||
|
||
- name: Compile Tutorial | ||
run: | | ||
go mod download | ||
cd cmd/Tutoriald | ||
go build . | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: Tutoriald ${{ matrix.targetos }} ${{ matrix.arch }} | ||
path: cmd/Tutoriald/Tutoriald |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
name: Integration tests | ||
on: | ||
push: | ||
branches: | ||
- main | ||
pull_request: | ||
jobs: | ||
tests: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Check out source | ||
uses: actions/checkout@v4 | ||
- name: Set up Go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: "1.21" | ||
check-latest: true | ||
- name: Tests | ||
run: | | ||
cd integration | ||
go test -v ./... -count=1 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
name: Unit tests | ||
on: | ||
push: | ||
branches: | ||
- main | ||
pull_request: | ||
jobs: | ||
tests: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Check out source | ||
uses: actions/checkout@v4 | ||
- name: Set up Go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: "1.21" | ||
check-latest: true | ||
- name: Tests | ||
run: | | ||
make test |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
name: Lint PR | ||
on: | ||
pull_request_target: | ||
types: | ||
- opened | ||
- edited | ||
- synchronize | ||
permissions: | ||
contents: read | ||
jobs: | ||
lint: | ||
permissions: | ||
pull-requests: read | ||
statuses: write | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: amannn/[email protected] | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
name: Lint | ||
on: | ||
push: | ||
branches: | ||
- main | ||
paths: | ||
- "**/*.go" | ||
- "go.mod" | ||
- "go.sum" | ||
- "**/go.mod" | ||
- "**/go.sum" | ||
pull_request: | ||
paths: | ||
- "**/*.go" | ||
- "go.mod" | ||
- "go.sum" | ||
- "**/go.mod" | ||
- "**/go.sum" | ||
merge_group: | ||
permissions: | ||
contents: read | ||
jobs: | ||
golangci: | ||
name: golangci-lint | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-go@v4 | ||
with: | ||
go-version: "1.21" | ||
check-latest: true | ||
- name: run linting | ||
run: | | ||
make lint |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,34 +1,175 @@ | ||
BRANCH := $(shell git rev-parse --abbrev-ref HEAD) | ||
#!/usr/bin/make -f | ||
|
||
VERSION := $(shell echo $(shell git describe --tags) | sed 's/^v//') | ||
COMMIT := $(shell git log -1 --format='%H') | ||
DOCKER := $(shell which docker) | ||
BUILDDIR ?= $(CURDIR)/build | ||
LEDGER_ENABLED ?= true | ||
|
||
# ********** Golang configs ********** | ||
|
||
export GO111MODULE = on | ||
|
||
GO_MAJOR_VERSION = $(shell go version | cut -c 14- | cut -d' ' -f1 | cut -d'.' -f1) | ||
GO_MINOR_VERSION = $(shell go version | cut -c 14- | cut -d' ' -f1 | cut -d'.' -f2) | ||
|
||
# don't override user values | ||
ifeq (,$(VERSION)) | ||
VERSION := $(shell git describe --exact-match 2>/dev/null) | ||
# if VERSION is empty, then populate it with branch's name and raw commit hash | ||
ifeq (,$(VERSION)) | ||
VERSION := $(BRANCH)-$(COMMIT) | ||
# ********** process build tags ********** | ||
|
||
build_tags = netgo | ||
ifeq ($(LEDGER_ENABLED),true) | ||
ifeq ($(OS),Windows_NT) | ||
GCCEXE = $(shell where gcc.exe 2> NUL) | ||
ifeq ($(GCCEXE),) | ||
$(error gcc.exe not installed for ledger support, please install or set LEDGER_ENABLED=false) | ||
else | ||
build_tags += ledger | ||
endif | ||
else | ||
UNAME_S = $(shell uname -s) | ||
ifeq ($(UNAME_S),OpenBSD) | ||
$(warning OpenBSD detected, disabling ledger support (https://github.com/cosmos/cosmos-sdk/issues/1988)) | ||
else | ||
GCC = $(shell command -v gcc 2> /dev/null) | ||
ifeq ($(GCC),) | ||
$(error gcc not installed for ledger support, please install or set LEDGER_ENABLED=false) | ||
else | ||
build_tags += ledger | ||
endif | ||
endif | ||
endif | ||
endif | ||
|
||
# Update the ldflags with the app, client & server names | ||
ldflags = -X github.com/cosmos/cosmos-sdk/version.Name=tutorial \ | ||
-X github.com/cosmos/cosmos-sdk/version.AppName=tutoriald \ | ||
-X github.com/cosmos/cosmos-sdk/version.Version=$(VERSION) \ | ||
-X github.com/cosmos/cosmos-sdk/version.Commit=$(COMMIT) | ||
ifeq (cleveldb,$(findstring cleveldb,$(TUTORA_BUILD_OPTIONS))) | ||
build_tags += gcc cleveldb | ||
else ifeq (rocksdb,$(findstring rocksdb,$(TUTORA_BUILD_OPTIONS))) | ||
build_tags += gcc rocksdb | ||
endif | ||
build_tags += $(BUILD_TAGS) | ||
build_tags := $(strip $(build_tags)) | ||
|
||
whitespace := | ||
whitespace := $(whitespace) $(whitespace) | ||
comma := , | ||
build_tags_comma_sep := $(subst $(whitespace),$(comma),$(build_tags)) | ||
|
||
# ********** process linker flags ********** | ||
|
||
ldflags = -X github.com/cosmos/cosmos-sdk/version.Name=cosmapp \ | ||
-X github.com/cosmos/cosmos-sdk/version.AppName=tutoriald \ | ||
-X github.com/cosmos/cosmos-sdk/version.Version=$(VERSION) \ | ||
-X github.com/cosmos/cosmos-sdk/version.Commit=$(COMMIT) \ | ||
-X "github.com/cosmos/cosmos-sdk/version.BuildTags=$(build_tags_comma_sep)" | ||
|
||
ifeq (cleveldb,$(findstring cleveldb,$(TUTORA_BUILD_OPTIONS))) | ||
ldflags += -X github.com/cosmos/cosmos-sdk/types.DBBackend=cleveldb | ||
else ifeq (rocksdb,$(findstring rocksdb,$(TUTORA_BUILD_OPTIONS))) | ||
ldflags += -X github.com/cosmos/cosmos-sdk/types.DBBackend=rocksdb | ||
endif | ||
ifeq (,$(findstring nostrip,$(TUTORA_BUILD_OPTIONS))) | ||
ldflags += -w -s | ||
endif | ||
ifeq ($(LINK_STATICALLY),true) | ||
ldflags += -linkmode=external -extldflags "-Wl,-z,muldefs -static" | ||
endif | ||
ldflags += $(LDFLAGS) | ||
ldflags := $(strip $(ldflags)) | ||
|
||
BUILD_FLAGS := -tags '$(build_tags)' -ldflags '$(ldflags)' | ||
# check for nostrip option | ||
ifeq (,$(findstring nostrip,$(TUTORA_BUILD_OPTIONS))) | ||
BUILD_FLAGS += -trimpath | ||
endif | ||
|
||
all: lint test install | ||
|
||
|
||
############################################################################### | ||
### Build ### | ||
############################################################################### | ||
|
||
install: enforce-go-version | ||
@echo "Installing tutoriald..." | ||
go install -mod=readonly $(BUILD_FLAGS) ./cmd/tutoriald | ||
|
||
build: enforce-go-version | ||
@echo "Building tutoriald..." | ||
go build $(BUILD_FLAGS) -o $(BUILDDIR)/ ./cmd/tutoriald | ||
|
||
enforce-go-version: | ||
@echo "Go version: $(GO_MAJOR_VERSION).$(GO_MINOR_VERSION)" | ||
ifneq ($(GO_MINOR_VERSION),21) | ||
@echo "Go version 1.20 is required" | ||
@exit 1 | ||
endif | ||
|
||
clean: | ||
rm -rf $(CURDIR)/artifacts/ | ||
|
||
distclean: clean | ||
rm -rf vendor/ | ||
|
||
|
||
############################################################################### | ||
### Linting ### | ||
############################################################################### | ||
golangci_lint_cmd=golangci-lint | ||
golangci_version=v1.52.2 | ||
|
||
lint: | ||
@echo "--> Running linter" | ||
@go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(golangci_version) | ||
@$(golangci_lint_cmd) run --timeout=10m | ||
|
||
lint-fix: | ||
@echo "--> Running linter" | ||
@go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(golangci_version) | ||
@$(golangci_lint_cmd) run --fix --out-format=tab --issues-exit-code=0 | ||
|
||
BUILD_FLAGS := -ldflags '$(ldflags)' | ||
format: | ||
@go install mvdan.cc/gofumpt@latest | ||
@go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(golangci_version) | ||
find . -name '*.go' -type f -not -path "./vendor*" -not -path "*.git*" -not -path "./client/docs/statik/statik.go" -not -path "./tests/mocks/*" -not -name "*.pb.go" -not -name "*.pb.gw.go" -not -name "*.pulsar.go" -not -path "./crypto/keys/secp256k1/*" | xargs gofumpt -w -l | ||
$(golangci_lint_cmd) run --fix | ||
.PHONY: format | ||
|
||
########### | ||
# Install # | ||
########### | ||
############################################################################### | ||
### Localnet ### | ||
############################################################################### | ||
|
||
all: install | ||
start-localnet: build | ||
rm -rf ~/.tutoriald | ||
./build/tutoriald init liveness --chain-id cosmos-1 --default-denom uatom | ||
./build/tutoriald config set client chain-id cosmos-1 | ||
./build/tutoriald config set client keyring-backend test | ||
./build/tutoriald keys add val1 | ||
./build/tutoriald keys add alice | ||
./build/tutoriald keys add bob | ||
./build/tutoriald genesis add-genesis-account val1 10000000000000000000000000uatom | ||
./build/tutoriald genesis add-genesis-account alice 1000000000000000000uatom | ||
./build/tutoriald genesis add-genesis-account bob 1000000000000000000uatom | ||
./build/tutoriald genesis gentx val1 1000000000uatom --chain-id cosmos- | ||
./build/tutoriald genesis collect-gentxs | ||
sed -i.bak'' 's/minimum-gas-prices = ""/minimum-gas-prices = "0.025uatom"/' ~/.tutoriald/config/app.toml | ||
./build/tutoriald start | ||
############################################################################### | ||
### Tests & Simulation ### | ||
############################################################################### | ||
PACKAGES_UNIT=$(shell go list ./... | grep -v -e '/tests/e2e') | ||
PACKAGES_E2E=$(shell cd tests/e2e && go list ./... | grep '/e2e') | ||
TEST_PACKAGES=./... | ||
TEST_TARGETS := test-unit test-e2e | ||
|
||
install: | ||
@echo "--> ensure dependencies have not been modified" | ||
@go mod verify | ||
@echo "--> installing tutoriald" | ||
@go install $(BUILD_FLAGS) -mod=readonly ./cmd/tutoriald | ||
test-unit: ARGS=-timeout=5m -tags='norace' | ||
test-unit: TEST_PACKAGES=$(PACKAGES_UNIT) | ||
test-e2e: ARGS=-timeout=25m -v | ||
test-e2e: TEST_PACKAGES=$(PACKAGES_E2E) | ||
$(TEST_TARGETS): run-tests | ||
|
||
init: | ||
./scripts/init.sh | ||
run-tests: | ||
ifneq (,$(shell which tparse 2>/dev/null)) | ||
@echo "--> Running tests" | ||
@go test -mod=readonly -json $(ARGS) $(TEST_PACKAGES) | tparse | ||
else | ||
@echo "--> Running tests" | ||
@go test -mod=readonly $(ARGS) $(TEST_PACKAGES) | ||
endif |
Oops, something went wrong.