|  | @@ -17,8 +17,8 @@ addons:
 | 
	
		
			
				|  |  |      # The docker manifest command was added in docker-ee version 18.x
 | 
	
		
			
				|  |  |      # So update our current installation and we also have to enable the experimental features.
 | 
	
		
			
				|  |  |      sources:
 | 
	
		
			
				|  |  | -    - sourceline: 'deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable'
 | 
	
		
			
				|  |  | -      key_url: 'https://download.docker.com/linux/ubuntu/gpg'
 | 
	
		
			
				|  |  | +      - sourceline: "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
 | 
	
		
			
				|  |  | +        key_url: "https://download.docker.com/linux/ubuntu/gpg"
 | 
	
		
			
				|  |  |      packages:
 | 
	
		
			
				|  |  |        - docker-ce
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -31,10 +31,10 @@ before_install:
 | 
	
		
			
				|  |  |    - sudo service docker restart
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  install:
 | 
	
		
			
				|  |  | -    # For cross buidling our images
 | 
	
		
			
				|  |  | -    # This is necessary because travis-ci.org has only x86_64 machines.
 | 
	
		
			
				|  |  | -    # If travis-ci.org gets native arm builds, probably this step is not
 | 
	
		
			
				|  |  | -    # necessary any more.
 | 
	
		
			
				|  |  | +  # For cross buidling our images
 | 
	
		
			
				|  |  | +  # This is necessary because travis-ci.org has only x86_64 machines.
 | 
	
		
			
				|  |  | +  # If travis-ci.org gets native arm builds, probably this step is not
 | 
	
		
			
				|  |  | +  # necessary any more.
 | 
	
		
			
				|  |  |    - docker run --rm --privileged multiarch/qemu-user-static:register --reset
 | 
	
		
			
				|  |  |      # Bats is necessary for the UT
 | 
	
		
			
				|  |  |    - curl -o bats.tar.gz -SL https://github.com/bats-core/bats-core/archive/v1.1.0.tar.gz
 | 
	
	
		
			
				|  | @@ -46,23 +46,23 @@ install:
 | 
	
		
			
				|  |  |  before_script:
 | 
	
		
			
				|  |  |    # Set baseimage.
 | 
	
		
			
				|  |  |    # remove pqchecker if arch is not amd64
 | 
	
		
			
				|  |  | -  # we are injecting them in the build scripts and we do not include them in the Dockerfiles 
 | 
	
		
			
				|  |  |    - sed -i -e "s/FROM \(.*\)/FROM \1-${TARGET_ARCH}/g" image/Dockerfile;
 | 
	
		
			
				|  |  |    - if [[ "${TARGET_ARCH}" != 'amd64' ]]; then
 | 
	
		
			
				|  |  | -      sed -i -e "/PQCHECKER/Id" image/Dockerfile;
 | 
	
		
			
				|  |  | +    sed -i -e "/PQCHECKER/Id" image/Dockerfile;
 | 
	
		
			
				|  |  |      fi
 | 
	
		
			
				|  |  |    - cat image/Dockerfile;
 | 
	
		
			
				|  |  |    # If this is a tag then change the VERSION variable to only have the
 | 
	
		
			
				|  |  |    # tag name and not also the commit hash.
 | 
	
		
			
				|  |  |    - if [ -n "$TRAVIS_TAG" ]; then
 | 
	
		
			
				|  |  | -      VERSION=$(echo "${TRAVIS_TAG}" | sed -e 's/\(.*\)[-v]\(.*\)/\1\2/g');
 | 
	
		
			
				|  |  | +    VERSION=$(echo "${TRAVIS_TAG}" | sed -e 's/\(.*\)[-v]\(.*\)/\1\2/g');
 | 
	
		
			
				|  |  |      fi
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  script:
 | 
	
		
			
				|  |  |    - make build-nocache NAME=${NAME} VERSION=${VERSION}-${TARGET_ARCH}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -after_success:
 | 
	
		
			
				|  |  | +  # Run the test and if the test fails mark the build as failed.
 | 
	
		
			
				|  |  |    - make test NAME=${NAME} VERSION=${VERSION}-${TARGET_ARCH}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +before_deploy:
 | 
	
		
			
				|  |  |    - docker run -d --name test_image ${NAME}:${VERSION}-${TARGET_ARCH} sleep 10
 | 
	
		
			
				|  |  |    - sleep 5
 | 
	
		
			
				|  |  |    - sudo docker ps | grep -q test_image
 | 
	
	
		
			
				|  | @@ -70,14 +70,20 @@ after_success:
 | 
	
		
			
				|  |  |    # use `travis env set`.
 | 
	
		
			
				|  |  |    - docker login -u "$DOCKER_USER" -p "$DOCKER_PASS";
 | 
	
		
			
				|  |  |    - make tag NAME=${NAME} VERSION=${VERSION}-${TARGET_ARCH}
 | 
	
		
			
				|  |  | -  - make push NAME=${NAME} VERSION=${VERSION}-${TARGET_ARCH}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +deploy:
 | 
	
		
			
				|  |  | +  provider: script
 | 
	
		
			
				|  |  | +  on:
 | 
	
		
			
				|  |  | +    repo: osixia/openldap
 | 
	
		
			
				|  |  | +    all_branches: true
 | 
	
		
			
				|  |  | +  script: make push NAME=${NAME} VERSION=${VERSION}-${TARGET_ARCH}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  jobs:
 | 
	
		
			
				|  |  |    include:
 | 
	
		
			
				|  |  | -    - stage: deploy
 | 
	
		
			
				|  |  | +    - stage: Manifest creation
 | 
	
		
			
				|  |  |        install: skip
 | 
	
		
			
				|  |  |        script: skip
 | 
	
		
			
				|  |  | -      after_success:
 | 
	
		
			
				|  |  | +      after_deploy:
 | 
	
		
			
				|  |  |          - docker login -u "$DOCKER_USER" -p "$DOCKER_PASS";
 | 
	
		
			
				|  |  |          - docker manifest create ${NAME}:${VERSION} ${NAME}:${VERSION}-amd64 ${NAME}:${VERSION}-i386 ${NAME}:${VERSION}-arm32v7 ${NAME}:${VERSION}-arm64v8;
 | 
	
		
			
				|  |  |            docker manifest annotate ${NAME}:${VERSION} ${NAME}:${VERSION}-amd64 --os linux --arch amd64;
 | 
	
	
		
			
				|  | @@ -87,14 +93,14 @@ jobs:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          # The latest tag is coming from the stable branch of the repo
 | 
	
		
			
				|  |  |          - if [ "${TRAVIS_BRANCH}" == 'stable' ]; then
 | 
	
		
			
				|  |  | -            docker manifest create ${NAME}:latest ${NAME}:${VERSION}-amd64 ${NAME}:${VERSION}-i386 ${NAME}:${VERSION}-arm32v7 ${NAME}:${VERSION}-arm64v8;
 | 
	
		
			
				|  |  | -            docker manifest annotate ${NAME}:latest ${NAME}:${VERSION}-amd64 --os linux --arch amd64;
 | 
	
		
			
				|  |  | -            docker manifest annotate ${NAME}:latest ${NAME}:${VERSION}-i386 --os linux --arch 386;
 | 
	
		
			
				|  |  | -            docker manifest annotate ${NAME}:latest ${NAME}:${VERSION}-arm32v7 --os linux --arch arm --variant v7;
 | 
	
		
			
				|  |  | -            docker manifest annotate ${NAME}:latest ${NAME}:${VERSION}-arm64v8 --os linux --arch arm64 --variant v8;
 | 
	
		
			
				|  |  | +          docker manifest create ${NAME}:latest ${NAME}:${VERSION}-amd64 ${NAME}:${VERSION}-i386 ${NAME}:${VERSION}-arm32v7 ${NAME}:${VERSION}-arm64v8;
 | 
	
		
			
				|  |  | +          docker manifest annotate ${NAME}:latest ${NAME}:${VERSION}-amd64 --os linux --arch amd64;
 | 
	
		
			
				|  |  | +          docker manifest annotate ${NAME}:latest ${NAME}:${VERSION}-i386 --os linux --arch 386;
 | 
	
		
			
				|  |  | +          docker manifest annotate ${NAME}:latest ${NAME}:${VERSION}-arm32v7 --os linux --arch arm --variant v7;
 | 
	
		
			
				|  |  | +          docker manifest annotate ${NAME}:latest ${NAME}:${VERSION}-arm64v8 --os linux --arch arm64 --variant v8;
 | 
	
		
			
				|  |  |            fi
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          - docker manifest push ${NAME}:${VERSION};
 | 
	
		
			
				|  |  |            if [ "${TRAVIS_BRANCH}" == 'stable' ]; then
 | 
	
		
			
				|  |  | -            docker manifest push ${NAME}:latest;
 | 
	
		
			
				|  |  | -          fi
 | 
	
		
			
				|  |  | +          docker manifest push ${NAME}:latest;
 | 
	
		
			
				|  |  | +          fi
 |