Feat v0.6.18 ci bundled packages (#53)
All checks were successful
All checks were successful
Co-authored-by: Jeffrey Smith <jasafpro@gmail.com> Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit was merged in pull request #53.
This commit is contained in:
@@ -413,6 +413,7 @@ jobs:
|
||||
echo "MEMORY_LIMIT=512Mi" >> "$GITHUB_OUTPUT"
|
||||
echo "CPU_REQUEST=50m" >> "$GITHUB_OUTPUT"
|
||||
echo "CPU_LIMIT=250m" >> "$GITHUB_OUTPUT"
|
||||
echo "BUNDLED_PACKAGES=*" >> "$GITHUB_OUTPUT"
|
||||
echo "env_label=dev (PR #${{ gitea.event.pull_request.number }})" >> "$GITHUB_OUTPUT"
|
||||
elif [[ "${{ gitea.ref }}" == refs/tags/v* ]]; then
|
||||
VERSION="${{ gitea.ref_name }}"
|
||||
@@ -429,6 +430,7 @@ jobs:
|
||||
echo "MEMORY_LIMIT=512Mi" >> "$GITHUB_OUTPUT"
|
||||
echo "CPU_REQUEST=100m" >> "$GITHUB_OUTPUT"
|
||||
echo "CPU_LIMIT=500m" >> "$GITHUB_OUTPUT"
|
||||
echo "BUNDLED_PACKAGES=notes,chat,chat-core,mermaid-renderer,schedules" >> "$GITHUB_OUTPUT"
|
||||
echo "is_release=true" >> "$GITHUB_OUTPUT"
|
||||
echo "env_label=production (${VERSION})" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
@@ -444,6 +446,7 @@ jobs:
|
||||
echo "MEMORY_LIMIT=512Mi" >> "$GITHUB_OUTPUT"
|
||||
echo "CPU_REQUEST=50m" >> "$GITHUB_OUTPUT"
|
||||
echo "CPU_LIMIT=250m" >> "$GITHUB_OUTPUT"
|
||||
echo "BUNDLED_PACKAGES=notes,chat,chat-core" >> "$GITHUB_OUTPUT"
|
||||
echo "env_label=test (main)" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
@@ -670,6 +673,7 @@ jobs:
|
||||
STORAGE_CLASS: ${{ vars.STORAGE_CLASS }}
|
||||
STORAGE_SIZE: ${{ vars.STORAGE_SIZE || '10Gi' }}
|
||||
STORAGE_BACKEND: ${{ vars.STORAGE_BACKEND || 'pvc' }}
|
||||
BUNDLED_PACKAGES: ${{ steps.setup.outputs.BUNDLED_PACKAGES }}
|
||||
run: |
|
||||
# Render PVC first (must exist before backend references it)
|
||||
if [[ -n "${STORAGE_CLASS}" ]]; then
|
||||
|
||||
16
CHANGELOG.md
16
CHANGELOG.md
@@ -2,6 +2,22 @@
|
||||
|
||||
All notable changes to Armature are documented here.
|
||||
|
||||
## v0.6.18 — CI Bundle Wiring
|
||||
|
||||
Wire `BUNDLED_PACKAGES` env var into the Gitea CI pipeline so each
|
||||
environment gets the correct package set at boot.
|
||||
|
||||
### Changed
|
||||
|
||||
- **CI: dev deploys** — `BUNDLED_PACKAGES=*` (install all, matches docker-compose default).
|
||||
- **CI: test deploys** — `BUNDLED_PACKAGES=notes,chat,chat-core` (core surfaces only).
|
||||
- **CI: prod deploys** — `BUNDLED_PACKAGES=notes,chat,chat-core,mermaid-renderer,schedules`.
|
||||
- **docker-compose.yml** — default `BUNDLED_PACKAGES` changed from empty to `*` (install all for local dev).
|
||||
|
||||
### Fixed
|
||||
|
||||
- **TestBundledInstall_DefaultAllowlist** — updated test assertions to match v0.6.17's empty default set (was still expecting `notes` in curated defaults).
|
||||
|
||||
## v0.6.17 — Bug Fixes & Welcome Logic
|
||||
|
||||
Fixes broken UI interactions (folder creation, team member add), dropdown
|
||||
|
||||
@@ -33,7 +33,7 @@ services:
|
||||
EXT_ALLOW_PRIVATE_IPS: ${EXT_ALLOW_PRIVATE_IPS:-true}
|
||||
LOG_FORMAT: ${LOG_FORMAT:-text}
|
||||
LOG_LEVEL: ${LOG_LEVEL:-info}
|
||||
BUNDLED_PACKAGES: ${BUNDLED_PACKAGES:-}
|
||||
BUNDLED_PACKAGES: ${BUNDLED_PACKAGES:-*}
|
||||
# Dev seed users — ignored if ENVIRONMENT=production
|
||||
SEED_USERS: ${SEED_USERS:-alice:password123:user,bob:password456:user,charlie:password789:user}
|
||||
volumes:
|
||||
|
||||
@@ -441,7 +441,8 @@ func TestExportPackage_NotFound(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// TestBundledInstall_DefaultAllowlist verifies the curated default set behavior.
|
||||
// TestBundledInstall_DefaultAllowlist verifies that an empty allowlist
|
||||
// installs nothing (defaultBundledPackages is empty since v0.6.17).
|
||||
func TestBundledInstall_DefaultAllowlist(t *testing.T) {
|
||||
stores := newTestStores(t)
|
||||
ctx := context.Background()
|
||||
@@ -449,7 +450,7 @@ func TestBundledInstall_DefaultAllowlist(t *testing.T) {
|
||||
bundledDir := t.TempDir()
|
||||
packagesDir := t.TempDir()
|
||||
|
||||
// Create packages: one in default set, one not
|
||||
// Create packages — neither should be installed with empty defaults
|
||||
buildTestPkg(t, bundledDir, map[string]any{
|
||||
"id": "notes", "title": "Notes", "type": "surface", "version": "1.0.0",
|
||||
})
|
||||
@@ -457,19 +458,17 @@ func TestBundledInstall_DefaultAllowlist(t *testing.T) {
|
||||
"id": "regex-tester", "title": "Regex Tester", "type": "extension", "version": "1.0.0",
|
||||
})
|
||||
|
||||
// Empty allowlist → curated defaults
|
||||
// Empty allowlist → empty default set → nothing installed
|
||||
InstallBundledPackages(bundledDir, packagesDir, "", stores, nil)
|
||||
|
||||
// "notes" is in the default set → should be installed
|
||||
pkg, err := stores.Packages.Get(ctx, "notes")
|
||||
if err != nil || pkg == nil {
|
||||
t.Fatal("notes should be installed (in default set)")
|
||||
pkg, _ := stores.Packages.Get(ctx, "notes")
|
||||
if pkg != nil {
|
||||
t.Fatal("notes should NOT be installed (default set is empty)")
|
||||
}
|
||||
|
||||
// "regex-tester" is NOT in the default set → should be filtered
|
||||
pkg, _ = stores.Packages.Get(ctx, "regex-tester")
|
||||
if pkg != nil {
|
||||
t.Fatal("regex-tester should NOT be installed (not in default set)")
|
||||
t.Fatal("regex-tester should NOT be installed (default set is empty)")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user