From 25d5dba758fc5e60fffe5295ca2bbf7ea0b252cd Mon Sep 17 00:00:00 2001 From: Travis Glenn Hansen Date: Wed, 12 Feb 2020 22:11:54 -0700 Subject: [PATCH 1/8] Create main.yml --- .github/workflows/main.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..c966110 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,20 @@ +name: CI + +on: [push] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: docker build + run: | + export DOCKER_CLI_EXPERIMENTAL=enabled + export ARCH=$([ $(uname -m) = "x86_64" ] && echo "amd64" || echo "arm64") + mkdir -p ~/.docker/cli-plugins/ + wget -O ~/.docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-${ARCH} + chmod a+x ~/.docker/cli-plugins/docker-buildx + docker info + docker buildx version From 456997eeb60739c0f559ec63fa34eaffff21f60a Mon Sep 17 00:00:00 2001 From: Travis Glenn Hansen Date: Wed, 12 Feb 2020 22:22:05 -0700 Subject: [PATCH 2/8] Update main.yml --- .github/workflows/main.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c966110..a7fcafd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,7 +14,10 @@ jobs: export DOCKER_CLI_EXPERIMENTAL=enabled export ARCH=$([ $(uname -m) = "x86_64" ] && echo "amd64" || echo "arm64") mkdir -p ~/.docker/cli-plugins/ - wget -O ~/.docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-${ARCH} + wget -qO ~/.docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-${ARCH} chmod a+x ~/.docker/cli-plugins/docker-buildx docker info docker buildx version + #docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + docker buildx create --name xbuilder --use + docker buildx inspect --bootstrap From e2a4db61a1dcc3cfd76beaad3fa60b58f4422e9c Mon Sep 17 00:00:00 2001 From: Travis Glenn Hansen Date: Wed, 12 Feb 2020 22:32:43 -0700 Subject: [PATCH 3/8] Update main.yml --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a7fcafd..059463e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,6 +18,7 @@ jobs: chmod a+x ~/.docker/cli-plugins/docker-buildx docker info docker buildx version - #docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes docker buildx create --name xbuilder --use docker buildx inspect --bootstrap + From 06a4c4af888d0f8312cdf89e7fe732432fc12513 Mon Sep 17 00:00:00 2001 From: Travis Glenn Hansen Date: Wed, 12 Feb 2020 23:00:27 -0700 Subject: [PATCH 4/8] Update main.yml --- .github/workflows/main.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 059463e..b7d6974 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,6 +1,12 @@ name: CI -on: [push] +on: + push: + tags: + - 'v*' + branches: + - master + - next jobs: build: @@ -11,7 +17,7 @@ jobs: - uses: actions/checkout@v2 - name: docker build run: | - export DOCKER_CLI_EXPERIMENTAL=enabled + env export ARCH=$([ $(uname -m) = "x86_64" ] && echo "amd64" || echo "arm64") mkdir -p ~/.docker/cli-plugins/ wget -qO ~/.docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-${ARCH} @@ -21,4 +27,5 @@ jobs: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes docker buildx create --name xbuilder --use docker buildx inspect --bootstrap - + env: + DOCKER_CLI_EXPERIMENTAL: enabled From 3701cb1015ab53eadc25225835eb432a24404624 Mon Sep 17 00:00:00 2001 From: Travis Glenn Hansen Date: Wed, 12 Feb 2020 23:12:37 -0700 Subject: [PATCH 5/8] ci in github --- .github/bin/docker-release.sh | 22 ++++++++++++++++++++ .github/workflows/main.yml | 39 ++++++++++++++++++----------------- 2 files changed, 42 insertions(+), 19 deletions(-) create mode 100755 .github/bin/docker-release.sh diff --git a/.github/bin/docker-release.sh b/.github/bin/docker-release.sh new file mode 100755 index 0000000..3ae3766 --- /dev/null +++ b/.github/bin/docker-release.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin + +export DOCKER_ORG="democraticcsi" +export DOCKER_PROJECT="democratic-csi" +export DOCKER_REPO="${DOCKER_ORG}/${DOCKER_PROJECT}" + +export GIT_BRANCH=${GITHUB_REF#refs/heads/} +export GIT_TAG=${GITHUB_TAG} + +if [[ -n "${GIT_TAG}" ]]; then + docker buildx build --progress plain --pull --push --platform "${DOCKER_BUILD_PLATFORM}" -t ${DOCKER_REPO}:${GIT_TAG} . +elif [[ -n "${GIT_BRANCH}" ]]; then + if [[ "${GIT_BRANCH}" == "master" ]]; then + docker buildx build --progress plain --pull --push --platform "${DOCKER_BUILD_PLATFORM}" -t ${DOCKER_REPO}:latest . + else + docker buildx build --progress plain --pull --push --platform "${DOCKER_BUILD_PLATFORM}" -t ${DOCKER_REPO}:${GIT_BRANCH} . + fi +else + : +fi diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b7d6974..9f63c5b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,29 +3,30 @@ name: CI on: push: tags: - - 'v*' + - "v*" branches: - - master - - next + - master + - next jobs: build: - runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: docker build - run: | - env - export ARCH=$([ $(uname -m) = "x86_64" ] && echo "amd64" || echo "arm64") - mkdir -p ~/.docker/cli-plugins/ - wget -qO ~/.docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-${ARCH} - chmod a+x ~/.docker/cli-plugins/docker-buildx - docker info - docker buildx version - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - docker buildx create --name xbuilder --use - docker buildx inspect --bootstrap - env: - DOCKER_CLI_EXPERIMENTAL: enabled + - uses: actions/checkout@v2 + - name: docker build + run: | + env + export ARCH=$([ $(uname -m) = "x86_64" ] && echo "amd64" || echo "arm64") + mkdir -p ~/.docker/cli-plugins/ + wget -qO ~/.docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-${ARCH} + chmod a+x ~/.docker/cli-plugins/docker-buildx + docker info + docker buildx version + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + docker buildx create --name xbuilder --use + docker buildx inspect --bootstrap + + .github/bin/docker-release.sh + env: + DOCKER_CLI_EXPERIMENTAL: enabled From d543b0e2fff5d07faddeb6a31255e02bdbb81ef9 Mon Sep 17 00:00:00 2001 From: Travis Glenn Hansen Date: Wed, 12 Feb 2020 23:15:34 -0700 Subject: [PATCH 6/8] set env variable for platforms --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9f63c5b..7e4930e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,3 +30,4 @@ jobs: .github/bin/docker-release.sh env: DOCKER_CLI_EXPERIMENTAL: enabled + DOCKER_BUILD_PLATFORM: linux/amd64,linux/arm/v7,linux/arm64 From 236d40dbee7fb138031233bf14eb7de9b44b9908 Mon Sep 17 00:00:00 2001 From: Travis Glenn Hansen Date: Wed, 12 Feb 2020 23:38:12 -0700 Subject: [PATCH 7/8] better tag logic --- .github/bin/docker-release.sh | 7 +++++-- .github/workflows/main.yml | 1 - 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/bin/docker-release.sh b/.github/bin/docker-release.sh index 3ae3766..726698f 100755 --- a/.github/bin/docker-release.sh +++ b/.github/bin/docker-release.sh @@ -6,8 +6,11 @@ export DOCKER_ORG="democraticcsi" export DOCKER_PROJECT="democratic-csi" export DOCKER_REPO="${DOCKER_ORG}/${DOCKER_PROJECT}" -export GIT_BRANCH=${GITHUB_REF#refs/heads/} -export GIT_TAG=${GITHUB_TAG} +if [[ $GITHUB_REF == refs/tags/* ]]; then + export GIT_TAG=${GITHUB_REF#refs/tags/} +else + export GIT_BRANCH=${GITHUB_REF#refs/heads/} +fi if [[ -n "${GIT_TAG}" ]]; then docker buildx build --progress plain --pull --push --platform "${DOCKER_BUILD_PLATFORM}" -t ${DOCKER_REPO}:${GIT_TAG} . diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7e4930e..4b2fb6c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,6 @@ jobs: - uses: actions/checkout@v2 - name: docker build run: | - env export ARCH=$([ $(uname -m) = "x86_64" ] && echo "amd64" || echo "arm64") mkdir -p ~/.docker/cli-plugins/ wget -qO ~/.docker/cli-plugins/docker-buildx https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-${ARCH} From f72da176bb8f4123ed5a39281b5adf083ef452eb Mon Sep 17 00:00:00 2001 From: Travis Glenn Hansen Date: Wed, 12 Feb 2020 23:43:11 -0700 Subject: [PATCH 8/8] import secrets as ENV vars --- .github/workflows/main.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4b2fb6c..2ee797f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,8 +25,10 @@ jobs: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes docker buildx create --name xbuilder --use docker buildx inspect --bootstrap - .github/bin/docker-release.sh + env: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} DOCKER_CLI_EXPERIMENTAL: enabled DOCKER_BUILD_PLATFORM: linux/amd64,linux/arm/v7,linux/arm64