Skip to content

Commit

Permalink
blazar v1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
mkaczanowski committed Oct 24, 2024
0 parents commit c17c41c
Show file tree
Hide file tree
Showing 154 changed files with 18,491 additions and 0 deletions.
75 changes: 75 additions & 0 deletions .github/workflows/blazar.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
name: Check blazar build and tests

on:
push:
branches:
- main
pull_request: {}

jobs:
build-and-test:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Install Docker and Docker Compose
run: |
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose
- uses: actions/setup-go@v5
with:
go-version: '1.22.8'

- name: Build and test
run: |
make test
golangci:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.22'
cache: false

- name: golangci-lint
uses: golangci/golangci-lint-action@v4
with:
# Require: The version of golangci-lint to use.
# When `install-mode` is `binary` (default) the value can be v1.2 or v1.2.3 or `latest` to use the latest version.
# When `install-mode` is `goinstall` the value can be v1.2.3, `latest`, or the hash of a commit.
version: v1.61.0

# Optional: golangci-lint command line arguments.
#
# Note: By default, the `.golangci.yml` file should be at the root of the repository.
# The location of the configuration file can be changed by using `--config=`
# args: --timeout=30m --config=/my/path/.golangci.yml --issues-exit-code=0
args: --timeout=30m --issues-exit-code=0

# Optional: show only new issues if it's a pull request. The default value is `false`.
# only-new-issues: true

# Optional: if set to true, then all caching functionality will be completely disabled,
# takes precedence over all other caching options.
# skip-cache: true

# Optional: if set to true, then the action won't cache or restore ~/go/pkg.
# skip-pkg-cache: true

# Optional: if set to true, then the action won't cache or restore ~/.cache/go-build.
# skip-build-cache: true

# Optional: The mode to install golangci-lint. It can be 'binary' or 'goinstall'.
# install-mode: "goinstall"
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/blazar
blazar.toml
proxy.toml
70 changes: 70 additions & 0 deletions .golangci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
run:
go: '1.22'

linters:
enable:
- bodyclose
- copyloopvar
- errcheck
- errorlint
- gocheckcompilerdirectives
- goconst
- gocritic
- gofmt
- goimports
- goprintffuncname
- gosec
- gosimple
- govet
- intrange
- ineffassign
- misspell
- nakedret
- noctx
- nolintlint
- revive
- staticcheck
- stylecheck
- testifylint
- unconvert
- unparam
- unused
- whitespace

issues:
exclude-rules:
# Related to file sizes.
- path: .go
linters: [gosec]
text: "G114: Use of net/http serve function that has no support for setting timeouts"

- path: .go
linters: [stylecheck]
text: "ST1003: should not use underscores in package names"

- path: .go
linters: [stylecheck]
text: "ST1003: should not use ALL_CAPS in Go names; use CamelCase instead"

- path: .go
linters: [revive]
text: "var-naming: don't use an underscore in package name"

- path: .go
linters: [revive]
text: "var-naming: don't use ALL_CAPS in Go names; use CamelCase"

- path: (.+)_test\.go
linters:
- bodyclose
- gosec
- noctx

exclude:
# Not all the chains are on v0.47
- "res.Block is deprecated: please use `sdk_block` instead"
# Blazar support "older" versions v1 and v1beta
- "upgradetypes.SoftwareUpgradeProposal is deprecated: Do not use."
# Linter doesn't catch the cobra check after
- "Error return value of `registerUpgradeCmd.MarkFlagRequired` is not checked"
13 changes: 13 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Copyright 2024 Chorus One AG

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
51 changes: 51 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
.PHONY: build clean test proto run build-simapp compress-simapp

Version=$(shell git describe --tags --exact-match 2>/dev/null || echo "devel")
GitStatus=`git status -s`
GitCommit=`git rev-parse HEAD`
BuildTime=`date +%FT%T%z`
BuildGoVersion=`go version`

LDFLAGS=-ldflags "-w -s \
-X 'blazar/cmd.BinVersion=${Version}' \
-X 'blazar/cmd.GitStatus=${GitStatus}' \
-X 'blazar/cmd.GitCommit=${GitCommit}' \
-X 'blazar/cmd.BuildTime=${BuildTime}' \
-X 'blazar/cmd.BuildGoVersion=${BuildGoVersion}' \
"

build:
go build -o blazar ${LDFLAGS}

run:
go run ./...

clean:
go clean

test:
go test -mod=readonly -race ./...

lint:
golangci-lint run ./...

proto:
@ if ! which protoc > /dev/null; then \
echo "error: protoc not installed" >&2; \
exit 1; \
fi
protoc --proto_path=./proto --go_out=. --go-grpc_out=. --grpc-gateway_out=. --grpc-gateway_opt generate_unbound_methods=true proto/upgrades_registry.proto proto/version_resolver.proto proto/blazar.proto proto/checks.proto
protoc-go-inject-tag -input="internal/pkg/proto/upgrades_registry/*.pb.go" -remove_tag_comment
protoc-go-inject-tag -input="internal/pkg/proto/version_resolver/*.pb.go" -remove_tag_comment
protoc-go-inject-tag -input="internal/pkg/proto/blazar/*.pb.go" -remove_tag_comment
sed -i 's/upgrades_registry "internal\/pkg\/proto\/upgrades_registry"/upgrades_registry "blazar\/internal\/pkg\/proto\/upgrades_registry"/' internal/pkg/proto/version_resolver/version_resolver.pb.go

build-simapp:
./testdata/scripts/build_simapp.sh

cp testdata/scripts/start_simd_with_upgrade.sh ./testdata/daemon/images/v0.0.1/start_simd_with_upgrade.sh
chmod +x ./testdata/daemon/images/v0.0.1/start_simd_with_upgrade.sh

compress-simapp:
upx ./testdata/daemon/images/v0.0.1/simd-1
upx ./testdata/daemon/images/v0.0.2/simd-2
Loading

0 comments on commit c17c41c

Please sign in to comment.