Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 3 additions & 7 deletions .github/actions/determine-semver/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,9 @@ description: 'Reusable action to compute semantic version from major/minor and l
runs:
using: "composite"
steps:
- name: Announce version computation
- name: Initialize version computation
shell: bash
run: |
echo "::notice title=🏷️ [VERSION] Determine Semantic Version::Computing next version — major: ${{ inputs.major }}, minor: ${{ inputs.minor }}, actor: ${{ github.actor }}"
echo "📋 [VERSION] Scanning git tags for pattern: ${{ inputs.major }}.${{ inputs.minor }}.*"
echo "CHECKPOINT_1_STATUS=⏳ Pending" >> "$GITHUB_ENV"
run: echo "CHECKPOINT_1_STATUS=⏳ Pending" >> "$GITHUB_ENV"

- name: Determine semantic version
id: semver
Expand Down Expand Up @@ -69,10 +66,9 @@ runs:
fi

version="$major.$minor.$patch"
echo "Computed next version: $version"
echo "version=$version" >> $GITHUB_OUTPUT
echo "CHECKPOINT_1_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ [VERSION] Version computed::Next version: ${version}"
echo "✅ Computed version: ${version}"
echo "::endgroup::"
shell: bash

Expand Down
35 changes: 28 additions & 7 deletions .github/actions/docker-build-push/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,12 +81,23 @@ outputs:
runs:
using: 'composite'
steps:
- name: Announce Docker build
- name: Initialize Docker build
shell: bash
env:
IMAGE_NAME: ${{ inputs.image-name }}
VERSION: ${{ inputs.version }}
REGISTRY: ${{ inputs.registry }}
PLATFORMS: ${{ inputs.platforms }}
run: |
echo "::notice title=🐳 Docker Build::${{ inputs.image-name }}:${{ inputs.version }} → ${{ inputs.registry }} (${{ inputs.platforms }})"
echo "CHECKPOINT_1_STATUS=⏳ Pending" >> "$GITHUB_ENV"
echo "CHECKPOINT_2_STATUS=⏳ Pending" >> "$GITHUB_ENV"
echo "::group::🐳 Docker build context"
printf '%-12s%s\n' 'Image' "${IMAGE_NAME}:${VERSION}"
printf '%-12s%s\n' 'Registry' "${REGISTRY}"
printf '%-12s%s\n' 'Platforms' "${PLATFORMS}"
echo "::endgroup::"
{
echo "CHECKPOINT_1_STATUS=⏳ Pending"
echo "CHECKPOINT_2_STATUS=⏳ Pending"
} >> "$GITHUB_ENV"

- name: Set up QEMU
# Only needed for non-native/multi-arch builds; skip for the single-arch linux/amd64 default to save setup time.
Expand All @@ -105,9 +116,11 @@ runs:

- name: Confirm registry auth
shell: bash
env:
REGISTRY: ${{ inputs.registry }}
run: |
echo "CHECKPOINT_1_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "✅ [CHECKPOINT 1/2] Registry auth — PASSED (${{ inputs.registry }})"
echo "✅ [1/2] Registry auth — ${REGISTRY}"

- name: Extract metadata
id: meta
Expand Down Expand Up @@ -145,12 +158,20 @@ runs:

- name: Confirm image built and pushed
shell: bash
env:
IMAGE_NAME: ${{ inputs.image-name }}
VERSION: ${{ inputs.version }}
DIGEST: ${{ steps.build.outputs.digest }}
run: |
echo "CHECKPOINT_2_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ Docker image pushed::${{ inputs.image-name }}:${{ inputs.version }} — digest: ${{ steps.build.outputs.digest }}"
echo "✅ [2/2] Image pushed — ${IMAGE_NAME}:${VERSION} (${DIGEST})"

