Skip to content

Commit

Permalink
Integrate ooNodz workflow and create and push docker images
Browse files Browse the repository at this point in the history
  • Loading branch information
atvanguard committed Mar 18, 2024
1 parent 4a1e8e9 commit 143fdbb
Show file tree
Hide file tree
Showing 4 changed files with 138 additions and 3 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/ci-push-image-aylin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Build + Push aylin image

on:
push:
branches:
- aylin

defaults:
run:
shell: bash

jobs:
build_fuji_image_aylin:
name: Build Docker Image
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Get Current Tag
id: get_tag
run: echo ::set-output name=tag::$(git describe --abbrev=0 --tags)

- name: Login to Docker hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASS }}

- name: Build Dockerfile and Push it
run: |
TAG_END=$GITHUB_SHA
if [ -n "$GITHUB_TAG" ]; then
TAG_END=$GITHUB_TAG
fi
export BUILD_IMAGE_ID="${{ vars.AVALANCHE_VERSION_DEV }}-aylin-${TAG_END}"
# Copy binary to the correct Fuji VM ID respository
echo "COPY --from=builder /build/jvrKsTB9MfYGnAXtxbzFYpXKceXr9J8J8ej6uWGrYM5tXswhJ /root/.avalanchego/plugins/jvrKsTB9MfYGnAXtxbzFYpXKceXr9J8J8ej6uWGrYM5tXswhJ" >> Dockerfile
# Copy binary to the correct Mainnet VM ID respository
echo "COPY --from=builder /build/jvrKsTB9MfYGnAXtxbzFYpXKceXr9J8J8ej6uWGrYM5tXswhJ /root/.avalanchego/plugins/o1Fg94YujMqL75Ebrdkos95MTVjZpPpdeAp5ocEsp2X9c2FSz" >> Dockerfile
./scripts/build_image.sh
env:
CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
PUSH_DOCKER_IMAGE: true
DOCKERHUB_REPO: hubbleexchange/hubblenet
GITHUB_TAG: ${{ steps.get_tag.outputs.tag }}
GITHUB_SHA: ${{ github.sha }}
85 changes: 85 additions & 0 deletions .github/workflows/push-image-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Build + Push release image

on:
workflow_dispatch:
inputs:
release_tag:
description: 'Release tag'
required: true
type: string

defaults:
run:
shell: bash

jobs:
build_release_image:
name: Build Docker Image
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Login to Docker hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASS }}

- name: Create the Dockerfile
env:
HUBBLENET_RELEASE_TAG: ${{ inputs.release_tag }}
AVALANCHE_VERSION: ${{ vars.AVALANCHE_VERSION }}
run: |
if [ "${HUBBLENET_RELEASE_TAG:0:1}" = "v" ]; then
HUBBLENET_VERSION="${HUBBLENET_RELEASE_TAG:1}";
HUBBLENET_RELEASE_TAG="${HUBBLENET_RELEASE_TAG}";
else
HUBBLENET_VERSION="${HUBBLENET_RELEASE_TAG}";
fi
multiline_text=$(cat <<EOF
FROM avaplatform/avalanchego:${AVALANCHE_VERSION} as builder
RUN apt update \
&& DEBIAN_FRONTEND="noninteractive" apt install -y wget \
&& cd /tmp \
&& wget https://github.com/hubble-exchange/hubblenet/releases/download/${HUBBLENET_RELEASE_TAG}/hubblenet_${HUBBLENET_VERSION}_linux_amd64.tar.gz \
&& tar -xf hubblenet_${HUBBLENET_VERSION}_linux_amd64.tar.gz
FROM avaplatform/avalanchego:${AVALANCHE_VERSION}
LABEL Description="Hubblenet image"
ARG VM_ID
RUN mkdir -p /root/.avalanchego/plugins \
&& DEBIAN_FRONTEND="noninteractive" apt update \
&& DEBIAN_FRONTEND="noninteractive" apt install -y wget
COPY --from=builder /tmp/hubblenet-${HUBBLENET_VERSION} /root/.avalanchego/plugins/\${VM_ID}
EOF
)
echo "$multiline_text" > Dockerfile-release
cat Dockerfile-release
- name: Build and push release image for the mainnet
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile-release
push: true
tags: "hubbleexchange/hubblenet:${{ vars.AVALANCHE_VERSION }}-${{ inputs.release_tag }}"
build-args: |
VM_ID=o1Fg94YujMqL75Ebrdkos95MTVjZpPpdeAp5ocEsp2X9c2FSz
- name: Build and push release image for the fuji
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile-release
push: true
tags: "hubbleexchange/hubblenet:${{ vars.AVALANCHE_VERSION }}-fuji-${{ inputs.release_tag }}"
build-args: |
VM_ID=jvrKsTB9MfYGnAXtxbzFYpXKceXr9J8J8ej6uWGrYM5tXswhJ
1 change: 1 addition & 0 deletions scripts/build_image.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ source "$SUBNET_EVM_PATH"/scripts/versions.sh
source "$SUBNET_EVM_PATH"/scripts/constants.sh

BUILD_IMAGE_ID=${BUILD_IMAGE_ID:-"${AVALANCHE_VERSION}-Subnet-EVM-${CURRENT_BRANCH}"}
DOCKERHUB_REPO=${DOCKERHUB_REPO:-"avaplatform/avalanchego"}

echo "Building Docker Image: $DOCKERHUB_REPO:$BUILD_IMAGE_ID based of $AVALANCHE_VERSION"
docker build -t "$DOCKERHUB_REPO:$BUILD_IMAGE_ID" "$SUBNET_EVM_PATH" -f "$SUBNET_EVM_PATH/Dockerfile" \
Expand Down
3 changes: 0 additions & 3 deletions scripts/constants.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@ set -euo pipefail
# Set the PATHS
GOPATH="$(go env GOPATH)"

# Avalabs docker hub
DOCKERHUB_REPO="avaplatform/avalanchego"

# if this isn't a git repository (say building from a release), don't set our git constants.
if [ ! -d .git ]; then
CURRENT_BRANCH=""
Expand Down

0 comments on commit 143fdbb

Please sign in to comment.