mirror of
				https://github.com/factoriotools/factorio-docker.git
				synced 2025-10-31 17:08:08 +01:00 
			
		
		
		
	
							
								
								
									
										50
									
								
								build.sh
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								build.sh
									
									
									
									
									
								
							| @@ -1,33 +1,39 @@ | ||||
| #!/bin/bash | ||||
| set -eoux pipefail | ||||
|  | ||||
| if [ -z "$1" ] && [ -n "$CI" ]; then | ||||
| if [[ -z ${1:-} ]] && [[ -n ${CI:-} ]]; then | ||||
|   echo "Usage: ./build.sh \$VERSION_SHORT" | ||||
|   exit 1 | ||||
| elif [ "$CI" == "true" ]; then | ||||
| elif [[ $CI == true ]]; then | ||||
|   VERSION_SHORT="$1" | ||||
| else | ||||
|   VERSION_SHORT=$(find . -maxdepth 1 -type d | sort | tail -1 | grep -o "[0-9].[0-9]*") | ||||
|   VERSION_SHORT=$(find . -maxdepth 1 -type d | sort | tail -1 | grep -o "[[0-9]].[[0-9]]*") | ||||
|   EXTRA_TAG=latest | ||||
| fi | ||||
|  | ||||
| cd "$VERSION_SHORT" || exit | ||||
| cd "$VERSION_SHORT" || exit 1 | ||||
|  | ||||
| VERSION=$(grep -oP '[0-9]+\.[0-9]+\.[0-9]+' Dockerfile | head -1) | ||||
| DOCKER_REPO=factoriotools/factorio | ||||
|  | ||||
| if [ "$TRAVIS_PULL_REQUEST" == "true" ]; then | ||||
| if [[ $TRAVIS_PULL_REQUEST == true ]]; then | ||||
|   TAGS="$DOCKER_REPO:$TRAVIS_PULL_REQUEST_SLUG" | ||||
| else | ||||
|   if [ "$TRAVIS_BRANCH" == "master" ] || [ "$TRAVIS_BRANCH" == "$VERSION" ]; then | ||||
|   # we are either on master or on a tag build | ||||
|   if [[ $TRAVIS_BRANCH == master ]] || [[ $TRAVIS_BRANCH == "$VERSION" ]]; then | ||||
|     TAGS="$DOCKER_REPO:$VERSION -t $DOCKER_REPO:$VERSION_SHORT" | ||||
|   elif [ -n "$TRAVIS_BRANCH" ]; then | ||||
|   # we are on an incremental build of a tag | ||||
|   elif [[ $TRAVIS_BRANCH == "${VERSION%-*}" ]]; then | ||||
|     TAGS="$DOCKER_REPO:$TRAVIS_BRANCH -t $DOCKER_REPO:$VERSION -t $DOCKER_REPO:$VERSION_SHORT" | ||||
|   # we build a other branch than master | ||||
|   elif [[ -n $TRAVIS_BRANCH ]]; then | ||||
|     TAGS="$DOCKER_REPO:$TRAVIS_BRANCH" | ||||
|   elif [ "$CI" == "" ]; then | ||||
|   # we are not in CI and tag version and version short | ||||
|   elif [[ $CI == "" ]]; then | ||||
|     TAGS="$DOCKER_REPO:$VERSION -t $DOCKER_REPO:$VERSION_SHORT" | ||||
|   fi | ||||
|  | ||||
|   if [ -n "$EXTRA_TAG" ]; then | ||||
|   if [[ -n $EXTRA_TAG ]]; then | ||||
|     TAGS="$TAGS -t $DOCKER_REPO:$EXTRA_TAG" | ||||
|   fi | ||||
| fi | ||||
| @@ -36,22 +42,34 @@ fi | ||||
| docker build . -t $TAGS | ||||
| docker images | ||||
|  | ||||
| if [[ "$(dirname "$(git diff --name-only HEAD^)")" =~ $VERSION_SHORT ]] && [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ] || | ||||
|   [ "$TRAVIS_BRANCH" == "$VERSION" ] && [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ] || | ||||
|   [ "$CI" == "" ]; then | ||||
| # only push when: | ||||
| # latest changes where made in the folder corosponding to the version we build, we are on master and don#t build a PR. | ||||
| if [[ $(dirname "$(git diff --name-only HEAD^)") =~ $VERSION_SHORT ]] && [[ $TRAVIS_BRANCH == master ]] && [[ $TRAVIS_PULL_REQUEST_BRANCH == "" ]] || | ||||
|   # we build a tag and we are not on master | ||||
|   [[ $TRAVIS_BRANCH == "${VERSION%-*}" ]] && [[ $TRAVIS_PULL_REQUEST_BRANCH == "" ]] || | ||||
|   # we are not in CI | ||||
|   [[ $CI == "" ]]; then | ||||
|  | ||||
|   if [ "$CI" == "true" ]; then | ||||
|   if [[ $CI == true ]]; then | ||||
|     echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin | ||||
|   fi | ||||
|  | ||||
|   if [ -n "$TRAVIS_BRANCH" ] && [ "$TRAVIS_BRANCH" != "$VERSION" ] && [ "$TRAVIS_BRANCH" != "master" ]; then | ||||
|   # push a tag on a branch other than master | ||||
|   if [[ -n "$TRAVIS_BRANCH" ]] && [[ "$TRAVIS_BRANCH" != "${VERSION%-*}" ]] && [[ "$TRAVIS_BRANCH" != "master" ]]; then | ||||
|     docker push "$DOCKER_REPO:$TRAVIS_BRANCH" | ||||
|   fi | ||||
|   if [ -n "$TRAVIS_TAG" ] || [ "$CI" == "" ]; then | ||||
|  | ||||
|   # push an incremental tag | ||||
|   if [[ "$TRAVIS_BRANCH" != "${VERSION%-*}" ]]; then | ||||
|     docker push "$DOCKER_REPO:$TRAVIS_BRANCH" | ||||
|   fi | ||||
|  | ||||
|   if [[ -n "$TRAVIS_TAG" ]] || [[ "$CI" == "" ]]; then | ||||
|     docker push "$DOCKER_REPO:$VERSION" | ||||
|     docker push "$DOCKER_REPO:$VERSION_SHORT" | ||||
|   fi | ||||
|   if [ -n "$EXTRA_TAG" ]; then | ||||
|  | ||||
|   if [[ -n "$EXTRA_TAG" ]]; then | ||||
|     docker push "$DOCKER_REPO:$EXTRA_TAG" | ||||
|   fi | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user