Skip to content

Avoid full rebuild of image #7

Avoid full rebuild of image

Avoid full rebuild of image #7

Workflow file for this run

name: Build and Publish Docker Images
on:
push:
branches: [ orange-master ]
tags:
- "v?[0-9]+.[0-9]+.[0-9]+*"
pull_request:
branches: [ orange-master ]
workflow_dispatch:
env:
DOCKER_FILE_PATH: .
IMAGE: "ghcr.io/${{ github.repository }}"
DOCKERHUB_ORG: elpaasoci
jobs:
build_and_publish:
name: build and publish
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- uses: actions/checkout@v4
-
name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
-
name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: extract github repo name
id: gh-repo-name
run: |
echo "OCI_IMAGE=$(basename ${{ github.repository }})" >> $GITHUB_ENV
shell: bash
-
name: publish image
uses: docker/build-push-action@v5.1.0
with:
context: ${{env.DOCKER_FILE_PATH}}
push: true
tags: |
${{env.DOCKERHUB_ORG}}/${{env.OCI_IMAGE}}:latest
${{env.DOCKERHUB_ORG}}/${{env.OCI_IMAGE}}:${{github.sha}}
${{ env.IMAGE}}:latest
${{ env.IMAGE}}:${{github.sha}}
-
name: publish tagged image
if: github.ref_type == 'tag'
uses: docker/build-push-action@v5.1.0
with:
push: true
context: ${{ env.DOCKER_FILE_PATH }}
tags: |
${{env.DOCKERHUB_ORG}}/${{env.OCI_IMAGE}}:${{github.ref_name}}
${{env.IMAGE}}:${{github.ref_name}}