Skip to content

Commit

Permalink
add back pre/post hooks and updated goreleaser Dockerfile to include …
Browse files Browse the repository at this point in the history
…LOOP plugins
  • Loading branch information
momentmaker committed Jan 24, 2024
1 parent 09893a6 commit 8f66085
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 0 deletions.
18 changes: 18 additions & 0 deletions .goreleaser.develop.ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ env:
- IMAGE_LABEL_LICENSES="MIT"
- IMAGE_LABEL_SOURCE="https://github.com/smartcontractkit/{{ .ProjectName }}"

before:
hooks:
- ./tools/bin/goreleaser_utils before_hook

# See https://goreleaser.com/customization/build/
builds:
- id: linux-arm64
Expand All @@ -16,6 +20,8 @@ builds:
- linux
goarch:
- arm64
hooks:
post: ./tools/bin/goreleaser_utils build_post_hook {{ dir .Path }} {{ .Os }} {{ .Arch }}
env:
- CGO_ENABLED=1
- CC=$ZIG_EXEC cc -target aarch64-linux-gnu
Expand All @@ -33,6 +39,8 @@ builds:
- linux
goarch:
- amd64
hooks:
post: ./tools/bin/goreleaser_utils build_post_hook {{ dir .Path }} {{ .Os }} {{ .Arch }}
env:
- CGO_ENABLED=1
- CC=$ZIG_EXEC cc -target x86_64-linux-gnu
Expand All @@ -53,6 +61,8 @@ dockers:
goarch: amd64
extra_files:
- tmp/linux_amd64/libs
- tmp/linux_amd64/chainlink-feeds
- tmp/linux_amd64/chainlink-solana
build_flag_templates:
- "--platform=linux/amd64"
- "--pull"
Expand All @@ -68,13 +78,16 @@ dockers:
image_templates:
- "{{ .Env.IMAGE_PREFIX }}/{{ .ProjectName }}-develop:develop-root-amd64"
- "{{ .Env.IMAGE_PREFIX }}/{{ .ProjectName }}-develop:sha-{{ .ShortCommit }}-root-amd64"

- id: root-linux-arm64
dockerfile: core/chainlink.goreleaser.Dockerfile
use: buildx
goos: linux
goarch: arm64
extra_files:
- tmp/linux_arm64/libs
- tmp/linux_arm64/chainlink-feeds
- tmp/linux_arm64/chainlink-solana
build_flag_templates:
- "--platform=linux/arm64"
- "--pull"
Expand All @@ -90,13 +103,16 @@ dockers:
image_templates:
- "{{ .Env.IMAGE_PREFIX }}/{{ .ProjectName }}-develop:develop-root-arm64"
- "{{ .Env.IMAGE_PREFIX }}/{{ .ProjectName }}-develop:sha-{{ .ShortCommit }}-root-arm64"

- id: linux-amd64
dockerfile: core/chainlink.goreleaser.Dockerfile
use: buildx
goos: linux
goarch: amd64
extra_files:
- tmp/linux_amd64/libs
- tmp/linux_amd64/chainlink-feeds
- tmp/linux_amd64/chainlink-solana
build_flag_templates:
- "--platform=linux/amd64"
- "--pull"
Expand All @@ -121,6 +137,8 @@ dockers:
goarch: arm64
extra_files:
- tmp/linux_arm64/libs
- tmp/linux_arm64/chainlink-feeds
- tmp/linux_arm64/chainlink-solana
build_flag_templates:
- "--platform=linux/arm64"
- "--pull"
Expand Down
18 changes: 18 additions & 0 deletions .goreleaser.develop.local.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ env:
- IMAGE_LABEL_LICENSES="MIT"
- IMAGE_LABEL_SOURCE="https://github.com/smartcontractkit/{{ .ProjectName }}"

before:
hooks:
- ./tools/bin/goreleaser_utils before_hook

# See https://goreleaser.com/customization/build/
builds:
- id: linux-arm64
Expand All @@ -15,6 +19,8 @@ builds:
- linux
goarch:
- arm64
hooks:
post: ./tools/bin/goreleaser_utils build_post_hook {{ dir .Path }} {{ .Os }} {{ .Arch }}
env:
- CGO_ENABLED=1
- CC=zig cc -target aarch64-linux-gnu
Expand All @@ -32,6 +38,8 @@ builds:
- linux
goarch:
- amd64
hooks:
post: ./tools/bin/goreleaser_utils build_post_hook {{ dir .Path }} {{ .Os }} {{ .Arch }}
env:
- CGO_ENABLED=1
- CC=zig cc -target x86_64-linux-gnu
Expand All @@ -52,6 +60,8 @@ dockers:
goarch: amd64
extra_files:
- tmp/linux_amd64/libs
- tmp/linux_amd64/chainlink-feeds
- tmp/linux_amd64/chainlink-solana
build_flag_templates:
- "--platform=linux/amd64"
- "--pull"
Expand All @@ -67,13 +77,16 @@ dockers:
image_templates:
- "{{ .Env.IMAGE_PREFIX }}/{{ .ProjectName }}-develop:develop-root-amd64"
- "{{ .Env.IMAGE_PREFIX }}/{{ .ProjectName }}-develop:sha-{{ .ShortCommit }}-root-amd64"

