Skip to content

Publish to Docker Hub #28

Publish to Docker Hub

Publish to Docker Hub #28

Workflow file for this run

name: Publish to Docker Hub
on:
release:
types: [published]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cache gradle packages
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle
- name: Build jar file
run: ./gradlew :bootJar
- name: Generate tag without v prefix
id: generate-tag
run: |
TAGS="${{ github.ref_name }}"
if [[ "${{ github.ref_name }}" == "v"* ]]; then
TAGS="${TAGS:1}"
fi
echo "::set-output name=tags::${TAGS}"
- name: Login to DockerHub
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Build
run: |
docker build \
--tag ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }}:${{ steps.generate-tag.outputs.tags }} \
-f Dockerfile .
- name: Push
run: |
docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }}:${{ steps.generate-tag.outputs.tags }}