Skip to content

Add files via upload #3

Add files via upload

Add files via upload #3

Workflow file for this run

name: Build and Push to Docker Hub
on:
push:
branches: [main, dev]
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Extract short SHA
id: extract_sha
run: echo "sha_short=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_OUTPUT
- name: Set lowercase repo name (username/repo)
id: repo_name
run: |
repo="${{ secrets.DOCKERHUB_USERNAME }}/$(echo '${{ github.repository }}' | cut -d'/' -f2 | tr '[:upper:]' '[:lower:]')"
echo "repo_lower=$repo" >> $GITHUB_OUTPUT
- name: Set image tags based on branch
id: image_tags
run: |
if [[ "${GITHUB_REF##*/}" == "main" ]]; then
echo "tags=${{ steps.repo_name.outputs.repo_lower }}:latest,${{ steps.repo_name.outputs.repo_lower }}:${{ steps.extract_sha.outputs.sha_short }}" >> $GITHUB_OUTPUT
else
# For dev branch, use a "dev" tag prefix + short SHA
echo "tags=${{ steps.repo_name.outputs.repo_lower }}:dev,${{ steps.repo_name.outputs.repo_lower }}:dev-${{ steps.extract_sha.outputs.sha_short }}" >> $GITHUB_OUTPUT
fi
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.image_tags.outputs.tags }}