From 8fe26a08b39a0a23d3abf8699c729ad3f675dcb7 Mon Sep 17 00:00:00 2001 From: Dmitry Dunaev Date: Mon, 19 Jul 2021 17:19:16 +0300 Subject: [PATCH] [WIFI-2622] Add: branching release model in CI --- .github/workflows/{build.yml => ci.yml} | 49 ++++++++++++++++--------- 1 file changed, 32 insertions(+), 17 deletions(-) rename .github/workflows/{build.yml => ci.yml} (50%) diff --git a/.github/workflows/build.yml b/.github/workflows/ci.yml similarity index 50% rename from .github/workflows/build.yml rename to .github/workflows/ci.yml index f7b448c..9d90a46 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,9 @@ on: - '**.md' branches: - main + - 'release/*' + tags: + - 'v*' pull_request: branches: - main @@ -26,28 +29,40 @@ jobs: - name: Build Docker image run: docker build -t wlan-cloud-ucentralgw-ui:${{ github.sha }} . + - name: Tag Docker image + run: | + TAGS="${{ github.sha }}" + + if [[ ${GITHUB_REF} == "refs/heads/"* ]] + then + CURRENT_TAG=$(echo ${GITHUB_REF#refs/heads/} | tr '/' '-') + TAGS="$TAGS $CURRENT_TAG" + else + if [[ ${GITHUB_REF} == "refs/tags/"* ]] + then + CURRENT_TAG=$(echo ${GITHUB_REF#refs/tags/} | tr '/' '-') + TAGS="$TAGS $CURRENT_TAG" + else # PR build + CURRENT_TAG=$(echo ${GITHUB_HEAD_REF#refs/heads/} | tr '/' '-') + TAGS="$TAGS $CURRENT_TAG" + fi + fi + + echo "Result tags: $TAGS" + + for tag in $TAGS; do + docker tag wlan-cloud-ucentralgw-ui:${{ github.sha }} ${{ env.DOCKER_REGISTRY_URL }}/ucentralgw-ui:$tag + done + - name: Log into Docker registry + if: startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/pull/') || github.ref == 'refs/heads/main' uses: docker/login-action@v1 with: registry: ${{ env.DOCKER_REGISTRY_URL }} username: ${{ env.DOCKER_REGISTRY_USERNAME }} password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }} - - name: Push Docker image + - name: Push Docker images + if: startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/pull/') || github.ref == 'refs/heads/main' run: | - TAGS="${{ github.sha }}" - - if [ ${GITHUB_REF} == "refs/heads/main" ] - then - TAGS="$TAGS ${GITHUB_REF#refs/heads/}" - else # PR build - CURRENT_TAG=$(echo ${GITHUB_HEAD_REF#refs/heads/} | tr '/' '-') - TAGS="$TAGS $CURRENT_TAG" - fi - - echo "Pushing tags $TAGS" - - for tag in $TAGS; do - docker tag wlan-cloud-ucentralgw-ui:${{ github.sha }} ${{ env.DOCKER_REGISTRY_URL }}/ucentralgw-ui:$tag - docker push ${{ env.DOCKER_REGISTRY_URL }}/ucentralgw-ui:$tag - done + docker images | grep ${{ env.DOCKER_REGISTRY_URL }}/ucentralgw-ui | awk -F ' ' '{print $1":"$2}' | xargs -I {} docker push {}