71 lines
2.1 KiB
YAML
71 lines
2.1 KiB
YAML
name: management-images
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- main
|
|
tags:
|
|
- 'v*'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-and-publish:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
REGISTRY: git.ipao.vip
|
|
IMAGE_BASE: git.ipao.vip/rogee/agent-call
|
|
MANAGEMENT_UI_API_URL: ${{ vars.MANAGEMENT_UI_API_URL }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
|
|
- name: Build management API image
|
|
run: |
|
|
set -eu
|
|
docker build \
|
|
--file management/deploy/Dockerfile.backend \
|
|
--tag "$IMAGE_BASE-management-api:$GITHUB_SHA" \
|
|
management/backend
|
|
|
|
- name: Build management UI image
|
|
run: |
|
|
set -eu
|
|
api_url="${MANAGEMENT_UI_API_URL:-http://localhost:8080}"
|
|
docker build \
|
|
--file management/deploy/Dockerfile.frontend \
|
|
--build-arg "VITE_MANAGEMENT_API_URL=$api_url" \
|
|
--tag "$IMAGE_BASE-management-ui:$GITHUB_SHA" \
|
|
management/frontend
|
|
|
|
- name: Log in to Gitea Container Registry
|
|
if: github.event_name != 'pull_request'
|
|
env:
|
|
REGISTRY_USERNAME: ${{ github.repository_owner }}
|
|
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
|
|
run: |
|
|
set -eu
|
|
test -n "$REGISTRY_TOKEN"
|
|
printf '%s' "$REGISTRY_TOKEN" | docker login "$REGISTRY" \
|
|
--username "$REGISTRY_USERNAME" --password-stdin
|
|
|
|
- name: Push immutable and release tags
|
|
if: github.event_name != 'pull_request'
|
|
run: |
|
|
set -eu
|
|
tags="$GITHUB_SHA"
|
|
if [ "${GITHUB_REF_TYPE:-}" = tag ]; then
|
|
tags="$tags $GITHUB_REF_NAME"
|
|
fi
|
|
if [ "${GITHUB_REF_NAME:-}" = main ]; then
|
|
tags="$tags latest"
|
|
fi
|
|
for component in management-api management-ui; do
|
|
for tag in $tags; do
|
|
docker tag \
|
|
"$IMAGE_BASE-$component:$GITHUB_SHA" \
|
|
"$IMAGE_BASE-$component:$tag"
|
|
docker push "$IMAGE_BASE-$component:$tag"
|
|
done
|
|
done
|