up
This commit is contained in:
44
.gitea/workflows/cli-chaos-parity.yml
Normal file
44
.gitea/workflows/cli-chaos-parity.yml
Normal file
@@ -0,0 +1,44 @@
|
||||
name: cli-chaos-parity
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
chaos:
|
||||
description: "Run chaos smoke (true/false)"
|
||||
required: false
|
||||
default: "true"
|
||||
parity:
|
||||
description: "Run parity diff (true/false)"
|
||||
required: false
|
||||
default: "true"
|
||||
|
||||
jobs:
|
||||
cli-checks:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: "10.0.100-rc.2.25502.107"
|
||||
|
||||
- name: Chaos smoke
|
||||
if: ${{ github.event.inputs.chaos == 'true' }}
|
||||
run: |
|
||||
chmod +x scripts/cli/chaos-smoke.sh
|
||||
scripts/cli/chaos-smoke.sh
|
||||
|
||||
- name: Parity diff
|
||||
if: ${{ github.event.inputs.parity == 'true' }}
|
||||
run: |
|
||||
chmod +x scripts/cli/parity-diff.sh
|
||||
scripts/cli/parity-diff.sh
|
||||
|
||||
- name: Upload evidence
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: cli-chaos-parity
|
||||
path: |
|
||||
out/cli-chaos/**
|
||||
out/cli-goldens/**
|
||||
29
.gitea/workflows/devportal-offline.yml
Normal file
29
.gitea/workflows/devportal-offline.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
name: devportal-offline
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 5 * * *"
|
||||
workflow_dispatch: {}
|
||||
|
||||
jobs:
|
||||
build-offline:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node (corepack/pnpm)
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "18"
|
||||
cache: "pnpm"
|
||||
|
||||
- name: Build devportal (offline bundle)
|
||||
run: |
|
||||
chmod +x scripts/devportal/build-devportal.sh
|
||||
scripts/devportal/build-devportal.sh
|
||||
|
||||
- name: Upload bundle
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: devportal-offline
|
||||
path: out/devportal/**.tgz
|
||||
38
.gitea/workflows/export-compat.yml
Normal file
38
.gitea/workflows/export-compat.yml
Normal file
@@ -0,0 +1,38 @@
|
||||
name: export-compat
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
image:
|
||||
description: "Exporter image ref"
|
||||
required: true
|
||||
default: "ghcr.io/stella-ops/exporter:edge"
|
||||
|
||||
jobs:
|
||||
compat:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Trivy
|
||||
uses: aquasecurity/trivy-action@v0.24.0
|
||||
with:
|
||||
version: latest
|
||||
|
||||
- name: Setup Cosign
|
||||
uses: sigstore/cosign-installer@v3.6.0
|
||||
|
||||
- name: Run compatibility checks
|
||||
env:
|
||||
IMAGE: ${{ github.event.inputs.image }}
|
||||
run: |
|
||||
chmod +x scripts/export/trivy-compat.sh
|
||||
chmod +x scripts/export/oci-verify.sh
|
||||
scripts/export/trivy-compat.sh
|
||||
scripts/export/oci-verify.sh
|
||||
|
||||
- name: Upload reports
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: export-compat
|
||||
path: out/export-compat/**
|
||||
39
.gitea/workflows/graph-load.yml
Normal file
39
.gitea/workflows/graph-load.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
name: graph-load
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
target:
|
||||
description: "Graph API base URL"
|
||||
required: true
|
||||
default: "http://localhost:5000"
|
||||
users:
|
||||
description: "Virtual users"
|
||||
required: false
|
||||
default: "8"
|
||||
duration:
|
||||
description: "Duration seconds"
|
||||
required: false
|
||||
default: "60"
|
||||
|
||||
jobs:
|
||||
load-test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install k6
|
||||
run: |
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get install -y k6
|
||||
|
||||
- name: Run graph load test
|
||||
run: |
|
||||
chmod +x scripts/graph/load-test.sh
|
||||
TARGET="${{ github.event.inputs.target }}" USERS="${{ github.event.inputs.users }}" DURATION="${{ github.event.inputs.duration }}" scripts/graph/load-test.sh
|
||||
|
||||
- name: Upload results
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: graph-load-summary
|
||||
path: out/graph-load/**
|
||||
54
.gitea/workflows/graph-ui-sim.yml
Normal file
54
.gitea/workflows/graph-ui-sim.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
name: graph-ui-sim
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
graph_api:
|
||||
description: "Graph API base URL"
|
||||
required: true
|
||||
default: "http://localhost:5000"
|
||||
graph_ui:
|
||||
description: "Graph UI base URL"
|
||||
required: true
|
||||
default: "http://localhost:4200"
|
||||
perf_budget_ms:
|
||||
description: "Perf budget in ms"
|
||||
required: false
|
||||
default: "3000"
|
||||
|
||||
jobs:
|
||||
ui-and-sim:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "18"
|
||||
|
||||
- name: Install Playwright deps
|
||||
run: npx playwright install --with-deps chromium
|
||||
|
||||
- name: Run UI perf probe
|
||||
env:
|
||||
GRAPH_UI_BASE: ${{ github.event.inputs.graph_ui }}
|
||||
GRAPH_UI_BUDGET_MS: ${{ github.event.inputs.perf_budget_ms }}
|
||||
OUT: out/graph-ui-perf
|
||||
run: |
|
||||
npx ts-node scripts/graph/ui-perf.ts
|
||||
|
||||
- name: Run simulation smoke
|
||||
env:
|
||||
TARGET: ${{ github.event.inputs.graph_api }}
|
||||
run: |
|
||||
chmod +x scripts/graph/simulation-smoke.sh
|
||||
scripts/graph/simulation-smoke.sh
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: graph-ui-sim
|
||||
path: |
|
||||
out/graph-ui-perf/**
|
||||
out/graph-sim/**
|
||||
56
.gitea/workflows/oas-ci.yml
Normal file
56
.gitea/workflows/oas-ci.yml
Normal file
@@ -0,0 +1,56 @@
|
||||
name: oas-ci
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "src/Api/**"
|
||||
- "scripts/api-*.mjs"
|
||||
- "package.json"
|
||||
- "package-lock.json"
|
||||
pull_request:
|
||||
paths:
|
||||
- "src/Api/**"
|
||||
- "scripts/api-*.mjs"
|
||||
- "package.json"
|
||||
- "package-lock.json"
|
||||
|
||||
jobs:
|
||||
oas-validate:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "18"
|
||||
|
||||
- name: Install deps
|
||||
run: npm install --ignore-scripts --no-progress
|
||||
|
||||
- name: Compose aggregate OpenAPI
|
||||
run: npm run api:compose
|
||||
|
||||
- name: Lint (spectral)
|
||||
run: npm run api:lint
|
||||
|
||||
- name: Validate examples coverage
|
||||
run: npm run api:examples
|
||||
|
||||
- name: Compat diff (previous commit)
|
||||
run: |
|
||||
set -e
|
||||
if git show HEAD~1:src/Api/StellaOps.Api.OpenApi/stella.yaml > /tmp/stella-prev.yaml 2>/dev/null; then
|
||||
node scripts/api-compat-diff.mjs /tmp/stella-prev.yaml src/Api/StellaOps.Api.OpenApi/stella.yaml --output text --fail-on-breaking
|
||||
else
|
||||
echo "[oas-ci] previous stella.yaml not found; skipping"
|
||||
fi
|
||||
|
||||
- name: Contract tests
|
||||
run: npm run api:compat:test
|
||||
|
||||
- name: Upload aggregate spec
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: stella-openapi
|
||||
path: src/Api/StellaOps.Api.OpenApi/stella.yaml
|
||||
38
.gitea/workflows/scanner-analyzers-release.yml
Normal file
38
.gitea/workflows/scanner-analyzers-release.yml
Normal file
@@ -0,0 +1,38 @@
|
||||
name: scanner-analyzers-release
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
rid:
|
||||
description: "RID (e.g., linux-x64)"
|
||||
required: false
|
||||
default: "linux-x64"
|
||||
|
||||
jobs:
|
||||
build-analyzers:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: "10.0.100-rc.2.25502.107"
|
||||
|
||||
- name: Install syft (SBOM)
|
||||
uses: anchore/sbom-action/download-syft@v0
|
||||
|
||||
- name: Package PHP analyzer
|
||||
run: |
|
||||
chmod +x scripts/scanner/package-analyzer.sh
|
||||
RID="${{ github.event.inputs.rid }}" scripts/scanner/package-analyzer.sh src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.Lang.Php/StellaOps.Scanner.Analyzers.Lang.Php.csproj php-analyzer
|
||||
|
||||
- name: Package Ruby analyzer
|
||||
run: |
|
||||
RID="${{ github.event.inputs.rid }}" scripts/scanner/package-analyzer.sh src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.Lang.Ruby/StellaOps.Scanner.Analyzers.Lang.Ruby.csproj ruby-analyzer
|
||||
|
||||
- name: Upload analyzer artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: scanner-analyzers-${{ github.event.inputs.rid }}
|
||||
path: out/scanner-analyzers/**
|
||||
Reference in New Issue
Block a user