Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 0 additions & 30 deletions .github/workflows/cla.yml

This file was deleted.

206 changes: 0 additions & 206 deletions .github/workflows/deploy.yml

This file was deleted.

60 changes: 42 additions & 18 deletions .github/workflows/post-release-push-images.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Publish Docker image
name: Publish Container Image

on:
release:
Expand All @@ -7,75 +7,99 @@ on:

jobs:
push_to_registry:
name: Push Docker images to Docker Hub
name: Push Docker images to GHCR
runs-on: ubuntu-latest

permissions:
contents: read
packages: write

steps:
- name: Check out the repo
uses: actions/checkout@v4
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
persist-credentials: true
fetch-depth: 0

- name: Log in to Docker Hub
uses: docker/login-action@v2
- name: Log in to GHCR
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Normalise image repository path
run: |
echo "IMAGE_REPO=$(echo "$GITHUB_REPOSITORY" | tr '[:upper:]' '[:lower:]')" >> "$GITHUB_ENV"

# All-in-one Image Steps
- name: Extract metadata (tags, labels) for All-in-one Docker
id: meta_all_in_one
uses: docker/metadata-action@v3
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
with:
images: daveearley/hi.events-all-in-one
images: ghcr.io/${{ env.IMAGE_REPO }}
tags: |
type=ref,event=tag
type=raw,value=latest,enable=${{ github.event.release.prerelease == false }}
type=semver,pattern=v{{version}}
type=semver,pattern=v{{major}}.{{minor}}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1

- name: Build and push All-in-one Docker image
uses: docker/build-push-action@v3
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # 6.18.0
with:
context: ./
file: ./Dockerfile.all-in-one
cache-from: type=gha
cache-to: type=gha,mode=max
push: true
tags: ${{ steps.meta_all_in_one.outputs.tags }}
labels: ${{ steps.meta_all_in_one.outputs.labels }}


# Backend Image Steps
- name: Extract metadata (tags, labels) for Backend Docker
id: meta_backend
uses: docker/metadata-action@v3
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
with:
images: daveearley/hi.events-backend
images: ghcr.io/${{ env.IMAGE_REPO }}-backend
tags: |
type=ref,event=tag
type=raw,value=latest,enable=${{ github.event.release.prerelease == false }}
type=semver,pattern=v{{version}}
type=semver,pattern=v{{major}}.{{minor}}

- name: Build and push Backend Docker image
uses: docker/build-push-action@v3
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # 6.18.0
with:
context: ./backend
file: ./backend/Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max
push: true
tags: ${{ steps.meta_backend.outputs.tags }}
labels: ${{ steps.meta_backend.outputs.labels }}

# Frontend Image Steps
- name: Extract metadata (tags, labels) for Frontend Docker
id: meta_frontend
uses: docker/metadata-action@v3
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
with:
images: daveearley/hi.events-frontend
images: ghcr.io/${{ env.IMAGE_REPO }}-frontend
tags: |
type=ref,event=tag
type=raw,value=latest,enable=${{ github.event.release.prerelease == false }}
type=semver,pattern=v{{version}}
type=semver,pattern=v{{major}}.{{minor}}

- name: Build and push Frontend Docker image
uses: docker/build-push-action@v3
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # 6.18.0
with:
context: ./frontend
file: ./frontend/Dockerfile.ssr
cache-from: type=gha
cache-to: type=gha,mode=max
push: true
tags: ${{ steps.meta_frontend.outputs.tags }}
labels: ${{ steps.meta_frontend.outputs.labels }}
Loading