Files
The-transit-Project/.gitea/workflows/docker-build.yml
T
Sven laptop fdbdb98b21
Build and Push Docker Images / build-and-push (./admin_ui, admin_ui) (push) Successful in 1m18s
Build and Push Docker Images / build-and-push (./auth_api, auth_api) (push) Successful in 59s
Build and Push Docker Images / build-and-push (./employee_api, employee_api) (push) Successful in 1m0s
Build and Push Docker Images / build-and-push (./error_log_api, error_log_api) (push) Successful in 1m18s
Build and Push Docker Images / build-and-push (./transit_api, transit_api) (push) Successful in 1m1s
Build and Push Docker Images / deploy-test-node (push) Successful in 4s
Deploy registry images through Portainer
2026-09-16 19:01:53 +02:00

92 lines
2.4 KiB
YAML

name: Build and Push Docker Images
on:
push:
branches:
- main
- develop
paths:
- "auth_api/**"
- "employee_api/**"
- "transit_api/**"
- "error_log_api/**"
- "admin_ui/**"
- "docker-compose.yml"
- ".gitea/workflows/docker-build.yml"
pull_request:
branches:
- main
- develop
env:
REGISTRY: gitea.testinstance.nl
IMAGE_NAMESPACE: sven/the-transit-project
jobs:
build-and-push:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- name: auth_api
context: ./auth_api
- name: employee_api
context: ./employee_api
- name: transit_api
context: ./transit_api
- name: error_log_api
context: ./error_log_api
- name: admin_ui
context: ./admin_ui
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Set image tags
id: tags
shell: bash
run: |
image_base="${{ env.REGISTRY }}/${{ env.IMAGE_NAMESPACE }}/${{ matrix.name }}"
image_tags="${image_base}:${{ gitea.sha }}"
if [[ "${{ gitea.event_name }}" == "push" && "${{ gitea.ref_name }}" == "main" ]]; then
image_tags+=$'\n'"${image_base}:latest"
fi
{
echo 'tags<<EOF'
echo "$image_tags"
echo 'EOF'
} >> "$GITHUB_OUTPUT"
- name: Build and push
uses: docker/build-push-action@v6
with:
context: ${{ matrix.context }}
push: ${{ gitea.event_name == 'push' }}
tags: ${{ steps.tags.outputs.tags }}
deploy-test-node:
needs: build-and-push
if: ${{ gitea.event_name == 'push' && gitea.ref_name == 'main' }}
runs-on: ubuntu-latest
steps:
- name: Redeploy Portainer stack
shell: bash
run: curl --fail --silent --show-error --retry 3 --max-time 30 -X POST "$PORTAINER_WEBHOOK_URL"
env:
PORTAINER_WEBHOOK_URL: ${{ secrets.PORTAINER_WEBHOOK_URL }}