- name: Report failure
if: failure()
shell: bash
env:
IMAGE_NAME: ${{ inputs.image-name }}
VERSION: ${{ inputs.version }}
REGISTRY: ${{ inputs.registry }}
run: |
echo "::error title=Docker build failed::${{ inputs.image-name }}:${{ inputs.version }} on ${{ inputs.registry }}CP1: ${CHECKPOINT_1_STATUS:-⏭️ Not reached} | CP2: ${CHECKPOINT_2_STATUS:-⏭️ Not reached}"
echo "::error title=Docker build failed for ${IMAGE_NAME}:${VERSION}::Registry ${REGISTRY}auth: ${CHECKPOINT_1_STATUS:- Not reached} | build/push: ${CHECKPOINT_2_STATUS:- Not reached}"
20 changes: 15 additions & 5 deletions .github/actions/dotnet-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,28 @@ description: 'Reusable action to restore, build, and optionally test .NET projec
runs:
using: "composite"
steps:
- name: Announce .NET build
- name: Initialize .NET build
shell: bash
run: |
echo "::notice title=🔷 [DOTNET] Restore and Build::projects: ${{ inputs.projects }}, config: ${{ inputs.configuration }}, dotnet: ${{ inputs.dotnet-version }}, tests: ${{ inputs.run-tests }}"
echo "CHECKPOINT_1_STATUS=⏳ Pending" >> "$GITHUB_ENV"
echo "CHECKPOINT_2_STATUS=⏳ Pending" >> "$GITHUB_ENV"
echo "CHECKPOINT_3_STATUS=⏭️ Skipped" >> "$GITHUB_ENV"
{
echo "CHECKPOINT_1_STATUS=⏳ Pending"
echo "CHECKPOINT_2_STATUS=⏳ Pending"
echo "CHECKPOINT_3_STATUS=⏭️ Skipped"
} >> "$GITHUB_ENV"

- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: ${{ inputs.dotnet-version }}
- name: Cache NuGet packages
uses: actions/cache@v4
with:
path: ~/.nuget/packages
# Keyed on project/package manifests so the cache invalidates when
# dependencies change; restore-keys give a warm partial hit otherwise.
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/packages.lock.json', '**/Directory.Packages.props') }}
restore-keys: |
${{ runner.os }}-nuget-
- name: Restore dependencies
run: |
echo "::group::🔷 [CHECKPOINT 1/3] Restore Dependencies"
Expand Down
16 changes: 8 additions & 8 deletions .github/actions/dotnet-pack-push/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ description: 'Reusable action to pack .NET project(s) and push the resulting NuG
runs:
using: "composite"
steps:
- name: Announce NuGet pack and push
- name: Initialize NuGet pack and push
shell: bash
run: |
echo "::notice title=🔷 [DOTNET] Pack and Push NuGet::projects: ${{ inputs.projects }}, version: ${{ inputs.version != '' && inputs.version || 'from project' }}, feed: ${{ inputs.nuget-source }}"
echo "CHECKPOINT_1_STATUS=⏳ Pending" >> "$GITHUB_ENV"
echo "CHECKPOINT_2_STATUS=⏳ Pending" >> "$GITHUB_ENV"
{
echo "CHECKPOINT_1_STATUS=⏳ Pending"
echo "CHECKPOINT_2_STATUS=⏳ Pending"
} >> "$GITHUB_ENV"

- name: Pack NuGet packages
run: |
Expand Down Expand Up @@ -49,7 +50,7 @@ runs:
for project in $project_files; do
# Skip if project file doesn't exist
if [ ! -f "$project" ]; then
echo "Warning: Project file '$project' not found, skipping..."
echo "::warning title=NuGet project not found::Skipping '$project' — file does not exist."
continue
fi

Expand Down Expand Up @@ -84,7 +85,7 @@ runs:
exit 1
fi
echo "CHECKPOINT_1_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ [DOTNET] NuGet packages packed::$packed_count package(s) ready"
echo "✅ [1/2] Packed $packed_count project(s)"
echo "::endgroup::"
shell: bash
- name: Push NuGet packages
Expand Down Expand Up @@ -144,9 +145,8 @@ runs:
exit 1
fi

