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 "MEMORY_LIMIT=512Mi" >> "$GITHUB_OUTPUT"
|
||||||
echo "CPU_REQUEST=50m" >> "$GITHUB_OUTPUT"
|
echo "CPU_REQUEST=50m" >> "$GITHUB_OUTPUT"
|
||||||
echo "CPU_LIMIT=250m" >> "$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"
|
echo "env_label=dev (PR #${{ gitea.event.pull_request.number }})" >> "$GITHUB_OUTPUT"
|
||||||
elif [[ "${{ gitea.ref }}" == refs/tags/v* ]]; then
|
elif [[ "${{ gitea.ref }}" == refs/tags/v* ]]; then
|
||||||
VERSION="${{ gitea.ref_name }}"
|
VERSION="${{ gitea.ref_name }}"
|
||||||
@@ -429,6 +430,7 @@ jobs:
|
|||||||
echo "MEMORY_LIMIT=512Mi" >> "$GITHUB_OUTPUT"
|
echo "MEMORY_LIMIT=512Mi" >> "$GITHUB_OUTPUT"
|
||||||
echo "CPU_REQUEST=100m" >> "$GITHUB_OUTPUT"
|
echo "CPU_REQUEST=100m" >> "$GITHUB_OUTPUT"
|
||||||
echo "CPU_LIMIT=500m" >> "$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 "is_release=true" >> "$GITHUB_OUTPUT"
|
||||||
echo "env_label=production (${VERSION})" >> "$GITHUB_OUTPUT"
|
echo "env_label=production (${VERSION})" >> "$GITHUB_OUTPUT"
|
||||||
else
|
else
|
||||||
@@ -444,6 +446,7 @@ jobs:
|
|||||||
echo "MEMORY_LIMIT=512Mi" >> "$GITHUB_OUTPUT"
|
echo "MEMORY_LIMIT=512Mi" >> "$GITHUB_OUTPUT"
|
||||||
echo "CPU_REQUEST=50m" >> "$GITHUB_OUTPUT"
|
echo "CPU_REQUEST=50m" >> "$GITHUB_OUTPUT"
|
||||||
echo "CPU_LIMIT=250m" >> "$GITHUB_OUTPUT"
|
echo "CPU_LIMIT=250m" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "BUNDLED_PACKAGES=notes,chat,chat-core" >> "$GITHUB_OUTPUT"
|
||||||
echo "env_label=test (main)" >> "$GITHUB_OUTPUT"
|
echo "env_label=test (main)" >> "$GITHUB_OUTPUT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -670,6 +673,7 @@ jobs:
|
|||||||
STORAGE_CLASS: ${{ vars.STORAGE_CLASS }}
|
STORAGE_CLASS: ${{ vars.STORAGE_CLASS }}
|
||||||
STORAGE_SIZE: ${{ vars.STORAGE_SIZE || '10Gi' }}
|
STORAGE_SIZE: ${{ vars.STORAGE_SIZE || '10Gi' }}
|
||||||
STORAGE_BACKEND: ${{ vars.STORAGE_BACKEND || 'pvc' }}
|
STORAGE_BACKEND: ${{ vars.STORAGE_BACKEND || 'pvc' }}
|
||||||
|
BUNDLED_PACKAGES: ${{ steps.setup.outputs.BUNDLED_PACKAGES }}
|
||||||
run: |
|
run: |
|
||||||
# Render PVC first (must exist before backend references it)
|
# Render PVC first (must exist before backend references it)
|
||||||
if [[ -n "${STORAGE_CLASS}" ]]; then
|
if [[ -n "${STORAGE_CLASS}" ]]; then
|
||||||
|
|||||||
16
CHANGELOG.md
16
CHANGELOG.md
@@ -2,6 +2,22 @@
|
|||||||
|
|
||||||
All notable changes to Armature are documented here.
|
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
|
## v0.6.17 — Bug Fixes & Welcome Logic
|
||||||
|
|
||||||
Fixes broken UI interactions (folder creation, team member add), dropdown
|
Fixes broken UI interactions (folder creation, team member add), dropdown
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ services:
|
|||||||
EXT_ALLOW_PRIVATE_IPS: ${EXT_ALLOW_PRIVATE_IPS:-true}
|
EXT_ALLOW_PRIVATE_IPS: ${EXT_ALLOW_PRIVATE_IPS:-true}
|
||||||
LOG_FORMAT: ${LOG_FORMAT:-text}
|
LOG_FORMAT: ${LOG_FORMAT:-text}
|
||||||
LOG_LEVEL: ${LOG_LEVEL:-info}
|
LOG_LEVEL: ${LOG_LEVEL:-info}
|
||||||
BUNDLED_PACKAGES: ${BUNDLED_PACKAGES:-}
|
BUNDLED_PACKAGES: ${BUNDLED_PACKAGES:-*}
|
||||||
# Dev seed users — ignored if ENVIRONMENT=production
|
# Dev seed users — ignored if ENVIRONMENT=production
|
||||||
SEED_USERS: ${SEED_USERS:-alice:password123:user,bob:password456:user,charlie:password789:user}
|
SEED_USERS: ${SEED_USERS:-alice:password123:user,bob:password456:user,charlie:password789:user}
|
||||||
volumes:
|
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) {
|
func TestBundledInstall_DefaultAllowlist(t *testing.T) {
|
||||||
stores := newTestStores(t)
|
stores := newTestStores(t)
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
@@ -449,7 +450,7 @@ func TestBundledInstall_DefaultAllowlist(t *testing.T) {
|
|||||||
bundledDir := t.TempDir()
|
bundledDir := t.TempDir()
|
||||||
packagesDir := 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{
|
buildTestPkg(t, bundledDir, map[string]any{
|
||||||
"id": "notes", "title": "Notes", "type": "surface", "version": "1.0.0",
|
"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",
|
"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)
|
InstallBundledPackages(bundledDir, packagesDir, "", stores, nil)
|
||||||
|
|
||||||
// "notes" is in the default set → should be installed
|
pkg, _ := stores.Packages.Get(ctx, "notes")
|
||||||
pkg, err := stores.Packages.Get(ctx, "notes")
|
if pkg != nil {
|
||||||
if err != nil || pkg == nil {
|
t.Fatal("notes should NOT be installed (default set is empty)")
|
||||||
t.Fatal("notes should be installed (in default set)")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// "regex-tester" is NOT in the default set → should be filtered
|
|
||||||
pkg, _ = stores.Packages.Get(ctx, "regex-tester")
|
pkg, _ = stores.Packages.Get(ctx, "regex-tester")
|
||||||
if pkg != nil {
|
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