Merge pull request #150 from 3x3cut0r/patch-1 #30
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish Docker image and Github Registry | |
concurrency: | |
group: build-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
push: | |
branches: ['master'] | |
paths-ignore: | |
- '**.md' | |
- 'cloud-deployments/*' | |
- 'images/**/*' | |
- '.vscode/**/*' | |
- '**/.env.example' | |
- '.github/ISSUE_TEMPLATE/**/*' | |
jobs: | |
push_to_registries: | |
name: Push Docker image to multiple registries | |
runs-on: ubuntu-latest | |
permissions: | |
packages: write | |
contents: read | |
steps: | |
- name: Check out the repo | |
uses: actions/checkout@v4 | |
- name: Check if DockerHub build needed | |
shell: bash | |
run: | | |
# Check if the secret for USERNAME is set (don't even check for the password) | |
if [[ -z "${{ secrets.DOCKER_USERNAME }}" ]]; then | |
echo "DockerHub build not needed" | |
echo "enabled=false" >> $GITHUB_OUTPUT | |
else | |
echo "DockerHub build needed" | |
echo "enabled=true" >> $GITHUB_OUTPUT | |
fi | |
id: dockerhub | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Log in to Docker Hub | |
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a | |
# Only login to the Docker Hub if the repo is mintplex/vectoradmin, to allow for forks to build on GHCR | |
if: steps.dockerhub.outputs.enabled == 'true' | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Log in to the Container registry | |
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: | | |
${{ steps.dockerhub.outputs.enabled == 'true' && 'mintplexlabs/vectoradmin' || '' }} | |
ghcr.io/${{ github.repository }} | |
tags: | | |
type=raw,value=latest,enable={{is_default_branch}} | |
type=ref,event=branch | |
type=ref,event=tag | |
type=ref,event=pr | |
- name: Build and push Docker images | |
uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 | |
with: | |
context: . | |
file: ./docker/Dockerfile | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
cache-from: type=gha | |
cache-to: type=gha,mode=max |