name: Release Docker Image on: release: types: [published] workflow_dispatch: env: REGISTRY: reg.sabp.ir IMAGE_NAME: sabp-apps/devops-test RELEASE_TAG: ${{ gitea.event.release.tag_name }} REF_NAME: ${{ gitea.ref_name }} REPOSITORY: ${{ gitea.repository }} jobs: build-and-push: runs-on: ubuntu-latest container: image: mcr-mirror.liara.ir/dotnet/sdk:10.0.202 steps: - name: Checkout shell: bash run: | set -euo pipefail git clone --depth 1 https://git.sabp.ir/sufi-chain/dev-ops-test.git . echo "=== Workspace contents ===" ls -la - name: Build and push image shell: bash env: HARBOR_USERNAME: ${{ secrets.HARBOR_USERNAME }} HARBOR_PASSWORD: ${{ secrets.HARBOR_PASSWORD }} DOTNET_CONTAINER_REGISTRY_UNAME: ${{ secrets.HARBOR_USERNAME }} DOTNET_CONTAINER_REGISTRY_PWORD: ${{ secrets.HARBOR_PASSWORD }} run: | set -euo pipefail if [ -z "${HARBOR_USERNAME:-}" ] || [ -z "${HARBOR_PASSWORD:-}" ]; then echo "HARBOR_USERNAME and HARBOR_PASSWORD secrets are required." exit 1 fi if [ -n "${RELEASE_TAG:-}" ]; then tag="$RELEASE_TAG" else tag="0.0.0-dev.$(date +%Y%m%d%H%M%S)" fi tag="${tag#v}" echo "=== Building version: $tag ===" dotnet publish "DevOpsTest/DevOpsTest/DevOpsTest.csproj" \ -v:n \ --configuration Release \ --os linux \ --arch x64 \ /t:PublishContainer \ -p:ContainerRegistry="$REGISTRY" \ -p:ContainerRepository="$IMAGE_NAME" \ -p:ContainerBaseImage=mcr-mirror.liara.ir/dotnet/aspnet:10.0.202 \ -p:ContainerImageTags="${tag};latest"