- id: root-linux-arm64
dockerfile: core/chainlink.goreleaser.Dockerfile
use: buildx
goos: linux
goarch: arm64
extra_files:
- tmp/linux_arm64/libs
- tmp/linux_arm64/chainlink-feeds
- tmp/linux_arm64/chainlink-solana
build_flag_templates:
- "--platform=linux/arm64"
- "--pull"
Expand All @@ -89,13 +102,16 @@ dockers:
image_templates:
- "{{ .Env.IMAGE_PREFIX }}/{{ .ProjectName }}-develop:develop-root-arm64"
- "{{ .Env.IMAGE_PREFIX }}/{{ .ProjectName }}-develop:sha-{{ .ShortCommit }}-root-arm64"

- id: linux-amd64
dockerfile: core/chainlink.goreleaser.Dockerfile
use: buildx
goos: linux
goarch: amd64
extra_files:
- tmp/linux_amd64/libs
- tmp/linux_amd64/chainlink-feeds
- tmp/linux_amd64/chainlink-solana
build_flag_templates:
- "--platform=linux/amd64"
- "--pull"
Expand All @@ -120,6 +136,8 @@ dockers:
goarch: arm64
extra_files:
- tmp/linux_arm64/libs
- tmp/linux_arm64/chainlink-feeds
- tmp/linux_arm64/chainlink-solana
build_flag_templates:
- "--platform=linux/arm64"
- "--pull"
Expand Down
3 changes: 3 additions & 0 deletions core/chainlink.goreleaser.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ RUN curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
COPY . /usr/local/bin/
# Copy native libs if cgo is enabled
COPY ./tmp/linux_${TARGETARCH}/libs /usr/local/bin/libs
# Copy LOOP plugins
COPY ./tmp/linux_${TARGETARCH}/chainlink-feeds /usr/local/bin/
COPY ./tmp/linux_${TARGETARCH}/chainlink-solana /usr/local/bin/

RUN if [ ${CHAINLINK_USER} != root ]; then \
useradd --uid 14933 --create-home ${CHAINLINK_USER}; \
Expand Down
24 changes: 24 additions & 0 deletions tools/bin/goreleaser_utils
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,17 @@ _get_wasmvm_lib_path() {
echo "$shared_lib_dir/${lib_name}.$lib_extension"
}

# install LOOP plugins
_install_plugins() {
go_path=$(go env GOPATH)
go mod download
make install-chainlink
go list -m -f "{{.Dir}}" github.com/smartcontractkit/chainlink-feeds | xargs -I % ln -s % ./chainlink-feeds
go list -m -f "{{.Dir}}" github.com/smartcontractkit/chainlink-solana | xargs -I % ln -s % ./chainlink-solana
cd chainlink-feeds && go install ./cmd/chainlink-feeds && cd ..
cd chainlink-solana && go install ./pkg/solana/cmd/chainlink-solana && cd ..
}

# global goreleaser before hook
# moves native libraries to temp directories used by docker images / archives
before_hook() {
Expand All @@ -50,14 +61,25 @@ before_hook() {
local -r wasmvm_lib_path_linux_arm64=$(_get_wasmvm_lib_path "linux" "arm64")
local -r wasmvm_lib_path_darwin_amd64=$(_get_wasmvm_lib_path "darwin" "amd64")
local -r wasmvm_lib_path_darwin_arm64=$(_get_wasmvm_lib_path "darwin" "arm64")

_install_plugins

mkdir -p "$lib_path/linux_amd64/libs"
cp -f "$wasmvm_lib_path_linux_amd64" "$lib_path/linux_amd64/libs"
cp -f "$go_path/bin/chainlink-feeds" "$lib_path/linux_amd64/chainlink-feeds"
cp -f "$go_path/bin/chainlink-solana" "$lib_path/linux_amd64/chainlink-solana"
mkdir -p "$lib_path/linux_arm64/libs"
cp -f "$wasmvm_lib_path_linux_arm64" "$lib_path/linux_arm64/libs"
cp -f "$go_path/bin/chainlink-feeds" "$lib_path/linux_amd64/chainlink-feeds"
cp -f "$go_path/bin/chainlink-solana" "$lib_path/linux_amd64/chainlink-solana"
mkdir -p "$lib_path/darwin_amd64/libs"
cp -f "$wasmvm_lib_path_darwin_amd64" "$lib_path/darwin_amd64/libs"
cp -f "$go_path/bin/chainlink-feeds" "$lib_path/linux_amd64/chainlink-feeds"
cp -f "$go_path/bin/chainlink-solana" "$lib_path/linux_amd64/chainlink-solana"
mkdir -p "$lib_path/darwin_arm64/libs"
cp -f "$wasmvm_lib_path_darwin_arm64" "$lib_path/darwin_arm64/libs"
cp -f "$go_path/bin/chainlink-feeds" "$lib_path/linux_amd64/chainlink-feeds"
cp -f "$go_path/bin/chainlink-solana" "$lib_path/linux_amd64/chainlink-solana"
}

# binary build post hook
Expand All @@ -71,6 +93,8 @@ build_post_hook() {
local -r wasmvm_lib_path=$(_get_wasmvm_lib_path "$platform" "$arch")
mkdir -p "$lib_path"
cp "$wasmvm_lib_path" "$lib_path"
cp "tmp/${platform}_${arch}/chainlink-feeds" "$dist_path"
cp "tmp/${platform}_${arch}/chainlink-solana" "$dist_path"
}

"$@"

0 comments on commit 8f66085

Please sign in to comment.