Merge pull request #3820 from nanocurrency/docker_build_deploy_split

Splits the deploy-docker.sh to have build/deploy parts
This commit is contained in:
Thiago Silva 2022-05-19 11:10:51 -03:00 committed by GitHub
commit 1885e9cb0e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 101 additions and 68 deletions

View file

@ -81,8 +81,10 @@ jobs:
env:
COMPILER: gcc
run: ci/actions/linux/install_deps.sh
- name: Build Docker (nanocurrency/nano-beta)
run: TRAVIS_TAG=${TAG} ci/actions/linux/docker-build.sh
- name: Deploy Docker (nanocurrency/nano-beta)
run: TRAVIS_TAG=${TAG} ci/actions/linux/deploy-docker.sh
run: TRAVIS_TAG=${TAG} ci/actions/linux/docker-deploy.sh
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to ghcr.io

View file

@ -22,6 +22,6 @@ jobs:
- name: Deploy Docker (ghcr.io)
run: ci/actions/linux/ghcr_push.sh
- name: Deploy Docker (nanocurrency/nano-env)
run: ci/actions/linux/deploy-docker.sh
run: ci/actions/linux/docker-deploy.sh
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

View file

@ -80,8 +80,10 @@ jobs:
env:
COMPILER: gcc
run: ci/actions/linux/install_deps.sh
- name: Build Docker (nanocurrency/nano)
run: TRAVIS_TAG=${TAG} ci/actions/linux/docker-build.sh
- name: Deploy Docker (nanocurrency/nano)
run: TRAVIS_TAG=${TAG} ci/actions/linux/deploy-docker.sh
run: TRAVIS_TAG=${TAG} ci/actions/linux/docker-deploy.sh
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to ghcr.io

View file

@ -81,8 +81,10 @@ jobs:
env:
COMPILER: gcc
run: ci/actions/linux/install_deps.sh
- name: Build Docker (nanocurrency/nano)
run: TRAVIS_TAG=${TAG} ci/actions/linux/docker-build.sh
- name: Deploy Docker (nanocurrency/nano)
run: TRAVIS_TAG=${TAG} ci/actions/linux/deploy-docker.sh
run: TRAVIS_TAG=${TAG} ci/actions/linux/docker-deploy.sh
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to ghcr.io

View file

@ -1,64 +0,0 @@
#!/bin/bash
set -e
scripts="$PWD/ci"
TRAVIS_BRANCH=$(git branch | cut -f2 -d' ')
tags=()
if [ -n "$TRAVIS_TAG" ]; then
tags+=("$TRAVIS_TAG")
elif [ -n "$TRAVIS_BRANCH" ]; then
TRAVIS_TAG=$TRAVIS_BRANCH
tags+=("$TRAVIS_BRANCH")
fi
if [[ "$GITHUB_WORKFLOW" = "Live" ]]; then
echo "Live"
network_tag_suffix=''
network="live"
elif [[ "$GITHUB_WORKFLOW" = "Beta" ]]; then
echo "Beta"
network_tag_suffix="-beta"
network="beta"
elif [[ "$GITHUB_WORKFLOW" = "Test" ]]; then
echo "Test"
network_tag_suffix="-test"
network="test"
fi
if [[ "$GITHUB_WORKFLOW" != "Develop" ]]; then
docker_image_name="nanocurrency/nano${network_tag_suffix}"
ghcr_image_name="ghcr.io/${GITHUB_REPOSITORY}/nano${network_tag_suffix}"
"$scripts"/build-docker-image.sh docker/node/Dockerfile "$docker_image_name" --build-arg NETWORK="$network" --build-arg CI_BUILD=true --build-arg TRAVIS_TAG="$TRAVIS_TAG"
for tag in "${tags[@]}"; do
# Sanitize docker tag
# https://docs.docker.com/engine/reference/commandline/tag/
tag="$(printf '%s' "$tag" | tr -c '[a-z][A-Z][0-9]_.-' -)"
if [ "$tag" != "latest" ]; then
docker tag "$docker_image_name" "${docker_image_name}:$tag"
docker tag "$ghcr_image_name" "${ghcr_image_name}:$tag"
fi
done
fi
if [ -n "$DOCKER_PASSWORD" ]; then
echo "$DOCKER_PASSWORD" | docker login -u nanoreleaseteam --password-stdin
if [[ "$GITHUB_WORKFLOW" = "Develop" ]]; then
"$scripts"/custom-timeout.sh 30 docker push "nanocurrency/nano-env:base"
"$scripts"/custom-timeout.sh 30 docker push "nanocurrency/nano-env:gcc"
"$scripts"/custom-timeout.sh 30 docker push "nanocurrency/nano-env:clang-6"
echo "Deployed nano-env"
exit 0
else
if [[ "$GITHUB_WORKFLOW" = "Live" ]]; then
tags=$(docker images --format '{{.Repository}}:{{.Tag }}' | grep nanocurrency | grep -vE "env|ghcr.io|none|latest")
else
tags=$(docker images --format '{{.Repository}}:{{.Tag }}' | grep nanocurrency | grep -vE "env|ghcr.io|none")
fi
for a in $tags; do
"$scripts"/custom-timeout.sh 30 docker push "$a"
done
echo "$docker_image_name with tags ${tags//$'\n'/' '} deployed"
fi
else
echo "\$DOCKER_PASSWORD environment variable required"
exit 0
fi

