WIP: feat: complete docker_publish skill — FORGEJO_TOKEN auth, DinD CI, E2E flow #27

Closed
mik-tf wants to merge 0 commits from development_docker_auth_skill into development
Owner

Summary

  • Add "Registry Authentication" section — FORGEJO_TOKEN for local and CI login, non-interactive Makefile target
  • Replace naive CI workflow with Docker-in-Docker (docker:24-dind) pattern using official Docker actions (setup-buildx, login-action, build-push-action)
  • Add SSH agent forwarding variant for private Forge repos
  • Add "End-to-End Flow" section — local dev, CI automation, consuming images
  • Reference hero_services as working implementation
  • Updated failure modes table

Closes #26

## Summary - Add "Registry Authentication" section — FORGEJO_TOKEN for local and CI login, non-interactive Makefile target - Replace naive CI workflow with Docker-in-Docker (`docker:24-dind`) pattern using official Docker actions (`setup-buildx`, `login-action`, `build-push-action`) - Add SSH agent forwarding variant for private Forge repos - Add "End-to-End Flow" section — local dev, CI automation, consuming images - Reference `hero_services` as working implementation - Updated failure modes table Closes #26
Adds freezone_backend (freezone_server) to the hero_ports registry
at port 3395. Updates next available backend port to 3396.

Closes #12
- Detail steps for porting backends to OSchema-generated OpenRPC servers
- Explain storage and proxy/bridge operating modes with examples
- Provide OSchema syntax reference for type and service definitions
- Include common pitfalls, tips, and a quick checklist for developers
Complete issue-to-merge workflow: templates, WIP convention,
writing style, and API calls. Absorbs forge_issues content.

Closes #14
- Replace all GIT_TOKEN references with FORGEJO_TOKEN across forge_api,
  forge_ci, forge_release, and forge_workflow skills
- Add rustup crash row to forge_ci Common CI Issues table
- Add "When build_lib.sh is not available" section to build_lib skill
- Add duplicate-check step to forge_workflow issue template
- Update env_secrets FORGEJO_TOKEN description to cover API calls
- Fix forge_api gotcha #4: one token for everything, not two

Closes #16
Add cross-repo deps.txt reference section to forge_ci (§8) covering
file format, CI usage, maintenance rules after dependency migrations,
and cargo check vs wasm-pack for WASM compilation. Add four new CI
issue rows for stale deps.txt, generated code, package name mismatches,
and fragile wasm-pack paths. Update hero_coderoot with deps.txt sync
checklist and real-world migration example.

Closes #18

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Expand the "Porting an Existing UI" section in the archipelagos skill
from a brief checklist into a complete step-by-step guide covering:

- Two porting modes: SDK (hero_osis) vs HTTP (external API)
- View enum with FromStr trait pattern (not inherent from_str)
- Dual-target service layer (gloo-net WASM + native stubs)
- Tera-to-RSX conversion reference table
- JavaScript interop via js_sys::eval
- Island entry point wiring (signal-based navigation, no Router)
- Standalone lib.rs boilerplate with cfg gates
- CI/Clippy gotchas (#[component] _props bug, cfg-gated params,
  rustfmt::skip for generated code, standalone import gating)
- Complete porting checklist

Also update the Dioxus skill to reference the archipelagos skill for
island work, clarifying that islands don't use Router or Server Functions.

Based on lessons learned porting hero_books (Tera templates) to a native
Dioxus island in hero_archipelagos.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Section 3 of forge_ci skill now documents the undocumented internal
endpoint that the Forgejo web UI uses to fetch job step logs. This
enables programmatic CI log retrieval with token authentication,
removing the need to always reproduce failures locally or copy-paste
from the browser.

Closes #20

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- forge_ci: fix List Runs field names (index_in_repo, prettyref, title
  instead of index, head_branch, name) and List Tasks fields
- forge_ci: document that web log endpoint returns 404 for private repos
  (Forgejo web routes require session cookies, no token auth works)
- forge_ci: correct response format (wrapped in state/logs, "lines" not
  "logLines", Unix timestamps)
- forge_ci: promote local reproduction to Option 1 (fastest, works for
  all repos, catches errors before pushing)
- forge_ci: add build_lib.sh build() argument order gotcha
- forge_ci: add explicit warning to never toggle repo visibility
- makefile_helper: add ci-local target pattern with scripts/ci-local.sh
  that neutralizes workspace .cargo/config.toml for CI-equivalent builds
- hero_coderoot: document workspace .cargo/config.toml interference with
  CI builds and link to ci-local workaround

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- makefile_helper: test-all.sh uses make targets (not raw cargo), ci-local
  calls make test-all with CARGO_NET_GIT_FETCH_WITH_CLI, new ci-docker
  convention with Docker template and ci-patch-deps.sh for cross-repo deps
- forge_ci: Option 1 updated with three-tier strategy and careful language
  ("CI should pass" not "will pass")
- build_lib: build.yaml simplified to single make test-all step

Proven in practice: ci-local pass → remote CI pass (hero_zero PR #14).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Take development's znzfreezone naming for port 3395 entry.
- makefile_helper: add Ports vs Sockets section, clarify PORT is TCP fallback
- build_lib: note PORTS is for dev/registry identity, production uses sockets
- Both skills now cross-reference hero_sockets for the full architecture

Closes #24
- ci-docker.sh must mirror full CI pipeline (test-all + musl + ARM64),
  not just test-all — native builds don't catch cross-compilation failures
- forge_config() must be called before publish_binaries() in all workflows
- Use rustls-tls instead of native-tls to avoid OpenSSL cross-compilation issues
- Updated all publish step examples to include forge_config call
Add comprehensive registry auth section covering automated login
for both local dev and CI workflows. Replaces interactive docker-login
with FORGEJO_TOKEN-based non-interactive auth. Aligns CI workflow
with canonical env_secrets variable names.

Co-Authored-By: mik-tf <mik@threefold.io>
Replace naive CI workflow with Docker-in-Docker pattern using
docker:24-dind, BuildKit, and official Docker actions. Add SSH agent
forwarding variant for private repos. Add end-to-end flow section
covering local dev, CI automation, and consuming published images.
Reference hero_services as working implementation.

Co-Authored-By: mik-tf <mik@threefold.io>
mik-tf changed title from WIP: feat: add FORGEJO_TOKEN registry auth to docker_publish skill to WIP: feat: complete docker_publish skill — FORGEJO_TOKEN auth, DinD CI, E2E flow 2026-02-26 05:03:20 +00:00
mik-tf closed this pull request 2026-02-26 05:06:55 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_skills!27
No description provided.