Skip to content

feat(cicd): stamp semantic version into image, footer, image tag and git tag (tri-provider) - #69

Merged
emmanuelknafo merged 1 commit into
mainfrom
feature/68-semver-tri-provider
Jul 22, 2026
Merged

feat(cicd): stamp semantic version into image, footer, image tag and git tag (tri-provider)#69
emmanuelknafo merged 1 commit into
mainfrom
feature/68-semver-tri-provider

Conversation

@emmanuelknafo

Copy link
Copy Markdown
Contributor

Summary

Adds deterministic semantic versioning (1.0.0, patch auto-increment per tagged commit on main) across GitHub Actions, Azure DevOps, and GitLab CI.

Closes #68

Changes

  • scripts/version/Get-BuildVersion.ps1 (new) \u2014 shared deterministic version from v1.0.* git tags; idempotent on re-runs.
  • src/webapp01/Dockerfile \u2014 ARG APP_VERSION + ENV APP_VERSION (defaults 0.0.0 so scans still build).
  • src/webapp01/Pages/Shared/_Layout.cshtml \u2014 footer renders v<version> from APP_VERSION.
  • .github/workflows/cicd.yml \u2014 version job, --build-arg APP_VERSION, v<version> image tag, digest deploy, git tag push, version passed to reusable container workflow.
  • .azuredevops/pipelines/cicd.yml \u2014 version compute + build-arg + version image tag; git tag push in Deploy stage (System.AccessToken).
  • .gitlab/ci/deploy.yml \u2014 inline identical version scheme (fleet runner lacks PowerShell), build-arg + version tag, non-fatal release:tag job (needs GITLAB_TAG_TOKEN).

Validation

  • Web app builds; version script outputs 1.0.0.
  • GitLab contract validation passes; Core + Phase8 ADO contract tests pass (17/17 each, Pester 3.4.0).

Runner requirements

  • ADO: build service needs Contribute permission to push tags (non-fatal warning otherwise).
  • GitLab: set GITLAB_TAG_TOKEN (project access token, write_repository) to enable tag push (job is allow_failure).

…git tag

Adds shared scripts/version/Get-BuildVersion.ps1 (1.0.0 + patch per tagged commit) consumed by GitHub and Azure DevOps; GitLab computes the identical scheme inline. The version is passed as the APP_VERSION Docker build-arg, rendered in the web app footer, applied as a v<version> image tag, and created as a v<version> git tag across all three providers.

Closes #68
@emmanuelknafo
emmanuelknafo requested a review from CalinL as a code owner July 22, 2026 18:13
@emmanuelknafo
emmanuelknafo merged commit 0e10a72 into main Jul 22, 2026
14 checks passed
@emmanuelknafo
emmanuelknafo deleted the feature/68-semver-tri-provider branch July 22, 2026 18:14
@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA 1de3e77.
Ensure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice.

Scanned Files

None

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Stamp semantic version (1.0.0+patch) into image, footer, image tag, and git tag across tri-provider CI/CD

1 participant