mirror of
https://github.com/Retropex/dockerfile-deps.git
synced 2025-05-13 00:40:41 +02:00
Allow tagging on revisions
This commit is contained in:
parent
4aad3b38b8
commit
4b867597cc
@ -20,25 +20,9 @@ jobs:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
# If CIRCLE_TAG is "BitcoinCore/0.17.0"
|
||||
# Then:
|
||||
# $SEPARATOR=12
|
||||
# $NODE_NAME=BitcoinCore
|
||||
# $NODE_VERSION=0.17.0
|
||||
# $LATEST_TAG=0.17.0
|
||||
SEPARATOR=$(expr index "$CIRCLE_TAG" "/")
|
||||
NODE_NAME=${CIRCLE_TAG:0:$SEPARATOR-1}
|
||||
LATEST_TAG="${CIRCLE_TAG:$SEPARATOR}"
|
||||
NODE_VERSION="$LATEST_TAG"
|
||||
DOCKERHUB_REPO="btcpayserver/$NODE_NAME"
|
||||
DOCKERHUB_REPO="${DOCKERHUB_REPO,,}"
|
||||
DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG-amd64"
|
||||
DOCKERHUB_DOCKEFILE="$NODE_NAME/$NODE_VERSION/linuxamd64.Dockerfile"
|
||||
#
|
||||
echo "Pushing $DOCKERHUB_DOCKEFILE to dockerhub repository $DOCKERHUB_DESTINATION"
|
||||
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
sudo docker build --pull -t $DOCKERHUB_DESTINATION -f "$DOCKERHUB_DOCKEFILE" "$NODE_NAME/$NODE_VERSION"
|
||||
sudo docker push $DOCKERHUB_DESTINATION
|
||||
source ".circleci/parse-tag.sh"
|
||||
DOCKERHUB_DOCKEFILE="$DOCKERHUB_DOCKEFILE_AMD64"
|
||||
source ".circleci/push-image.sh"
|
||||
|
||||
publish_linuxarm64v8:
|
||||
machine:
|
||||
@ -47,20 +31,8 @@ jobs:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
# If CIRCLE_TAG is "BitcoinCore/0.17.0"
|
||||
# Then:
|
||||
# $SEPARATOR=12
|
||||
# $NODE_NAME=BitcoinCore
|
||||
# $NODE_VERSION=0.17.0
|
||||
# $LATEST_TAG=0.17.0
|
||||
SEPARATOR=$(expr index "$CIRCLE_TAG" "/")
|
||||
NODE_NAME=${CIRCLE_TAG:0:$SEPARATOR-1}
|
||||
LATEST_TAG="${CIRCLE_TAG:$SEPARATOR}"
|
||||
NODE_VERSION="$LATEST_TAG"
|
||||
DOCKERHUB_REPO="btcpayserver/$NODE_NAME"
|
||||
DOCKERHUB_REPO="${DOCKERHUB_REPO,,}"
|
||||
DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG-arm64v8"
|
||||
DOCKERHUB_DOCKEFILE="$NODE_NAME/$NODE_VERSION/linuxarm64v8.Dockerfile"
|
||||
source ".circleci/parse-tag.sh"
|
||||
DOCKERHUB_DOCKEFILE="$DOCKERHUB_DOCKEFILE_ARM64"
|
||||
if [ -f $DOCKERHUB_DOCKEFILE ]; then
|
||||
#
|
||||
# Make sure the builder is copy the arm emulator
|
||||
@ -70,10 +42,7 @@ jobs:
|
||||
sudo cp /usr/bin/qemu-aarch64-static "$(dirname "$DOCKERHUB_DOCKEFILE")/qemu-aarch64-static"
|
||||
sed -i -e 's/#EnableQEMU //g' "$DOCKERHUB_DOCKEFILE"
|
||||
#
|
||||
echo "Pushing $DOCKERHUB_DOCKEFILE to dockerhub repository $DOCKERHUB_DESTINATION"
|
||||
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
sudo docker build --pull -t $DOCKERHUB_DESTINATION -f "$DOCKERHUB_DOCKEFILE" "$NODE_NAME/$NODE_VERSION"
|
||||
sudo docker push $DOCKERHUB_DESTINATION
|
||||
source ".circleci/push-image.sh"
|
||||
else
|
||||
echo "Skipping linuxarm64v8 because $DOCKERHUB_DOCKEFILE is not found"
|
||||
fi
|
||||
@ -84,20 +53,8 @@ jobs:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
# If CIRCLE_TAG is "BitcoinCore/0.17.0"
|
||||
# Then:
|
||||
# $SEPARATOR=12
|
||||
# $NODE_NAME=BitcoinCore
|
||||
# $NODE_VERSION=0.17.0
|
||||
# $LATEST_TAG=0.17.0
|
||||
SEPARATOR=$(expr index "$CIRCLE_TAG" "/")
|
||||
NODE_NAME=${CIRCLE_TAG:0:$SEPARATOR-1}
|
||||
LATEST_TAG="${CIRCLE_TAG:$SEPARATOR}"
|
||||
NODE_VERSION="$LATEST_TAG"
|
||||
DOCKERHUB_REPO="btcpayserver/$NODE_NAME"
|
||||
DOCKERHUB_REPO="${DOCKERHUB_REPO,,}"
|
||||
DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG-arm32v7"
|
||||
DOCKERHUB_DOCKEFILE="$NODE_NAME/$NODE_VERSION/linuxarm32v7.Dockerfile"
|
||||
source ".circleci/parse-tag.sh"
|
||||
DOCKERHUB_DOCKEFILE="$DOCKERHUB_DOCKEFILE_ARM32"
|
||||
#
|
||||
# Make sure the builder is copy the arm emulator
|
||||
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
@ -108,10 +65,7 @@ jobs:
|
||||
sed -i -e 's/#EnableQEMU //g' "$DOCKERHUB_DOCKEFILE"
|
||||
fi
|
||||
#
|
||||
echo "Pushing $DOCKERHUB_DOCKEFILE to dockerhub repository $DOCKERHUB_DESTINATION"
|
||||
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
sudo docker build --pull -t $DOCKERHUB_DESTINATION -f "$DOCKERHUB_DOCKEFILE" "$NODE_NAME/$NODE_VERSION"
|
||||
sudo docker push $DOCKERHUB_DESTINATION
|
||||
source ".circleci/push-image.sh"
|
||||
publish_multiarch:
|
||||
machine:
|
||||
enabled: true
|
||||
@ -122,20 +76,7 @@ jobs:
|
||||
# Turn on Experimental features
|
||||
sudo mkdir $HOME/.docker
|
||||
sudo sh -c 'echo "{ \"experimental\": \"enabled\" }" >> $HOME/.docker/config.json'
|
||||
# If CIRCLE_TAG is "BitcoinCore/0.17.0"
|
||||
# Then:
|
||||
# $SEPARATOR=12
|
||||
# $NODE_NAME=BitcoinCore
|
||||
# $NODE_VERSION=0.17.0
|
||||
# $LATEST_TAG=0.17.0
|
||||
SEPARATOR=$(expr index "$CIRCLE_TAG" "/")
|
||||
NODE_NAME=${CIRCLE_TAG:0:$SEPARATOR-1}
|
||||
LATEST_TAG="${CIRCLE_TAG:$SEPARATOR}"
|
||||
NODE_VERSION="$LATEST_TAG"
|
||||
DOCKERHUB_REPO="btcpayserver/$NODE_NAME"
|
||||
DOCKERHUB_REPO="${DOCKERHUB_REPO,,}"
|
||||
DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG"
|
||||
DOCKERHUB_DOCKEFILE_ARM64="$NODE_NAME/$NODE_VERSION/linuxarm64v8.Dockerfile"
|
||||
source ".circleci/parse-tag.sh"
|
||||
#
|
||||
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
IMAGES="$DOCKERHUB_DESTINATION-amd64 $DOCKERHUB_DESTINATION-arm32v7"
|
||||
@ -158,23 +99,23 @@ workflows:
|
||||
filters:
|
||||
branches:
|
||||
ignore: /.*/
|
||||
# Example: BitcoinCore/0.17.0
|
||||
# Example: BitcoinCore/0.17.0 or BitcoinCore/0.17.0-1
|
||||
tags:
|
||||
only: /^[^/]+[/][0-9]+(\.[0-9]+)*/
|
||||
only: /^[^/]+[/][0-9]+(\.[0-9]+)*(-[0-9]+)?/
|
||||
- publish_linuxarm32v7:
|
||||
filters:
|
||||
branches:
|
||||
ignore: /.*/
|
||||
tags:
|
||||
# Example: BitcoinCore/0.17.0
|
||||
only: /^[^/]+[/][0-9]+(\.[0-9]+)*/
|
||||
only: /^[^/]+[/][0-9]+(\.[0-9]+)*(-[0-9]+)?/
|
||||
- publish_linuxarm64v8:
|
||||
filters:
|
||||
branches:
|
||||
ignore: /.*/
|
||||
tags:
|
||||
# Example: BitcoinCore/0.17.0
|
||||
only: /^[^/]+[/][0-9]+(\.[0-9]+)*/
|
||||
only: /^[^/]+[/][0-9]+(\.[0-9]+)*(-[0-9]+)?/
|
||||
- publish_multiarch:
|
||||
requires:
|
||||
- publish_linuxamd64
|
||||
@ -185,4 +126,4 @@ workflows:
|
||||
ignore: /.*/
|
||||
tags:
|
||||
# Example: BitcoinCore/0.17.0
|
||||
only: /^[^/]+[/][0-9]+(\.[0-9]+)*/
|
||||
only: /^[^/]+[/][0-9]+(\.[0-9]+)*(-[0-9]+)?/
|
||||
|
28
.circleci/parse-tag.sh
Executable file
28
.circleci/parse-tag.sh
Executable file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
# If Input CIRCLE_TAG="Bitcoin/0.17.0-1"
|
||||
# Then Output:
|
||||
# NODE_NAME:Bitcoin
|
||||
# LATEST_TAG:0.17.0-1
|
||||
# NODE_VERSION:0.17.0
|
||||
# DOCKERHUB_REPO:btcpayserver/bitcoin
|
||||
# DOCKERHUB_DESTINATION:btcpayserver/bitcoin:0.17.0-1
|
||||
# DOCKERHUB_DOCKEFILE_ARM64:Bitcoin/0.17.0/linuxarm64v8.Dockerfile
|
||||
# DOCKERHUB_DOCKEFILE_ARM32:Bitcoin/0.17.0/linuxarm32v7.Dockerfile
|
||||
# DOCKERHUB_DOCKEFILE_AMD64:Bitcoin/0.17.0/linuxamd64.Dockerfile
|
||||
|
||||
SEPARATOR=$(expr index "$CIRCLE_TAG" "/")
|
||||
SEPARATOR_REVISION=$(expr index "$CIRCLE_TAG" "-")
|
||||
NODE_NAME=${CIRCLE_TAG:0:$SEPARATOR-1}
|
||||
if [ "$SEPARATOR_REVISION" -gt "$SEPARATOR" ]; then
|
||||
NODE_VERSION="${CIRCLE_TAG:$SEPARATOR:$SEPARATOR_REVISION-$SEPARATOR-1}"
|
||||
else
|
||||
NODE_VERSION="${CIRCLE_TAG:$SEPARATOR}"
|
||||
fi
|
||||
LATEST_TAG="${CIRCLE_TAG:$SEPARATOR}"
|
||||
DOCKERHUB_REPO="btcpayserver/$NODE_NAME"
|
||||
DOCKERHUB_REPO="${DOCKERHUB_REPO,,}"
|
||||
DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG"
|
||||
DOCKERHUB_DOCKEFILE_ARM64="$NODE_NAME/$NODE_VERSION/linuxarm64v8.Dockerfile"
|
||||
DOCKERHUB_DOCKEFILE_ARM32="$NODE_NAME/$NODE_VERSION/linuxarm32v7.Dockerfile"
|
||||
DOCKERHUB_DOCKEFILE_AMD64="$NODE_NAME/$NODE_VERSION/linuxamd64.Dockerfile"
|
6
.circleci/push-image.sh
Executable file
6
.circleci/push-image.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Pushing $DOCKERHUB_DOCKEFILE to dockerhub repository $DOCKERHUB_DESTINATION"
|
||||
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
sudo docker build --pull -t $DOCKERHUB_DESTINATION -f "$DOCKERHUB_DOCKEFILE" "$NODE_NAME/$NODE_VERSION"
|
||||
sudo docker push $DOCKERHUB_DESTINATION
|
Loading…
Reference in New Issue
Block a user