echo "All packages pushed successfully!"
echo "CHECKPOINT_2_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ [DOTNET] NuGet packages pushed::$pushed_count package(s) → ${{ inputs.nuget-source }}"
echo "✅ [2/2] Pushed $pushed_count package(s) → ${{ inputs.nuget-source }}"
echo "::endgroup::"
shell: bash

Expand Down
10 changes: 5 additions & 5 deletions .github/actions/generate-wrangler-config/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,12 @@ inputs:
runs:
using: "composite"
steps:
- name: Announce wrangler.toml generation
- name: Initialize wrangler.toml generation
shell: bash
run: |
echo "::notice title=⚡ [CF-WORKERS] Generate wrangler.toml::Generating config — project: ${{ inputs.PROJECT_NAME }}, env: ${{ inputs.ENVIRONMENT }}, opennext: ${{ inputs.BUILD_FOR_OPENNEXT }}"
echo "📋 [CF-WORKERS] Routes: ${{ inputs.ROUTE }}"
echo "CHECKPOINT_1_STATUS=⏳ Pending" >> "$GITHUB_ENV"
{
echo "CHECKPOINT_1_STATUS=⏳ Pending"
} >> "$GITHUB_ENV"

- name: Generate wrangler.toml
shell: bash
Expand Down Expand Up @@ -123,7 +123,7 @@ runs:
echo "---------------------------"
cat wrangler.toml
echo "CHECKPOINT_1_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ [CF-WORKERS] wrangler.toml generated::Project: ${PROJECT_NAME}, env: ${ENVIRONMENT}, routes: ${#ROUTES[@]}"
echo "wrangler.toml generated — project: ${PROJECT_NAME}, env: ${ENVIRONMENT}, routes: ${#ROUTES[@]}"
echo "::endgroup::"

- name: Report failure
Expand Down
14 changes: 7 additions & 7 deletions .github/actions/helm-deploy-s9generic/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,13 @@ outputs:
runs:
using: 'composite'
steps:
- name: Announce Helm deployment
- name: Initialize Helm deployment
shell: bash
run: |
echo "::notice title=☸️ [HELM] Deploy Chart (s9generic)::Release: ${{ inputs.release-name }}, chart: ${{ inputs.chart-name }}:${{ inputs.chart-version }}, namespace: ${{ inputs.namespace }}"
echo "🌍 [HELM] Chart source: ${{ inputs.chart-path != '' && 'local-artifact' || 'oci-registry' }}, wait: ${{ inputs.wait }}, timeout: ${{ inputs.timeout }}"
echo "CHECKPOINT_1_STATUS=⏳ Pending" >> "$GITHUB_ENV"
echo "CHECKPOINT_2_STATUS=⏳ Pending" >> "$GITHUB_ENV"
{
echo "CHECKPOINT_1_STATUS=⏳ Pending"
echo "CHECKPOINT_2_STATUS=⏳ Pending"
} >> "$GITHUB_ENV"

- name: Validate inputs
shell: bash
Expand Down Expand Up @@ -151,7 +151,7 @@ runs:
echo "Cluster info:"
kubectl cluster-info
echo "CHECKPOINT_1_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ [HELM] Kubernetes context configured::namespace: ${{ inputs.namespace }}"
echo "Kubernetes context configurednamespace: ${{ inputs.namespace }}"
echo "::endgroup::"

- name: Create namespace
Expand Down Expand Up @@ -375,7 +375,7 @@ runs:

echo "status=deployed" >> $GITHUB_OUTPUT
echo "CHECKPOINT_2_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ [HELM] Chart deployed::Release: ${{ inputs.release-name }}, namespace: ${{ inputs.namespace }}"
echo "Chart deployed — release: ${{ inputs.release-name }}, namespace: ${{ inputs.namespace }}"

