Update CircleCI config with release tag builds
This commit is contained in:
		| @@ -1,17 +1,72 @@ | ||||
| version: 2.1 | ||||
| commands: | ||||
|   calculate-tag-name: | ||||
|     description: "Calculates the target tag name for Docker image" | ||||
|     parameters: | ||||
|       distro: | ||||
|         type: string | ||||
|     steps: | ||||
|       - run: | ||||
|           name: Calculate tag to set for the built Docker image | ||||
|           command: | | ||||
|             if [ "$CIRCLE_BRANCH" = "master" ]; then TAG_VERSION=latest; else TAG_VERSION=$CIRCLE_BRANCH; fi | ||||
|             if [ "<< parameters.distro >>" = "ubuntu" ]; then TAG_DISTRO=""; else TAG_DISTRO=-<< parameters.distro >>; fi | ||||
|             echo "export IMAGE_TAG=$TAG_VERSION$TAG_DISTRO" >> $BASH_ENV | ||||
| workflows: | ||||
|   # Defines jobs to run when a commit is pushed to master branch | ||||
|   build-latest-version: | ||||
|     jobs: | ||||
|       - build-armhf-image: | ||||
|           context: dockerhub | ||||
|           filters: | ||||
|             branches: | ||||
|               only: | ||||
|                 - master | ||||
|       - build-arm64-image: | ||||
|           context: dockerhub | ||||
|           filters: | ||||
|             branches: | ||||
|               only: | ||||
|                 - master | ||||
|       - build-and-deploy-gh-pages: | ||||
|           filters: | ||||
|             branches: | ||||
|               only: master | ||||
|  | ||||
|   # Defines jobs to run when a commit is pushed to dev branch | ||||
|   build-dev-version: | ||||
|     jobs: | ||||
|       - build-armhf-image: | ||||
|           context: dockerhub | ||||
|           filters: | ||||
|             branches: | ||||
|               only: | ||||
|                 - dev | ||||
|       - build-arm64-image: | ||||
|           context: dockerhub | ||||
|           filters: | ||||
|             branches: | ||||
|               only: | ||||
|                 - dev | ||||
|  | ||||
|   # Defines jobs to run when a new release tag is created | ||||
|   build-tagged-version: | ||||
|     jobs: | ||||
|       - build-ubuntu-image: | ||||
|           context: dockerhub | ||||
|           filters: | ||||
|             branches: | ||||
|               ignore: /.*/ | ||||
|             tags: | ||||
|               only: /^\d+\.\d+.*/ | ||||
|       - build-alpine-image: | ||||
|           context: dockerhub | ||||
|           filters: | ||||
|             branches: | ||||
|               ignore: /.*/ | ||||
|             tags: | ||||
|               only: /^\d+\.\d+.*/ | ||||
|       - build-armhf-image: | ||||
|           context: dockerhub | ||||
|           filters: | ||||
|             branches: | ||||
|               ignore: /.*/ | ||||
|             tags: | ||||
|               only: /^\d+\.\d+.*/ | ||||
|       - build-arm64-image: | ||||
|           context: dockerhub | ||||
|           filters: | ||||
|             branches: | ||||
|               ignore: /.*/ | ||||
|             tags: | ||||
|               only: /^\d+\.\d+.*/ | ||||
|  | ||||
| jobs: | ||||
|   build-ubuntu-image: | ||||
| @@ -34,6 +89,26 @@ jobs: | ||||
|           name: Push image | ||||
|           command: docker push $IMAGE_NAME:$IMAGE_TAG | ||||
|  | ||||
|   build-alpine-image: | ||||
|     environment: | ||||
|       IMAGE_NAME: haugene/transmission-openvpn | ||||
|     docker: | ||||
|       - image: circleci/buildpack-deps:stretch | ||||
|     steps: | ||||
|       - checkout | ||||
|       - setup_remote_docker | ||||
|       - calculate-tag-name: | ||||
|           distro: alpine | ||||
|       - run: | ||||
|           name: Build Docker image | ||||
|           command: docker build -t $IMAGE_NAME:$IMAGE_TAG -f Dockerfile.alpine . | ||||
|       - run: | ||||
|           name: Login to Docker Hub | ||||
|           command: echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin | ||||
|       - run: | ||||
|           name: Push image | ||||
|           command: docker push $IMAGE_NAME:$IMAGE_TAG | ||||
|  | ||||
|   build-armhf-image: | ||||
|     environment: | ||||
|       IMAGE_NAME: haugene/transmission-openvpn | ||||
| @@ -98,33 +173,28 @@ jobs: | ||||
|           name: "Build and push site" | ||||
|           command: mkdocs gh-deploy --message "Deployed {sha} with MkDocs version {version}. [skip ci]" | ||||
|  | ||||
| workflows: | ||||
|   version: 2 | ||||
|   build-images: | ||||
|     jobs: | ||||
|       - build-ubuntu-image: | ||||
|           context: dockerhub | ||||
|           filters: | ||||
|             branches: | ||||
|               only: | ||||
|                 - beta | ||||
|       - build-armhf-image: | ||||
|           context: dockerhub | ||||
|           filters: | ||||
|             branches: | ||||
|               only: | ||||
|                 - master | ||||
|                 - dev | ||||
|       - build-arm64-image: | ||||
|           context: dockerhub | ||||
|           filters: | ||||
|             branches: | ||||
|               only: | ||||
|                 - master | ||||
|                 - dev | ||||
|   documentation-update: | ||||
|     jobs: | ||||
|       - build-and-deploy-gh-pages: | ||||
|           filters: | ||||
|             branches: | ||||
|               only: master | ||||
| commands: | ||||
|   calculate-tag-name: | ||||
|     description: "Calculates the target tag name for Docker image" | ||||
|     parameters: | ||||
|       distro: | ||||
|         type: string | ||||
|     steps: | ||||
|       - run: | ||||
|           name: Calculate tag to set for the built Docker image | ||||
|           command: | | ||||
|             if [ ! -z $CIRCLE_TAG ]; then | ||||
|               TAG_VERSION=$CIRCLE_TAG | ||||
|             elif [ "$CIRCLE_BRANCH" = "master" ]; then | ||||
|               TAG_VERSION=latest | ||||
|             else | ||||
|               TAG_VERSION=$CIRCLE_BRANCH; | ||||
|             fi | ||||
|  | ||||
|             if [ "<< parameters.distro >>" = "ubuntu" ]; then | ||||
|               TAG_DISTRO=""; | ||||
|             else | ||||
|               TAG_DISTRO=-<< parameters.distro >>; | ||||
|             fi | ||||
|  | ||||
|             echo "export IMAGE_TAG=$TAG_VERSION$TAG_DISTRO" >> $BASH_ENV | ||||
|   | ||||
		Reference in New Issue
	
	Block a user