View file

@ -0,0 +1,8 @@
#!/bin/bash
set -e
set -x
source "$(dirname "$BASH_SOURCE")/docker-impl/docker-common.sh"
docker_build

View file

@ -0,0 +1,8 @@
#!/bin/bash
set -e
set -x
source "$(dirname "$BASH_SOURCE")/docker-impl/docker-common.sh"
docker_deploy

View file

@ -0,0 +1,75 @@
#!/bin/bash
set -e
set -a
scripts="$PWD/ci"
TRAVIS_BRANCH=$(git branch | cut -f2 -d' ')
tags=()
if [ -n "$TRAVIS_TAG" ]; then
tags+=("$TRAVIS_TAG")
elif [ -n "$TRAVIS_BRANCH" ]; then
TRAVIS_TAG=$TRAVIS_BRANCH
tags+=("$TRAVIS_BRANCH")
fi
if [[ "$GITHUB_WORKFLOW" = "Live" ]]; then
echo "Live"
network_tag_suffix=''
network="live"
elif [[ "$GITHUB_WORKFLOW" = "Beta" ]]; then
echo "Beta"
network_tag_suffix="-beta"
network="beta"
elif [[ "$GITHUB_WORKFLOW" = "Test" ]]; then
echo "Test"
network_tag_suffix="-test"
network="test"
fi
if [[ "$GITHUB_WORKFLOW" != "Develop" ]]; then
docker_image_name="nanocurrency/nano${network_tag_suffix}"
fi
docker_build()
{
if [[ "$GITHUB_WORKFLOW" != "Develop" ]]; then
ghcr_image_name="ghcr.io/${GITHUB_REPOSITORY}/nano${network_tag_suffix}"
"$scripts"/build-docker-image.sh docker/node/Dockerfile "$docker_image_name" --build-arg NETWORK="$network" --build-arg CI_BUILD=true --build-arg TRAVIS_TAG="$TRAVIS_TAG"
for tag in "${tags[@]}"; do
# Sanitize docker tag
# https://docs.docker.com/engine/reference/commandline/tag/
tag="$(printf '%s' "$tag" | tr -c '[a-z][A-Z][0-9]_.-' -)"
if [ "$tag" != "latest" ]; then
docker tag "$docker_image_name" "${docker_image_name}:$tag"
docker tag "$ghcr_image_name" "${ghcr_image_name}:$tag"
fi
done
fi
}
docker_deploy()
{
if [ -n "$DOCKER_PASSWORD" ]; then
echo "$DOCKER_PASSWORD" | docker login -u nanoreleaseteam --password-stdin
if [[ "$GITHUB_WORKFLOW" = "Develop" ]]; then
"$scripts"/custom-timeout.sh 30 docker push "nanocurrency/nano-env:base"
"$scripts"/custom-timeout.sh 30 docker push "nanocurrency/nano-env:gcc"
"$scripts"/custom-timeout.sh 30 docker push "nanocurrency/nano-env:clang-6"
echo "Deployed nano-env"
exit 0
else
if [[ "$GITHUB_WORKFLOW" = "Live" ]]; then
tags=$(docker images --format '{{.Repository}}:{{.Tag }}' | grep nanocurrency | grep -vE "env|ghcr.io|none|latest")
else
tags=$(docker images --format '{{.Repository}}:{{.Tag }}' | grep nanocurrency | grep -vE "env|ghcr.io|none")
fi
for a in $tags; do
"$scripts"/custom-timeout.sh 30 docker push "$a"
done
echo "$docker_image_name with tags ${tags//$'\n'/' '} deployed"
fi
else
echo "\$DOCKER_PASSWORD environment variable required"
exit 0
fi
}