Skip to content

Instantly share code, notes, and snippets.

@Trumeet
Created March 26, 2019 22:14
Show Gist options
  • Save Trumeet/7d28b82043ab561f0ffa9b70df305aa4 to your computer and use it in GitHub Desktop.
Save Trumeet/7d28b82043ab561f0ffa9b70df305aa4 to your computer and use it in GitHub Desktop.
A Travis CI configuration demo, it can auto build the Docker image, push it, release the JAR inside the image to GitHub Releases and tag it.
language: java
services:
- docker
before_install:
- echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY" -u "$DOCKER_USERNAME" --password-stdin
- ./gradlew exportVersion
- export VERSION=$(cat version.txt)
- export VERSION_CODE=$(cat version_code.txt)
script:
- docker build -t "$DOCKER_REGISTRY"/"$DOCKER_IMAGE_NAME":"$VERSION" .
before_deploy:
# ref: https://github.com/travis-ci/travis-ci/issues/2570#issuecomment-171262181
- >
if ! [ "$BEFORE_DEPLOY_RUN" ]; then
export BEFORE_DEPLOY_RUN=1;
# Extract JAR for deploying. ref: https://stackoverflow.com/a/31316636/6792243
id=$(docker create "$DOCKER_REGISTRY"/"$DOCKER_IMAGE_NAME":"$VERSION")
docker cp $id:/app/server.jar - > ./server.tar
tar xvf server.tar
mv server.jar server-$VERSION.jar
docker rm -v $id
git tag $VERSION
fi
deploy:
- provider: script
script: docker push "$DOCKER_REGISTRY"/"$DOCKER_IMAGE_NAME":"$VERSION"
on:
branch: master
- provider: releases
name: $VERSION
prerelease: true
skip_cleanup: true
api_key:
secure: 2FwtavD4qGWijgsjp21hs45t1WFNsEMVlGQZMYnc0vwsehqwQIoVANJAARofAOQFG/UOJoYW413cozqkn7W68JrInVCejO78FZqhyvuChWt/Wp84+a+7894zXD0Cnthjx0dv+Sx4MOzFwp4xAMYLNlTWFAbmsW60e2cbM/HHsPjLbb55tCCxMIdEjG2jqgUu4Em3nJRLfFu1aol9D35vGqDx+E2tNZT8sBbWDe6NoTyAQsIiQe+viVxF5k8B1I8OEfqgJkc5V5YaPSq9KWbv9zTWdL/LZGbI8kCDve1RvZV48g9TRwVqz91wjKcHByvqBlO9jc6s70rpbgqF39Mx0N6fFHXZIDYMNY0l7wyO8RXAr6trV37wxGyptzsJhRJdf/CCb7hiJziLWAfBbFq6/2vSZnoUERnv42ef4dlxVfkA8yqBPeXGa8Ev4UCIa3ObfSYXUW8O3NtSwasLEsC0iMoHRvE4m8AQhHhvVP6h1Q7jsroiJdnIZN2FwF1sBHVOz5V1141HXMzlM9vc+kYzdTAIC8er+h4CE2133FNctlV2mlhLVBOXDx3kcH+algFwEPyWAR+a+g+DoegqavfABB36+SL9bz4vuohM3kY8Lbl5PbF5N2zV0sgSidRS234tTzToI5dt+yun5RUqm0CfgiEYpuyOc3PSvmKOmI9kiIA=
file:
- ./server-$VERSION.jar
on:
repo: Trumeet/PLS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment