Build And Publish nightly / build-latest (push) Successful in 2m31s
use env and step output instead of github_env, include validation to ensure the tag is being pulled and exposed correctly.
65 lines
1.7 KiB
YAML
65 lines
1.7 KiB
YAML
name: Build And Publish Tag
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "[0-9]*.[0-9]*.[0-9]*"
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag:
|
|
description: "Version tag (e.g., 0.1.0)"
|
|
required: true
|
|
|
|
jobs:
|
|
build-latest:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
submodules: 'recursive'
|
|
fetch-depth: 0
|
|
|
|
- name: Get release tag
|
|
id: vars
|
|
env:
|
|
EVENT_NAME: ${{ forgejo.event_name }}
|
|
REF_NAME: ${{ forgejo.ref_name }}
|
|
INPUT_TAG: ${{ forgejo.event_inputs.tag }}
|
|
run: |
|
|
if [ "$EVENT_NAME" = "workflow_dispatch" ]; then
|
|
TAG="$INPUT_TAG"
|
|
else
|
|
TAG="$REF_NAME"
|
|
fi
|
|
|
|
if [ -z "$TAG" ]; then
|
|
echo "::error::Release tag is empty"
|
|
exit 1
|
|
fi
|
|
|
|
echo "tag=$TAG" >> "$GITHUB_OUTPUT"
|
|
echo "Building release tag: $TAG"
|
|
|
|
- name: Set up Docker Buildx
|
|
id: buildx
|
|
uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
|
|
with:
|
|
platforms: linux/amd64
|
|
|
|
- name: Login to Self-Hosted Registry
|
|
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
|
with:
|
|
registry: git.coopcloud.tech
|
|
username: ${{ secrets.REGISTRY_USER }}
|
|
password: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
|
|
|
|
- name: Build and Push
|
|
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
|
|
with:
|
|
builder: ${{ steps.buildx.outputs.name }}
|
|
context: ./
|
|
file: ./Dockerfile
|
|
platforms: linux/amd64
|
|
push: true
|
|
tags: git.coopcloud.tech/toolshed/coop-cloud-webui:${{ steps.vars.outputs.tag }}
|