diff --git a/.github/workflows/on_release.yml b/.github/workflows/on_release.yml new file mode 100644 index 0000000..010f509 --- /dev/null +++ b/.github/workflows/on_release.yml @@ -0,0 +1,35 @@ +name: Deploy to Docker Hub + +on: + release: + types: [published] + +jobs: + + build: + runs-on: ubuntu-latest + steps: + + - name: Checkout source code + uses: actions/checkout@v1 + + + - name: Deploy to Docker Hub + if: success() && startsWith(github.ref, 'refs/tags/v') + env: + GITHUB_REF_TAG: ${{ github.ref }} + DOCKER_REGISTRY: docker.io + DOCKER_IMAGE: grafolean/grafolean-ping-bot + DOCKER_USER: grafolean + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + run: | + export VERSION=${GITHUB_REF_TAG:10:50} + echo "Version is $VERSION" + export LAST_KNOWN_VERSION=`git tag -l --sort=-version:refname "v*.*.*" | grep -v rc | head -n 1 | tr -d '[:space:]'` + echo "Last known version is $LAST_KNOWN_VERSION" + docker login -u $DOCKER_USER -p $DOCKER_PASSWORD $DOCKER_REGISTRY + docker build -t "docker.io/$DOCKER_IMAGE:$VERSION" -t "docker.io/$DOCKER_IMAGE:latest" --build-arg VERSION=$VERSION --build-arg VCS_REF=$GITHUB_SHA --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') . + [ "$LAST_KNOWN_VERSION" == "$VERSION" ] && docker tag "docker.io/$DOCKER_IMAGE:$VERSION" "docker.io/$DOCKER_IMAGE:latest" || echo "NOT MARKING AS LATEST!" + docker images + docker push "docker.io/$DOCKER_IMAGE:$VERSION" + [ "$LAST_KNOWN_VERSION" == "$VERSION" ] && docker push "docker.io/$DOCKER_IMAGE:latest" || echo "NOT LATEST!"