Skip to content

Commit

Permalink
Release/v2.3.5 (#155)
Browse files Browse the repository at this point in the history
* update github actions and makefile (#152)

* Update release.yml
  • Loading branch information
Greg Junge authored Jun 27, 2023
1 parent 323197e commit 53375b2
Show file tree
Hide file tree
Showing 7 changed files with 117 additions and 77 deletions.
47 changes: 0 additions & 47 deletions .github/workflows/build.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: docker-build
name: Docker Build

on:
pull_request:
Expand Down
16 changes: 10 additions & 6 deletions .github/workflows/gosec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ on:
push:
branches:
- main
- release/*
pull_request:
branches:
- main
- release/*
jobs:
tests:
runs-on: ubuntu-latest
Expand All @@ -14,14 +16,16 @@ jobs:
steps:
- name: Checkout Source
uses: actions/checkout@v3
- uses: technote-space/get-diff-action@v3

- uses: technote-space/get-diff-action@v6
with:
SUFFIX_FILTER: |
.go
.mod
.sum
PATTERNS: |
**.go
**.mod
**.sum
- name: Run Gosec Security Scanner
uses: informalsystems/gosec@master
with:
args: ./...
if: "env.GIT_DIFF != ''"
if: env.GIT_DIFF
12 changes: 8 additions & 4 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,37 @@ name: Lint
# Lint runs golangci-lint over the entire Gaia repository
# This workflow is run on every pull request and push to main
# The `golangci` job will pass without running if no *.{go, mod, sum} files have been modified.

on:
pull_request:
push:
branches:
- main
- master
- "release/*"

jobs:
golangci:
name: golangci-lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.20.0
- uses: actions/checkout@v3
- uses: technote-space/get-diff-action@v4

- uses: technote-space/get-diff-action@v6
with:
PATTERNS: |
**/**.go
go.mod
go.sum
- uses: golangci/golangci-lint-action@v3
with:
# Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version.
version: v1.51.2
args: --timeout 10m
github-token: ${{ secrets.github_token }}
if: "env.GIT_DIFF != ''"
if: env.GIT_DIFF
72 changes: 65 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@ jobs:
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- name: Create release for ${{github.ref_name}}
run: gh release create ${{github.ref_name}} --prerelease --generate-notes --repo ${{github.repository}}
- name: Create release for ${{ github.ref_name }}
run: gh release create ${{ github.ref_name }} --prerelease --generate-notes --repo ${{ github.repository }}


artifacts:
if: startsWith(github.ref, 'refs/tags/')
needs: release
Expand All @@ -25,17 +26,18 @@ jobs:
strategy:
matrix:
build_type: ['build-release-arm64', 'build-release-amd64']
# build_type: ['build/linux/amd64', 'build/linux/arm64', 'build/darwin/amd64', 'build/darwin/arm64', 'build/windows/amd64']
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set version tag
run: echo "VERSION=$(echo ${{github.ref_name}} | sed 's/^v//')" >> $GITHUB_ENV
run: echo "VERSION=$(echo ${{ github.ref_name }} | sed 's/^v//')" >> $GITHUB_ENV
- name: Create build directory
run: mkdir -p build/release
- name: Build ${{matrix.build_type}}
run: make ${{matrix.build_type}}
- name: Build ${{ matrix.build_type }}
run: make ${{ matrix.build_type }}
- name: Upload the artifacts to release
run: gh release upload ${{github.ref_name}} ./build/release/*
run: gh release upload ${{ github.ref_name }} ./build/release/*

calculate-checksums:
needs: artifacts
Expand All @@ -47,7 +49,7 @@ jobs:
- name: Create build directory
run: mkdir -p build/release
- name: Download artifacts
run: gh release download ${{github.ref_name}} --pattern '*.tar.gz' --dir build/release --repo ${{github.repository}}
run: gh release download ${{ github.ref_name }} --pattern '*.tar.gz' --dir build/release --repo ${{ github.repository }}
- name: Create checksums
run: |
cd build/release
Expand All @@ -56,3 +58,59 @@ jobs:
run: cat build/release/checksum.txt
- name: Upload the checksum to release
run: gh release upload ${{github.ref_name}} build/release/checksum.txt --repo ${{github.repository}}

generate-json:
needs: calculate-checksums
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- name: Install jq
run: sudo apt-get update && sudo apt-get install -y jq
- name: Create build directory
run: mkdir -p build/release
- name: Download artifacts
run: gh release download ${{github.ref_name}} --pattern '*.tar.gz' --dir build/release --repo ${{github.repository}}
- name: Generate JSON file
run: |
cd build/release
binaries=()
for file in *.tar.gz; do
checksum=$(sha256sum $file | awk '{print $1}')
url="https://github.com/${{github.repository}}/releases/download/${{github.ref_name}}/$file?checksum=sha256:$checksum"
declare -A TRANSLATION_MATRIX
TRANSLATION_MATRIX=( ["Linux_x86_64"]="linux/amd64" ["Linux_arm64"]="linux/arm64" ["Darwin_arm64"]="darwin/arm64" )
os_architecture_translated=""
for key in "${!TRANSLATION_MATRIX[@]}"; do
if [[ "$file" == *"$key"* ]]; then
os_architecture_translated="${TRANSLATION_MATRIX[$key]}"
break
fi
done
if [ -z "$os_architecture_translated" ]
then
echo "Could not translate OS and architecture information from binary name: $file"
exit 1
fi
binaries+=(" \"$os_architecture_translated\": \"$url\"")
done
binaries_json=$(IFS=$',\n'; echo "${binaries[*]}")
cat << EOF > binaries.json.raw
{
"binaries": {
$binaries_json
}
}
EOF
- name: Pretty-print JSON file using jq
run: |
cd build/release
jq . < binaries.json.raw > binaries.json && rm binaries.json.raw
- name: Display JSON file
run: cat build/release/binaries.json
- name: Upload the JSON file to release
run: gh release upload ${{ github.ref_name }} build/release/binaries.json --repo ${{ github.repository }}

25 changes: 15 additions & 10 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,40 +1,44 @@
name: Build & Test
name: Test

on:
pull_request:
push:
branches:
- main
- master
- "release/*"
- release/*

jobs:
cleanup-runs:
runs-on: ubuntu-latest
steps:
- uses: rokroskar/workflow-run-cleanup-action@master
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
if: "!startsWith(github.ref, 'refs/tags/') && github.ref != 'refs/heads/main'"

test-coverage-upload:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: 1.20.0
- uses: actions/checkout@v3
- uses: technote-space/get-diff-action@v4

- uses: technote-space/get-diff-action@v6
id: get-diff
with:
PATTERNS: |
**/**.go
go.mod
go.sum
- name: build
run: |
make build
- name: test & coverage report creation
run: |
go test ./... -mod=readonly -timeout 12m -race -coverprofile=coverage.txt -covermode=atomic -tags='ledger test_ledger_mock'
if: "env.GIT_DIFF != ''"
if: env.GIT_DIFF

- name: filter out DONTCOVER
run: |
excludelist="$(find ./ -type f -name '*.go' | xargs grep -l 'DONTCOVER')"
Expand All @@ -44,12 +48,13 @@ jobs:
echo "Excluding ${filename} from coverage report..."
sed -i.bak "/$(echo $filename | sed 's/\//\\\//g')/d" coverage.txt
done
if: "env.GIT_DIFF != ''"
if: env.GIT_DIFF

- uses: codecov/codecov-action@v1
with:
file: ./coverage.txt # optional
fail_ci_if_error: true
if: "env.GIT_DIFF != ''"
if: env.GIT_DIFF

test-simulation:
runs-on: ubuntu-latest
Expand Down
20 changes: 18 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,23 @@ else
go build -mod=readonly $(BUILD_FLAGS) -o build/terrad ./cmd/terrad
endif

build/linux/amd64:
GOOS=linux GOARCH=amd64 go build -mod=readonly $(BUILD_FLAGS) -o "$@/terrad" ./cmd/terrad

build/linux/arm64:
GOOS=linux GOARCH=arm64 go build -mod=readonly $(BUILD_FLAGS) -o "$@/terrad" ./cmd/terrad

build/darwin/amd64:
GOOS=darwin GOARCH=amd64 go build -mod=readonly $(BUILD_FLAGS) -o "$@/terrad" ./cmd/terrad

build/darwin/arm64:
GOOS=darwin GOARCH=arm64 go build -mod=readonly $(BUILD_FLAGS) -o "$@/terrad" ./cmd/terrad

build/windows/amd64:
GOOS=windows GOARCH=amd64 go build -mod=readonly $(BUILD_FLAGS) -o "$@/terrad" ./cmd/terrad

build-release: build/linux/amd64 build/linux/arm64 build/darwin/amd64 build/darwin/arm64 build/windows/amd64

build-linux:
mkdir -p $(BUILDDIR)
docker build --no-cache --tag terramoney/core ./
Expand All @@ -134,8 +151,6 @@ build-linux-with-shared-library:
docker cp temp:/lib/libwasmvm.so $(BUILDDIR)/
docker rm temp

build-release: build-release-amd64 build-release-arm64

build-release-amd64: go.sum $(BUILDDIR)/
$(DOCKER) buildx create --name core-builder || true
$(DOCKER) buildx use core-builder
Expand Down Expand Up @@ -175,6 +190,7 @@ build-release-arm64: go.sum $(BUILDDIR)/
tar -czvf $(BUILDDIR)/release/terra_$(VERSION)_Linux_arm64.tar.gz -C $(BUILDDIR)/release/ terrad
rm $(BUILDDIR)/release/terrad
$(DOCKER) rm -f core-builder

install: go.sum
go install -mod=readonly $(BUILD_FLAGS) ./cmd/terrad

Expand Down

0 comments on commit 53375b2

Please sign in to comment.