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