78 lines
2.2 KiB
YAML
78 lines
2.2 KiB
YAML
name: ci
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- staging
|
|
- dev
|
|
tags:
|
|
- '*'
|
|
|
|
jobs:
|
|
docker:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- service: frontend
|
|
context: frontend
|
|
dockerfile: frontend/Dockerfile
|
|
- service: backend
|
|
context: backend
|
|
dockerfile: backend/Dockerfile
|
|
|
|
steps:
|
|
- name: Checkout with submodules
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Compute base tag
|
|
id: compute_tag
|
|
run: |
|
|
short="${GITEA_SHA:0:7}"
|
|
if [ "${GITEA_REF_TYPE}" = "tag" ]; then
|
|
tag="${GITEA_REF_NAME}"
|
|
else
|
|
tag="$short"
|
|
if [ "${GITEA_REF_NAME}" = "dev" ]; then
|
|
tag="${tag}-dev"
|
|
fi
|
|
fi
|
|
echo "base_tag=$tag" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Login to local registry
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: ${{ vars.REGISTRY_URL }}
|
|
username: ${{ vars.REGISTRY_USER }}
|
|
password: ${{ secrets.REGISTRY_PASSWORD }}
|
|
|
|
- name: Login to GHCR
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ vars.GHCR_USERNAME }}
|
|
password: ${{ secrets.GHCR_PASSWORD }}
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
with:
|
|
driver: remote
|
|
endpoint: ${{ env.BUILDKIT_ARM64_ENDPOINT }}
|
|
|
|
- name: Build and Push ${{ matrix.service }} Image
|
|
uses: docker/build-push-action@v6
|
|
with:
|
|
context: ${{ matrix.context }}
|
|
file: ${{ matrix.dockerfile }}
|
|
platforms: linux/arm64
|
|
push: true
|
|
provenance: false
|
|
tags: |
|
|
${{ vars.REGISTRY_URL }}/${{ gitea.repository }}-${{ matrix.service }}:${{ steps.compute_tag.outputs.base_tag }}
|
|
${{ vars.REGISTRY_URL }}/${{ gitea.repository }}-${{ matrix.service }}:${{ gitea.sha }}
|
|
ghcr.io/${{ vars.GHCR_USERNAME }}/${{ gitea.repository }}-${{ matrix.service }}:${{ steps.compute_tag.outputs.base_tag }}
|
|
ghcr.io/${{ vars.GHCR_USERNAME }}/${{ gitea.repository }}-${{ matrix.service }}:${{ gitea.sha }}
|