Skip to content
Merged

Merge #241

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Dockerize

on:
workflow_dispatch:
inputs:
latest_tag:
description: 'type yes for building latest tag'
default: 'no'
required: true

env:
ZCHAIN_BUILDBASE: zchain_build_base
ZCHAIN_BUILDRUN: zchain_run_base
BLOBBER_REGISTRY: ${{ secrets.BLOBBER_REGISTRY }}
VALIDATOR_REGISTRY: ${{ secrets.VALIDATOR_REGISTRY }}

jobs:
dockerize_blobber:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2

- name: Get the version
id: get_version
run: |
BRANCH=$(echo ${GITHUB_REF#refs/heads/} | sed 's/\//-/g')
SHORT_SHA=$(echo $GITHUB_SHA | head -c 8)
echo ::set-output name=BRANCH::${BRANCH}
echo ::set-output name=VERSION::${BRANCH}-${SHORT_SHA}
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Build blobber
run: |
docker build -t $BLOBBER_REGISTRY:$TAG -f "$DOCKERFILE_BLOB" .
docker tag $BLOBBER_REGISTRY:$TAG $BLOBBER_REGISTRY:latest
docker push $BLOBBER_REGISTRY:$TAG
env:
TAG: ${{ steps.get_version.outputs.VERSION }}
DOCKERFILE_BLOB: "docker.local/Dockerfile"

- name: Push blobber
run: |
if [[ "$PUSH_LATEST" == "yes" ]]; then
docker push $BLOBBER_REGISTRY:latest
fi
env:
PUSH_LATEST: ${{ github.event.inputs.latest_tag }}

dockerize_validator:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1

- name: Get the version
id: get_version
run: |
BRANCH=$(echo ${GITHUB_REF#refs/heads/} | sed 's/\//-/g')
SHORT_SHA=$(echo $GITHUB_SHA | head -c 8)
echo ::set-output name=BRANCH::${BRANCH}
echo ::set-output name=VERSION::${BRANCH}-${SHORT_SHA}
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Build validator
run: |
docker build -t $VALIDATOR_REGISTRY:$TAG -f "$DOCKERFILE_PROXY" .
docker tag $VALIDATOR_REGISTRY:$TAG $VALIDATOR_REGISTRY:latest
docker push $VALIDATOR_REGISTRY:$TAG
env:
TAG: ${{ steps.get_version.outputs.VERSION }}
DOCKERFILE_PROXY: "docker.local/ValidatorDockerfile"

- name: Push validator
run: |
if [[ "$PUSH_LATEST" == "yes" ]]; then
docker push $VALIDATOR_REGISTRY:latest
fi
env:
PUSH_LATEST: ${{ github.event.inputs.latest_tag }}
3 changes: 1 addition & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ jobs:
run: |
docker network create --driver=bridge --subnet=198.18.0.0/15 --gateway=198.18.0.255 testnet0
./docker.local/bin/build.blobber.sh

test:
runs-on: ubuntu-20.04
steps:
Expand Down Expand Up @@ -128,4 +127,4 @@ jobs:
docker build -t $VALIDATOR_REGISTRY:$TAG -f docker.local/ValidatorDockerfile .
docker push $VALIDATOR_REGISTRY:$TAG
env:
TAG: ${{ steps.get_version.outputs.VERSION }}
TAG: ${{ steps.get_version.outputs.VERSION }}
108 changes: 108 additions & 0 deletions .github/workflows/cicd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: CICD_TEST_HERTZNER

on:
push:
branches:
- gitactionsfix

env:
GITHUB_TOKEN: ${{ secrets.CICD }}

jobs:
build-push-image:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2

- name: Get Branch
id: get_branch
run: |
BRANCH=$(echo ${GITHUB_REF#refs/heads/} | sed 's/\//-/g')
echo ::set-output name=BRANCH::${BRANCH}
echo "This workflow run is triggered by ${{ github.event_name }} ."

- name: Triggering build.yml for creating & pushing docker images.
uses: convictional/trigger-workflow-and-wait@v1.3.0
with:
owner: 0chain
repo: blobber
github_token: ${{ secrets.CICD }}
workflow_file_name: test.yml
ref: ${{ steps.get_branch.outputs.BRANCH }}
# inputs: '{"DOCKERHUB_REPO":"TEST"}'
propagate_failure: true
trigger_workflow: true
wait_workflow: true

# network-setup:
# runs-on: ubuntu-20.04
# env:
# HOST: testnet.load.testnet-0chain.net
# steps:
# - uses: actions/checkout@v2

# - uses: azure/setup-helm@v1
# with:
# version: 'v3.2.2'
# - name: Setup helm repo
# run: |
# helm repo add 0chain http://0chain-helm-chart.s3-website.us-east-2.amazonaws.com/
# - name: Setup kubeconfig
# run: |
# mkdir -p ~/.kube
# echo "${{ secrets.KUBECONFIG64TEST }}" | base64 -d > ~/.kube/config
# - name: Uninstall old release
# run: |
# helm uninstall zerochain -n zerochain || true
# - name: Setup chain
# run: |
# helm install zerochain -n zerochain \
# --set ingress.host=${HOST} \
# --set sharder.image.tag=latest \
# --set miner.image.tag=latest \
# --set blobber.image.tag=latest \
# --set validator.image.tag=latest \
# 0chain/0chain
# - name: Check if services are up
# run: |
# printf 'Waiting for 0dns'
# until [[ $(curl -I --silent -o /dev/null -w %{http_code} http://${HOST}/dns/) =~ 2[0-9][0-9] ]] ;do
# printf '.'
# sleep 2
# done
# printf 'Waiting for 1st sharder'
# until [[ $(curl -I --silent -o /dev/null -w %{http_code} http://${HOST}/sharder0/) =~ 2[0-9][0-9] ]] ;do
# printf '.'
# sleep 2
# done
# printf 'Waiting for 1st miner'
# until [[ $(curl -I --silent -o /dev/null -w %{http_code} http://${HOST}/miner0/) =~ 2[0-9][0-9] ]] ;do
# printf '.'
# sleep 2
# done

# # - name: Triggering ci.yml to run Postman API tests
# # uses: convictional/trigger-workflow-and-wait@v1.3.0
# # with:
# # owner: 0chain
# # repo: 0proxy
# # github_token: ${{ secrets.GOSDK }}
# # workflow_file_name: build.yml
# # ref: master
# # propagate_failure: true
# # trigger_workflow: true
# # wait_workflow: true

# # - name: Build
# # run: make build
# # - name: Running Load Tests
# # run: |
# # make run config=loadTest-load-testnet.yaml

# - name: Uninstall the release
# if: ${{ always() }}
# run: helm uninstall zerochain -n zerochain

# - name: Deleting kubeconfig
# run: |
# rm -rf ~/.kube
166 changes: 166 additions & 0 deletions .github/workflows/cicd_hetz.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
name: CICD_Hetzner

# on:
# push:
# branches:
# - gitactionsfix

on:
workflow_dispatch:
inputs:
latest_tag:
description: 'type yes for building latest tag'
default: 'no'
required: true

env:
ZCHAIN_BUILDBASE: zchain_build_base
ZCHAIN_BUILDRUN: zchain_run_base
BLOBBER_REGISTRY: ${{ secrets.BLOBBER_REGISTRY_TEST }}
VALIDATOR_REGISTRY: ${{ secrets.VALIDATOR_REGISTRY_TEST }}
KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA_TEST }}
KUBE_NAMESPACE: test

jobs:
dockerize_blobber:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2

- name: Get the Version for Tagging
id: get_version
run: |
BRANCH=$(echo ${GITHUB_REF#refs/heads/} | sed 's/\//-/g')
SHORT_SHA=$(echo $GITHUB_SHA | head -c 8)
echo ::set-output name=BRANCH::${BRANCH}
echo ::set-output name=VERSION::${BRANCH}-${SHORT_SHA}

- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Build & Push Blobber Image
run: |
docker build -t $BLOBBER_REGISTRY:$TAG -f "$DOCKERFILE_BLOB" .
docker tag $BLOBBER_REGISTRY:$TAG $BLOBBER_REGISTRY:latest
# docker push $BLOBBER_REGISTRY:$TAG
env:
TAG: ${{ steps.get_version.outputs.VERSION }}
DOCKERFILE_BLOB: "docker.local/Dockerfile"

- name: Push Blobber Image with Latest TAG
run: |
if [[ "$PUSH_LATEST" == "yes" ]]; then
docker push $BLOBBER_REGISTRY:latest
fi
env:
PUSH_LATEST: ${{ github.event.inputs.latest_tag }}

- name: Update Blobber Image to Kubernetes Cluster
uses: kodermax/kubectl-aws-eks@master
with:
args: set image deployment/blobber-01 app=$BLOBBER_REGISTRY:$TAG --record -n $KUBE_NAMESPACE
args: set image deployment/blobber-02 app=$BLOBBER_REGISTRY:$TAG --record -n $KUBE_NAMESPACE
args: set image deployment/blobber-03 app=$BLOBBER_REGISTRY:$TAG --record -n $KUBE_NAMESPACE
args: set image deployment/blobber-04 app=$BLOBBER_REGISTRY:$TAG --record -n $KUBE_NAMESPACE
args: set image deployment/blobber-05 app=$BLOBBER_REGISTRY:$TAG --record -n $KUBE_NAMESPACE
args: set image deployment/blobber-06 app=$BLOBBER_REGISTRY:$TAG --record -n $KUBE_NAMESPACE
env:
TAG: ${{ steps.get_version.outputs.VERSION }}

- name: Verify Kubernetes Deployment
uses: kodermax/kubectl-aws-eks@master
with:
args: rollout status blobber-01 my-pod -n $KUBE_NAMESPACE
args: rollout status blobber-02 my-pod -n $KUBE_NAMESPACE
args: rollout status blobber-03 my-pod -n $KUBE_NAMESPACE
args: rollout status blobber-04 my-pod -n $KUBE_NAMESPACE
args: rollout status blobber-05 my-pod -n $KUBE_NAMESPACE
args: rollout status blobber-06 my-pod -n $KUBE_NAMESPACE

# - name: Triggering LoadTest Repo build
# uses: convictional/trigger-workflow-and-wait@v1.3.0
# with:
# owner: 0chain
# repo: loadTest
# github_token: ${{ secrets.GOSDK }}
# workflow_file_name: load-test-v1.yml
# ref: master
# inputs: '{}'
# propagate_failure: true
# trigger_workflow: true
# wait_workflow: true


dockerize_validator:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1

- name: Get the Version for Tagging
id: get_version
run: |
BRANCH=$(echo ${GITHUB_REF#refs/heads/} | sed 's/\//-/g')
SHORT_SHA=$(echo $GITHUB_SHA | head -c 8)
echo ::set-output name=BRANCH::${BRANCH}
echo ::set-output name=VERSION::${BRANCH}-${SHORT_SHA}

- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Build & Push Validator Image
run: |
docker build -t $VALIDATOR_REGISTRY:$TAG -f "$DOCKERFILE_PROXY" .
docker tag $VALIDATOR_REGISTRY:$TAG $VALIDATOR_REGISTRY:latest
# docker push $VALIDATOR_REGISTRY:$TAG
env:
TAG: ${{ steps.get_version.outputs.VERSION }}
DOCKERFILE_PROXY: "docker.local/ValidatorDockerfile"

- name: Push Validator Image with Latest TAG
run: |
if [[ "$PUSH_LATEST" == "yes" ]]; then
docker push $VALIDATOR_REGISTRY:latest
fi
env:
PUSH_LATEST: ${{ github.event.inputs.latest_tag }}

- name: Update Validator Image to Kubernetes Cluster
uses: kodermax/kubectl-aws-eks@master
with:
args: set image deployment/validator-01 app=$BLOBBER_REGISTRY:$TAG --record -n $KUBE_NAMESPACE
args: set image deployment/validator-02 app=$BLOBBER_REGISTRY:$TAG --record -n $KUBE_NAMESPACE
args: set image deployment/validator-03 app=$BLOBBER_REGISTRY:$TAG --record -n $KUBE_NAMESPACE
args: set image deployment/validator-04 app=$BLOBBER_REGISTRY:$TAG --record -n $KUBE_NAMESPACE
args: set image deployment/validator-05 app=$BLOBBER_REGISTRY:$TAG --record -n $KUBE_NAMESPACE
args: set image deployment/validator-06 app=$BLOBBER_REGISTRY:$TAG --record -n $KUBE_NAMESPACE
env:
TAG: ${{ steps.get_version.outputs.VERSION }}

- name: Verify Kubernetes Deployment
uses: kodermax/kubectl-aws-eks@master
with:
args: rollout status validator-01 -n $KUBE_NAMESPACE
args: rollout status validator-02 -n $KUBE_NAMESPACE
args: rollout status validator-03 -n $KUBE_NAMESPACE
args: rollout status validator-04 -n $KUBE_NAMESPACE
args: rollout status validator-05 -n $KUBE_NAMESPACE
args: rollout status validator-06 -n $KUBE_NAMESPACE

# - name: Triggering LoadTest Repo build
# uses: convictional/trigger-workflow-and-wait@v1.3.0
# with:
# owner: 0chain
# repo: loadTest
# github_token: ${{ secrets.GOSDK }}
# workflow_file_name: load-test-v1.yml
# ref: master
# inputs: '{}'
# propagate_failure: true
# trigger_workflow: true
# wait_workflow: true
10 changes: 10 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: test

on:
workflow_dispatch

jobs:
dockerize_blobber:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
Loading