Skip to content

Commit e424e9e

Browse files
authored
refactor: Update API group to aotanami.com and revamp documentation and release workflows. (#2)
1 parent 8ddd240 commit e424e9e

107 files changed

Lines changed: 1598 additions & 438 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ jobs:
8787
run: make build
8888

8989
- name: Build Docker image
90-
run: make docker-build IMG=ghcr.io/zelyo-ai/aotanami:ci-${{ github.sha }}
90+
run: make docker-build IMG=ghcr.io/aotanami/aotanami:ci-${{ github.sha }}
9191

9292
helm-lint:
9393
name: Helm Lint

.github/workflows/pages.yml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: Deploy GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- "docs/**"
8+
- "mkdocs.yml"
9+
- "CONTRIBUTING.md"
10+
- "SECURITY.md"
11+
- "assets/**"
12+
workflow_dispatch:
13+
14+
permissions:
15+
contents: read
16+
pages: write
17+
id-token: write
18+
19+
concurrency:
20+
group: pages
21+
cancel-in-progress: false
22+
23+
jobs:
24+
build:
25+
name: Build Documentation
26+
runs-on: ubuntu-latest
27+
steps:
28+
- name: Harden runner
29+
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
30+
with:
31+
egress-policy: audit
32+
33+
- name: Checkout
34+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
35+
with:
36+
fetch-depth: 0
37+
persist-credentials: false
38+
39+
- name: Set up Python
40+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
41+
with:
42+
python-version: "3.12"
43+
44+
- name: Install MkDocs and dependencies
45+
run: |
46+
pip install \
47+
mkdocs-material \
48+
mkdocs-minify-plugin \
49+
pymdown-extensions
50+
51+
- name: Build site
52+
run: mkdocs build --strict
53+
54+
- name: Upload pages artifact
55+
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1
56+
with:
57+
path: site
58+
59+
deploy:
60+
name: Deploy to GitHub Pages
61+
needs: build
62+
runs-on: ubuntu-latest
63+
environment:
64+
name: github-pages
65+
url: ${{ steps.deployment.outputs.page_url }}
66+
steps:
67+
- name: Deploy to GitHub Pages
68+
id: deployment
69+
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac553fd0d31 # v4.0.5

.github/workflows/release-helm.yml

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
name: Release Helm Chart (OCI)
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
# Minimal top-level permissions — each job declares only what it needs.
9+
permissions: {}
10+
11+
env:
12+
REGISTRY: ghcr.io
13+
HELM_REGISTRY: ghcr.io/aotanami/charts
14+
CHART_PATH: deploy/helm/aotanami
15+
16+
jobs:
17+
release-helm:
18+
name: Package, Push & Sign Helm Chart
19+
runs-on: ubuntu-latest
20+
permissions:
21+
contents: write # GitHub Release asset upload
22+
packages: write # Push to GHCR
23+
id-token: write # Cosign keyless signing (Fulcio OIDC)
24+
steps:
25+
- name: Harden runner
26+
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
27+
with:
28+
egress-policy: audit
29+
30+
- name: Checkout
31+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
32+
with:
33+
persist-credentials: false
34+
35+
- name: Set up Helm
36+
uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4.3.0
37+
with:
38+
version: v3.17.1
39+
40+
- name: Install Cosign
41+
uses: sigstore/cosign-installer@3454372f43399081ed03b604cb2d021dabca52bb # v3.8.2
42+
43+
- name: Install Syft
44+
uses: anchore/sbom-action/download-syft@e11c554f704a0b820cbf8c51673f6945e0731532 # v0.20.0
45+
46+
- name: Log in to GHCR (Helm OCI)
47+
run: |
48+
echo "${{ secrets.GITHUB_TOKEN }}" | helm registry login "${{ env.REGISTRY }}" \
49+
--username "${{ github.actor }}" --password-stdin
50+
51+
# ── Extract and validate version ──
52+
- name: Extract version
53+
id: version
54+
run: |
55+
VERSION="${{ github.ref_name }}"
56+
VERSION="${VERSION#v}" # Strip leading 'v' for SemVer
57+
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
58+
echo "tag=${{ github.ref_name }}" >> "$GITHUB_OUTPUT"
59+
60+
# ── Lint before packaging ──
61+
- name: Lint Helm chart
62+
run: helm lint "${{ env.CHART_PATH }}"
63+
64+
# ── Stamp version into Chart.yaml ──
65+
- name: Update chart version
66+
run: |
67+
sed -i "s/^version:.*/version: ${{ steps.version.outputs.version }}/" \
68+
"${{ env.CHART_PATH }}/Chart.yaml"
69+
sed -i "s/^appVersion:.*/appVersion: \"${{ steps.version.outputs.version }}\"/" \
70+
"${{ env.CHART_PATH }}/Chart.yaml"
71+
72+
# ── Validate template rendering ──
73+
- name: Validate template rendering
74+
run: helm template aotanami "${{ env.CHART_PATH }}" --debug > /dev/null
75+
76+
# ── Package ──
77+
- name: Package Helm chart
78+
run: |
79+
helm package "${{ env.CHART_PATH }}" --destination .helm-packages/
80+
81+
# ── Push to OCI registry ──
82+
- name: Push Helm chart to GHCR (OCI)
83+
id: helm-push
84+
run: |
85+
CHART_PACKAGE=".helm-packages/aotanami-${{ steps.version.outputs.version }}.tgz"
86+
helm push "${CHART_PACKAGE}" "oci://${{ env.HELM_REGISTRY }}"
87+
88+
# ── Cosign keyless signing ──
89+
- name: Sign Helm chart OCI artifact
90+
run: |
91+
cosign sign --yes \
92+
"${{ env.HELM_REGISTRY }}/aotanami:${{ steps.version.outputs.version }}"
93+
94+
# ── SBOM for the chart package ──
95+
- name: Generate Helm chart SBOM
96+
run: |
97+
CHART_PACKAGE=".helm-packages/aotanami-${{ steps.version.outputs.version }}.tgz"
98+
syft "${CHART_PACKAGE}" \
99+
-o spdx-json=helm-sbom-spdx.json \
100+
-o cyclonedx-json=helm-sbom-cyclonedx.json
101+
102+
# ── Attest SBOM ──
103+
- name: Attest Helm chart SBOM
104+
run: |
105+
CHART_REF="${{ env.HELM_REGISTRY }}/aotanami:${{ steps.version.outputs.version }}"
106+
cosign attest --yes \
107+
--predicate helm-sbom-spdx.json \
108+
--type spdxjson \
109+
"${CHART_REF}"
110+
111+
# ── Upload SBOMs as release assets ──
112+
- name: Upload Helm SBOMs to release
113+
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2.2.1
114+
with:
115+
files: |
116+
helm-sbom-spdx.json
117+
helm-sbom-cyclonedx.json

0 commit comments

Comments
 (0)