Skip to content

Merge pull request #42 from webis-de/dependabot/github_actions/docker… #32

Merge pull request #42 from webis-de/dependabot/github_actions/docker…

Merge pull request #42 from webis-de/dependabot/github_actions/docker… #32

Workflow file for this run

name: CI
on:
push:
jobs:
docker-build-backend:
name: 🏗️ Build backend Docker image
runs-on: ubuntu-latest
steps:
- name: 📥 Check-out
uses: actions/checkout@v4
- name: 🧰 Set up QEMU
uses: docker/setup-qemu-action@v2
- name: 🧰 Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: 🏗️ Build Docker image
uses: docker/build-push-action@v5
with:
context: backend
push: false
cache-from: type=gha
cache-to: type=gha,mode=max
docker-build-frontend:
name: 🏗️ Build frontend Docker image
runs-on: ubuntu-latest
steps:
- name: 📥 Check-out
uses: actions/checkout@v4
- name: 🧰 Set up QEMU
uses: docker/setup-qemu-action@v2
- name: 🧰 Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: 🏗️ Build Docker image
uses: docker/build-push-action@v5
with:
context: frontend
push: false
cache-from: type=gha
cache-to: type=gha,mode=max
docker-publish-backend:
name: 🚀 Publish backend Docker image
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
permissions:
packages: write
needs:
- docker-build-backend
- docker-build-frontend
runs-on: ubuntu-latest
steps:
- name: 📥 Check-out
uses: actions/checkout@v4
- name: 🧰 Set up QEMU
uses: docker/setup-qemu-action@v2
- name: 🧰 Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: 🔑 Login to GitHub Packages
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: 🔑 Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: ℹ️ Extract image metadata
id: meta
uses: docker/metadata-action@v5
with:
images: |
webis/targer-backend
ghcr.io/${{ github.repository }}/targer-backend
- name: 🚀 Build and push image
uses: docker/build-push-action@v5
with:
context: backend
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
docker-publish-frontend:
name: 🚀 Publish frontend Docker image
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
permissions:
packages: write
needs:
- docker-build-backend
- docker-build-frontend
runs-on: ubuntu-latest
steps:
- name: 📥 Check-out
uses: actions/checkout@v4
- name: 🧰 Set up QEMU
uses: docker/setup-qemu-action@v2
- name: 🧰 Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: 🔑 Login to GitHub Packages
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: 🔑 Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: ℹ️ Extract image metadata
id: meta
uses: docker/metadata-action@v5
with:
images: |
webis/targer-frontend
ghcr.io/${{ github.repository }}/targer-frontend
- name: 🚀 Build and push image
uses: docker/build-push-action@v5
with:
context: frontend
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
github-release:
name: 🚀 Create GitHub release
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
needs:
- docker-build-backend
- docker-build-frontend
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: 📥 Check-out
uses: actions/checkout@v4
- name: 🚀 Create GitHub release
uses: softprops/action-gh-release@v2
with:
name: Release ${{ github.ref_name }}
fail_on_unmatched_files: true
draft: false
prerelease: false
generate_release_notes: true