-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from iotaledger/feat/implement-validator-plugin
Implementing validator INX plugin
- Loading branch information
Showing
24 changed files
with
2,578 additions
and
0 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,36 @@ | ||
# Binaries for programs and plugins | ||
*.exe | ||
*.exe~ | ||
*.dll | ||
*.so | ||
*.dylib | ||
|
||
# Test binary, build with `go test -c` | ||
*.test | ||
|
||
# Output of the go coverage tool, specifically when used with LiteIDE | ||
*.out | ||
|
||
# IDE related files | ||
.vscode/ | ||
|
||
# Git related files | ||
.github/ | ||
.git/ | ||
|
||
# Docker related files | ||
.dockerignore | ||
docker-compose.yml | ||
|
||
# Documentation | ||
documentation/ | ||
|
||
# Scripts + Tools | ||
scripts/ | ||
tools/ | ||
|
||
# OSX related files | ||
.DS_Store | ||
|
||
# Executable | ||
/inx-validator |
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,10 @@ | ||
|
||
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates | ||
|
||
version: 2 | ||
updates: | ||
- package-ecosystem: "gomod" | ||
directory: "/" | ||
schedule: | ||
interval: "daily" | ||
target-branch: "develop" |
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: Build | ||
|
||
on: | ||
pull_request | ||
|
||
jobs: | ||
build: | ||
name: Go | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Set up Go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: "1.21" | ||
id: go | ||
|
||
- name: Print Go version | ||
run: go version | ||
|
||
- name: Check out code into the Go module directory | ||
uses: actions/checkout@v3 | ||
|
||
- name: Build | ||
run: go build -v . | ||
|
||
build_docker: | ||
name: Docker | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Check out code into the Go module directory | ||
uses: actions/checkout@v3 | ||
|
||
- name: Build Docker image | ||
run: docker build . --file Dockerfile --tag inx-validator:latest |
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,41 @@ | ||
name: gendoc | ||
|
||
on: | ||
push: | ||
branches: | ||
- develop | ||
|
||
jobs: | ||
gendoc: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Set up Go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: "1.21" | ||
id: go | ||
|
||
- name: Print Go version | ||
run: go version | ||
|
||
- name: Check out code into the Go module directory | ||
uses: actions/checkout@v3 | ||
|
||
- name: Run gendoc | ||
working-directory: tools/gendoc | ||
run: go mod tidy && go run main.go | ||
|
||
- name: Create Pull Request | ||
uses: peter-evans/create-pull-request@v5 | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
title: "chore(gendoc): update docs" | ||
commit-message: "chore(gendoc): update docs" | ||
body: | | ||
Generated new config documentation. | ||
This PR is auto generated by [gendoc workflow](https://github.com/${{ github.repository }}/actions?query=workflow%3Agendoc). | ||
branch: chore/gendoc | ||
base: develop | ||
add-paths: | | ||
*.json | ||
*.md |
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,25 @@ | ||
name: GolangCIlint | ||
|
||
on: | ||
pull_request: | ||
paths-ignore: | ||
- 'documentation/**' | ||
- 'scripts/**' | ||
- 'tools/**' | ||
|
||
jobs: | ||
golangci-lint: | ||
name: GolangCI-Lint | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Check out code into the Go module directory | ||
uses: actions/checkout@v3 | ||
|
||
- name: golangci-lint | ||
uses: reviewdog/action-golangci-lint@v2 | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
golangci_lint_flags: "--timeout=10m" | ||
reporter: github-pr-check | ||
filter_mode: nofilter | ||
fail_on_error: true |
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,46 @@ | ||
name: Release | ||
|
||
on: | ||
release: | ||
types: [published] | ||
|
||
jobs: | ||
docker: | ||
name: Release Docker | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Check out code into the Go module directory | ||
uses: actions/checkout@v3 | ||
|
||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v2 | ||
|
||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
|
||
- name: Docker meta | ||
id: meta | ||
uses: docker/metadata-action@v4 | ||
with: | ||
images: iotaledger/inx-validator | ||
tags: | | ||
type=semver,pattern={{version}} | ||
type=semver,pattern={{major}}.{{minor}} | ||
type=semver,pattern={{major}} | ||
type=match,pattern=v(\d+.\d+),suffix=-alpha,group=1,enable=${{ contains(github.ref, '-alpha') }} | ||
type=match,pattern=v(\d+.\d+),suffix=-beta,group=1,enable=${{ contains(github.ref, '-beta') }} | ||
type=match,pattern=v(\d+.\d+),suffix=-rc,group=1,enable=${{ contains(github.ref, '-rc') }} | ||
- name: Login to DockerHub | ||
uses: docker/login-action@v2 | ||
with: | ||
username: ${{ secrets.IOTALEDGER_DOCKER_USERNAME }} | ||
password: ${{ secrets.IOTALEDGER_DOCKER_PASSWORD }} | ||
|
||
- name: Build and push to Dockerhub | ||
uses: docker/build-push-action@v4 | ||
with: | ||
file: ./Dockerfile | ||
platforms: linux/amd64,linux/arm64 | ||
push: true | ||
tags: ${{ steps.meta.outputs.tags }} |
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,4 @@ | ||
.idea | ||
.DS_Store | ||
inx-* | ||
go.work* |
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,132 @@ | ||
run: | ||
tests: true | ||
|
||
linters-settings: | ||
gofmt: | ||
simplify: true | ||
goimports: | ||
local-prefixes: github.com/iotaledger | ||
golint: | ||
min-confidence: 0.9 | ||
gocyclo: | ||
min-complexity: 15 | ||
govet: | ||
check-shadowing: false | ||
misspell: | ||
locale: US | ||
staticcheck: | ||
checks: ["all"] | ||
stylecheck: | ||
initialisms: ["ACL", "API", "ASCII", "CPU", "CSS", "DNS", "EOF", "GUID", "HTML", "HTTP", "HTTPS", "ID", "IP", "JSON", "QPS", "RAM", "RPC", "SLA", "SMTP", "SQL", "SSH", "TCP", "TLS", "TTL", "UDP", "UI", "GID", "UID", "UUID", "URI", "URL", "UTF8", "VM", "XML", "XMPP", "XSRF", "XSS", "SIP", "RTP", "AMQP", "DB", "TS"] | ||
|
||
linters: | ||
# Disable all linters. | ||
disable-all: true | ||
# Enable specific linter | ||
enable: | ||
- deadcode | ||
- errcheck | ||
- gosimple | ||
- govet | ||
- ineffassign | ||
- staticcheck | ||
- typecheck | ||
- unused | ||
- varcheck | ||
- asasalint | ||
- asciicheck | ||
- bidichk | ||
- bodyclose | ||
- containedctx | ||
- contextcheck | ||
- decorder | ||
#- depguard | ||
- dogsled | ||
- dupl | ||
- durationcheck | ||
- errchkjson | ||
- errname | ||
- errorlint | ||
- execinquery | ||
- exhaustive | ||
#- exhaustruct | ||
- exportloopref | ||
- forcetypeassert | ||
- goconst | ||
- gocritic | ||
- godot | ||
- godox | ||
#- goerr113 | ||
- gofmt | ||
- goheader | ||
- goimports | ||
- golint | ||
#- gomnd | ||
- gomoddirectives | ||
- gomodguard | ||
- goprintffuncname | ||
- gosec | ||
- grouper | ||
- ifshort | ||
- importas | ||
- interfacer | ||
- makezero | ||
- maligned | ||
- misspell | ||
- nakedret | ||
- nilerr | ||
- nilnil | ||
- nlreturn | ||
- noctx | ||
- nonamedreturns | ||
- nosnakecase | ||
- nosprintfhostport | ||
- prealloc | ||
- predeclared | ||
- promlinter | ||
- revive | ||
- rowserrcheck | ||
- scopelint | ||
- sqlclosecheck | ||
- structcheck | ||
- stylecheck | ||
- tagliatelle | ||
- tenv | ||
- testpackage | ||
#- thelper | ||
- tparallel | ||
- unconvert | ||
- unparam | ||
- usestdlibvars | ||
#- varnamelen | ||
- wastedassign | ||
|
||
issues: | ||
# Maximum issues count per one linter. | ||
# Set to 0 to disable. | ||
# Default: 50 | ||
max-issues-per-linter: 0 | ||
# Maximum count of issues with the same text. | ||
# Set to 0 to disable. | ||
# Default: 3 | ||
max-same-issues: 0 | ||
#exclude: | ||
# - 'Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*print(f|ln)?|os\.(Un)?Setenv). is not checked' # errcheck | ||
# - "err113: do not define dynamic errors, use wrapped static errors instead:" # goerr113 | ||
# - "type name will be used as [0-9A-Za-z_.]+ by other packages, and that stutters; consider calling this" # golint | ||
# - "Potential file inclusion via variable" # gosec | ||
# - "G404: Use of weak random number generator" # gosec | ||
# - "Subprocess launch(ed with variable|ing should be audited)" # gosec | ||
# - "Use of unsafe calls should be audited" # gosec | ||
# - "G108: Profiling endpoint is automatically exposed on /debug/pprof" # gosec | ||
# - "(Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)" # gosec | ||
# - "G101: Potential hardcoded credentials" # gosec | ||
# - "(G104|G307)" # gosec Duplicated errcheck checks. | ||
# - "`[0-9A-Za-z_.]+` - `[0-9A-Za-z_.]+` always receives `[0-9A-Za-z_.]+`" # unparam | ||
# - "should have comment .*or be unexported" # revive | ||
# - "exported: comment on exported" # revive | ||
# - "package-comments: package comment should be of the form" # revive | ||
# - "blank-imports" # revive | ||
# - "var-naming: don't use leading k in Go names;" #revive | ||
# - 'shadow: declaration of "err"' # govet | ||
|
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,40 @@ | ||
# https://hub.docker.com/_/golang | ||
FROM golang:1.21-bullseye AS build | ||
|
||
# Ensure ca-certificates are up to date | ||
RUN update-ca-certificates | ||
|
||
# Set the current Working Directory inside the container | ||
RUN mkdir /scratch | ||
WORKDIR /scratch | ||
|
||
# Prepare the folder where we are putting all the files | ||
RUN mkdir /app | ||
|
||
# Copy everything from the current directory to the PWD(Present Working Directory) inside the container | ||
COPY . . | ||
|
||
# Download go modules | ||
RUN go mod download | ||
RUN go mod verify | ||
|
||
# Build the binary | ||
RUN go build -o /app/inx-validator -a | ||
|
||
# Copy the assets | ||
COPY ./config_defaults.json /app/config.json | ||
|
||
############################ | ||
# Image | ||
############################ | ||
# https://console.cloud.google.com/gcr/images/distroless/global/cc-debian11 | ||
# using distroless cc "nonroot" image, which includes everything in the base image (glibc, libssl and openssl) | ||
FROM gcr.io/distroless/cc-debian11:nonroot | ||
|
||
# Copy the app dir into distroless image | ||
COPY --chown=nonroot:nonroot --from=build /app /app | ||
|
||
WORKDIR /app | ||
USER nonroot | ||
|
||
ENTRYPOINT ["/app/inx-validator"] |
Oops, something went wrong.