- name: Verify deployment
shell: bash
Expand Down
14 changes: 7 additions & 7 deletions .github/actions/helm-deploy/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,13 +99,13 @@ outputs:
runs:
using: 'composite'
steps:
- name: Announce Helm deployment
- name: Initialize Helm deployment
shell: bash
run: |
echo "::notice title=☸️ [HELM] Deploy Chart::Release: ${{ inputs.release-name }}, chart: ${{ inputs.chart-name }}:${{ inputs.chart-version }}, namespace: ${{ inputs.namespace }}, source: ${{ inputs.chart-source-type }}"
echo "🌍 [HELM] Target namespace: ${{ inputs.namespace }}, wait: ${{ inputs.wait }}, timeout: ${{ inputs.timeout }}"
echo "CHECKPOINT_1_STATUS=⏳ Pending" >> "$GITHUB_ENV"
echo "CHECKPOINT_2_STATUS=⏳ Pending" >> "$GITHUB_ENV"
{
echo "CHECKPOINT_1_STATUS=⏳ Pending"
echo "CHECKPOINT_2_STATUS=⏳ Pending"
} >> "$GITHUB_ENV"

- name: Set up Helm
uses: azure/setup-helm@v5
Expand All @@ -132,7 +132,7 @@ runs:
echo "Cluster info:"
kubectl cluster-info
echo "CHECKPOINT_1_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ [HELM] Kubernetes context configured::namespace: ${{ inputs.namespace }}"
echo "Kubernetes context configurednamespace: ${{ inputs.namespace }}"
echo "::endgroup::"

- name: Create namespace
Expand Down Expand Up @@ -307,7 +307,7 @@ runs:

echo "status=deployed" >> $GITHUB_OUTPUT
echo "CHECKPOINT_2_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ [HELM] Chart deployed::Release: ${{ inputs.release-name }}, namespace: ${{ inputs.namespace }}"
echo "Chart deployed — release: ${{ inputs.release-name }}, namespace: ${{ inputs.namespace }}"

- name: Verify deployment
shell: bash
Expand Down
21 changes: 7 additions & 14 deletions .github/actions/helm-generic/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,20 +90,13 @@ inputs:
runs:
using: 'composite'
steps:
- name: Announce Helm deployment
- name: Initialize Helm deployment
shell: bash
env:
APP_NAME: ${{ inputs.app_name }}
CHART: ${{ inputs.chart }}
NAMESPACE: ${{ inputs.namespace }}
ENVIRONMENT: ${{ inputs.environment }}
CHART_REPO: ${{ inputs.chart_repo }}
HELM_TIMEOUT: ${{ inputs.helm_timeout }}
run: |
echo "::notice title=☸️ [HELM] Deploy Chart::App: ${APP_NAME}, chart: ${CHART}, namespace: ${NAMESPACE}, env: ${ENVIRONMENT}"
echo "⚙️ [HELM] Chart repo: ${CHART_REPO:-OCI (inline)}, timeout: ${HELM_TIMEOUT}"
echo "HELM_GENERIC_KUBECONFIG_STATUS=⏳ Pending" >> "$GITHUB_ENV"
echo "HELM_GENERIC_DEPLOY_STATUS=⏳ Pending" >> "$GITHUB_ENV"
{
echo "HELM_GENERIC_KUBECONFIG_STATUS=⏳ Pending"
echo "HELM_GENERIC_DEPLOY_STATUS=⏳ Pending"
} >> "$GITHUB_ENV"

- name: Derive sanitized branch name
id: branch
Expand Down Expand Up @@ -156,7 +149,7 @@ runs:
chmod 600 "$KCFG_PATH"
echo "kubeconfig_path=${KCFG_PATH}" >> "$GITHUB_OUTPUT"
echo "HELM_GENERIC_KUBECONFIG_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ [HELM] Kubeconfig configured::namespace: ${NAMESPACE}"
echo "Kubeconfig configurednamespace: ${NAMESPACE}"
echo "::endgroup::"

- name: Set KUBECONFIG env
Expand Down Expand Up @@ -324,7 +317,7 @@ runs:
--timeout "${HELM_TIMEOUT}" \
${ATOMIC_ARGS[@]+"${ATOMIC_ARGS[@]}"} ${EXTRA_ARGS_ARR[@]+"${EXTRA_ARGS_ARR[@]}"}
echo "HELM_GENERIC_DEPLOY_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ [HELM] Helm deploy complete::App: ${APP_NAME}, namespace: ${NAMESPACE}"
echo "Helm deploy complete — app: ${APP_NAME}, namespace: ${NAMESPACE}"
echo "::endgroup::"

