Files
ermnvldmr.com/.gitea/workflows/services-www-release-manual.yml
T
deytenit 19df48e162
packages/kits - next/required / Setup - Stage (push) Successful in 41s
packages/ssg - next/required / Setup - Stage (push) Successful in 40s
packages/stl - next/required / Setup - Stage (push) Successful in 40s
packages/ui - next/required / Setup - Stage (push) Successful in 44s
services/docs - next/required / Setup - Hugo (push) Successful in 4s
services/static - next/required / Setup - Stage (push) Successful in 41s
packages/kits - next/required / Build - Configs & UI (push) Canceled after 0s
packages/kits - next/required / Lint - Kits (push) Canceled after 0s
packages/kits - next/required / Typecheck - Kits (push) Canceled after 0s
packages/kits - next/required / Test - Unit (push) Canceled after 0s
packages/kits - next/required / Build - Storybook (push) Canceled after 0s
packages/kits - next/required / Test - Storybook (push) Canceled after 0s
packages/kits - next/required / Build - Kits (push) Canceled after 0s
packages/ssg - next/required / Build - Configs (push) Canceled after 0s
packages/ssg - next/required / Lint - SSG (push) Canceled after 0s
packages/ssg - next/required / Typecheck - SSG (push) Canceled after 0s
packages/ssg - next/required / Build - SSG (push) Canceled after 0s
packages/stl - next/required / Build - Configs (push) Canceled after 0s
packages/stl - next/required / Lint - STL (push) Canceled after 0s
packages/stl - next/required / Typecheck - STL (push) Canceled after 0s
packages/stl - next/required / Test - STL (push) Canceled after 0s
packages/stl - next/required / Build - STL (push) Canceled after 0s
packages/ui - next/required / Build - Configs (push) Canceled after 0s
packages/ui - next/required / Lint - UI (push) Canceled after 0s
packages/ui - next/required / Typecheck - UI (push) Canceled after 0s
packages/ui - next/required / Test - Unit (push) Canceled after 0s
packages/ui - next/required / Build - Storybook (push) Canceled after 0s
packages/ui - next/required / Test - Storybook (push) Canceled after 0s
packages/ui - next/required / Build - UI (push) Canceled after 0s
services/www - next/required / Setup - Stage (push) Canceled after 46s
services/docs - next/required / Build - Hugo Site (push) Canceled after 0s
services/docs - next/required / Release - Docker Image (push) Canceled after 0s
services/docs - next/required / Deploy - Kubernetes (GitOps) (push) Canceled after 0s
services/docs - next/required / Verify - Production Rollout (push) Canceled after 0s
services/static - next/required / Build - Configs (push) Canceled after 0s
services/static - next/required / Lint - Static (push) Canceled after 0s
services/static - next/required / Typecheck - Static (push) Canceled after 0s
services/static - next/required / Build - Static Site (push) Canceled after 0s
services/static - next/required / Deploy - S3 (push) Canceled after 0s
services/www - next/required / Build - Configs (push) Canceled after 0s
services/www - next/required / Lint - WWW (push) Canceled after 0s
services/www - next/required / Typecheck - WWW (push) Canceled after 0s
services/www - next/required / Build - Storybook (push) Canceled after 0s
services/www - next/required / Test - Unit (push) Canceled after 0s
services/www - next/required / Test - Storybook (push) Canceled after 0s
services/www - next/required / Build - WWW Service (push) Canceled after 0s
services/www - next/required / Build - Docker Image (push) Canceled after 0s
ci: streamline all workflows, use actions mirror and remove vendored bundles
2026-11-08 01:50:51 +03:00

89 lines
2.8 KiB
YAML

name: services/www - manual release
'on':
workflow_dispatch:
inputs:
tested_sha:
description: Full tested source commit
required: true
type: string
tested_digest:
description: OCI sha256 digest from the successful build
required: true
type: string
build_run_id:
description: Successful WWW build run ID
required: true
type: string
permissions:
contents: read
actions: read
jobs:
release:
runs-on: apex-debian13
if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/next'
&& github.actor == 'deytenit'
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Authenticate local registry
run: python3 ci/scripts/docker.py login
env:
REGISTRY: git.ermnvldmr.com
REGISTRY_USER: deytenit
REGISTRY_TOKEN: ${{ secrets.RELEASE_REGISTRY_TOKEN }}
- name: Verify successful build and immutable digest
id: provenance
run: python3 ci/scripts/provenance.py
env:
TESTED_SHA: ${{ inputs.tested_sha }}
TESTED_DIGEST: ${{ inputs.tested_digest }}
BUILD_RUN_ID: ${{ inputs.build_run_id }}
PROVENANCE_TOKEN: ${{ github.token }}
- name: Promote tested digest and create release tag
env:
TESTED_SHA: ${{ inputs.tested_sha }}
TESTED_DIGEST: ${{ inputs.tested_digest }}
BUILD_RUN_ID: ${{ inputs.build_run_id }}
PROVENANCE_TOKEN: ${{ github.token }}
GIT_WRITE_KEY: ${{ secrets.WWW_RELEASE_KEY }}
run: 'set -euo pipefail
VERSION=$(bash ci/scripts/calver-release.sh)
[[ "$VERSION" =~ ^[A-Za-z0-9][A-Za-z0-9._-]*$ ]]
if git show-ref --verify --quiet "refs/tags/$VERSION"; then exit 1; fi
docker buildx imagetools create --prefer-index=false "git.ermnvldmr.com/deytenit/ermnvldmr.com/www@$TESTED_DIGEST"
--tag "git.ermnvldmr.com/deytenit/ermnvldmr.com/www:$VERSION"
test "$(docker buildx imagetools inspect "git.ermnvldmr.com/deytenit/ermnvldmr.com/www:$VERSION"
--format ''{{.Manifest.Digest}}'')" = "$TESTED_DIGEST"
git tag "$VERSION" "$TESTED_SHA"
python3 ci/scripts/git_write.py "refs/tags/$VERSION"
export VERSION
mkdir -p .ci
python3 - <<''RELEASE_PROVENANCE''
import json, os
from pathlib import Path
Path(''.ci/www-release.json'').write_text(json.dumps({''sha'': os.environ[''TESTED_SHA''],
''digest'': os.environ[''TESTED_DIGEST''], ''run_id'': os.environ[''BUILD_RUN_ID''],
''repository'': ''deytenit/ermnvldmr.com'', ''release_tag'': os.environ[''VERSION'']}))
RELEASE_PROVENANCE
'
- uses: actions/upload-artifact@v4
with:
name: www-release-provenance
path: .ci/www-release.json
retention-days: 30