1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #!/bin/bash
- #
- # Create the official release
- #
- . "$(dirname "${BASH_SOURCE[0]}")/utils.sh"
- function usage() {
- >&2 cat << EOM
- Publish a release by building all artifacts and pushing them.
- This script requires that 'git config branch.${BRANCH}.release' is set to the
- release version for the release branch.
- EOM
- exit 1
- }
- BRANCH="$(git rev-parse --abbrev-ref HEAD)"
- VERSION="$(git config "branch.${BRANCH}.release")" || usage
- if [ -z "$(command -v jq 2> /dev/null)" ]; then
- >&2 echo "$0 requires https://stedolan.github.io/jq/"
- >&2 echo "Please install it and make sure it is available on your \$PATH."
- exit 2
- fi
- API=https://api.github.com/repos
- REPO=docker/compose
- [email protected]:$REPO
- # Check the build status is green
- sha=$(git rev-parse HEAD)
- url=$API/$REPO/statuses/$sha
- build_status=$(curl -s $url | jq -r '.[0].state')
- if [ -n "$SKIP_BUILD_CHECK" ]; then
- echo "Skipping build status check..."
- elif [[ "$build_status" != "success" ]]; then
- >&2 echo "Build status is $build_status, but it should be success."
- exit -1
- fi
- echo "Tagging the release as $VERSION"
- git tag $VERSION
- git push $GITHUB_REPO $VERSION
- echo "Uploading the docker image"
- docker push docker/compose:$VERSION
- echo "Uploading the compose-tests image"
- docker push docker/compose-tests:latest
- docker push docker/compose-tests:$VERSION
- echo "Uploading package to PyPI"
- ./script/build/write-git-sha
- python setup.py sdist bdist_wheel
- if [ "$(command -v twine 2> /dev/null)" ]; then
- twine upload ./dist/docker-compose-${VERSION/-/}.tar.gz ./dist/docker_compose-${VERSION/-/}-py2.py3-none-any.whl
- else
- python setup.py upload
- fi
- echo "Testing pip package"
- deactivate || true
- virtualenv venv-test
- source venv-test/bin/activate
- pip install docker-compose==$VERSION
- docker-compose version
- deactivate
- rm -rf venv-test
- echo "Now publish the github release, and test the downloads."
- echo "Email [email protected] and [email protected] about the new release."
|