- name: Show release status
Expand Down
20 changes: 10 additions & 10 deletions .github/actions/helm-package-push/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,13 @@ outputs:
runs:
using: 'composite'
steps:
- name: Announce chart package and push
- name: Initialize chart package and push
shell: bash
run: |
echo "::notice title=☸️ [HELM] Package and Push Chart::chart: ${{ inputs.chart-name }}:${{ inputs.version }}, source: ${{ inputs.chart-path }}, publish: ${{ inputs.publish-method }}"
echo "📦 [HELM] Destination: ${{ inputs.package-destination }}, update Chart.yaml: ${{ inputs.update-chart-yaml }}"
echo "CHECKPOINT_1_STATUS=⏳ Pending" >> "$GITHUB_ENV"
echo "CHECKPOINT_2_STATUS=⏳ Pending" >> "$GITHUB_ENV"
{
echo "CHECKPOINT_1_STATUS=⏳ Pending"
echo "CHECKPOINT_2_STATUS=⏳ Pending"
} >> "$GITHUB_ENV"

- name: Set up Helm
uses: azure/setup-helm@v5
Expand Down Expand Up @@ -120,7 +120,7 @@ runs:
# Update existing image.repository with lowercase value
sed -i "/^image:/,/^[[:space:]]*repository:/ s|repository:.*|repository: ${IMAGE_REPO_LOWER}|" "$VALUES_FILE"
else
echo "Warning: image.repository not found in values.yaml"
echo "::warning title=image.repository not updated::image.repository not found in values.yaml"
fi
fi

Expand All @@ -130,7 +130,7 @@ runs:
# Update existing image.tag
sed -i "/^image:/,/^[[:space:]]*tag:/ s|tag:.*|tag: \"${{ inputs.image-tag }}\"|" "$VALUES_FILE"
else
echo "Warning: image.tag not found in values.yaml"
echo "::warning title=image.tag not updated::image.tag not found in values.yaml"
fi
fi

Expand Down Expand Up @@ -158,7 +158,7 @@ runs:
echo "Packaged chart: ${PACKAGE_FILE}"
ls -la ${{ inputs.package-destination }}/
echo "CHECKPOINT_1_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ [HELM] Chart packaged::${{ inputs.chart-name }}-${{ inputs.version }}.tgz"
echo "Chart packaged${{ inputs.chart-name }}-${{ inputs.version }}.tgz"
echo "::endgroup::"

- name: Validate publish configuration
Expand Down Expand Up @@ -221,7 +221,7 @@ runs:

echo "chart-url=${CHART_URL}/${{ inputs.chart-name }}:${{ inputs.version }}" >> $GITHUB_OUTPUT
echo "CHECKPOINT_2_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ [HELM] Chart pushed (OCI)::${{ inputs.chart-name }}:${{ inputs.version }} → ${{ inputs.registry }}"
echo "Chart pushed (OCI)${{ inputs.chart-name }}:${{ inputs.version }} → ${{ inputs.registry }}"

- name: Push Helm chart to ChartMuseum
if: inputs.publish-method == 'chartmuseum'
Expand Down Expand Up @@ -250,7 +250,7 @@ runs:

echo "chart-url=${CHARTMUSEUM_URL%/}" >> $GITHUB_OUTPUT
echo "CHECKPOINT_2_STATUS=✅ PASSED" >> "$GITHUB_ENV"
echo "::notice title=✅ [HELM] Chart pushed (ChartMuseum)::${{ inputs.chart-name }}:${{ inputs.version }} → ${{ inputs.chartmuseum-url }}"
echo "Chart pushed (ChartMuseum)${{ inputs.chart-name }}:${{ inputs.version }} → ${{ inputs.chartmuseum-url }}"

- name: Report failure
if: failure()
Expand Down
Loading