Skip to content

ci: upload source zip and plugin installers to TOS on release#2575

Open
t0saki wants to merge 2 commits into
volcengine:mainfrom
t0saki:feat/release-tos-upload
Open

ci: upload source zip and plugin installers to TOS on release#2575
t0saki wants to merge 2 commits into
volcengine:mainfrom
t0saki:feat/release-tos-upload

Conversation

@t0saki

@t0saki t0saki commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Description

Add a standalone workflow (20. Release TOS Upload) that uploads the source archive and both memory-plugin installers to TOS whenever a GitHub Release is published. This gives users in regions where raw.githubusercontent.com is unreachable a stable, China-accessible one-liner install URL, plus a mirrored source zip (the repo already serves the CLI installer this way via TOS).

Object layout per release:

Object Key Cache
Source zip releases/<tag>/openviking-<tag>-source.zip immutable
Plugin installers releases/<tag>/{claude-code,codex}-memory-plugin/install.sh immutable
Source zip (stable) releases/latest/openviking-source.zip no-cache
Plugin installers (stable) {claude-code,codex}-memory-plugin/install.sh no-cache

Related Issue

N/A

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Performance improvement
  • Test update

Changes Made

  • New workflow .github/workflows/release-tos.yml, triggered on release: published (skips cli* tags) or manual dispatch with a tag input for backfilling historical releases.
  • Reuses the existing TOS_ACCESS_KEY / TOS_SECRET_KEY / TOS_REGION / TOS_ENDPOINT secrets with a new TOS_RELEASE_BUCKET secret (already configured), keeping release artifacts out of the docs bucket; uploads via the same AWS CLI S3-compatible pattern as docs-tos.yml.
  • The stable releases/latest zip is produced by a server-side CopyObject from the versioned key instead of re-transferring ~74MB over the slow runner-to-TOS route (measured: 16s copy vs ~10min re-upload).
  • A update_latest dispatch input allows backfilling an old tag without overwriting the stable/latest paths.
  • Missing secrets (e.g. on forks) skip the upload gracefully without failing the workflow; real upload errors fail it.

Testing

  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have tested this on the following platforms:
    • Linux
    • macOS
    • Windows

End-to-end validated on this repository via a temporary test branch with a branch-scoped push trigger (no other workflows fired, no tags created): all six objects uploaded for v0.3.24 with correct content-type / cache-control, the server-side copy completed in 16s, and the missing-secrets skip path was exercised before TOS_RELEASE_BUCKET existed. actionlint passes.

Checklist

  • My code follows the project's coding style
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

Screenshots (if applicable)

N/A

Additional Notes

Switching the README / docs one-liner URLs to the TOS-hosted installers is intentionally left to a follow-up PR once the links have been confirmed stable.

t0saki added 2 commits June 11, 2026 11:47
Add a standalone workflow (20. Release TOS Upload) that runs on release
publish (or manual dispatch with a tag for backfill) and uploads:

- the source archive to releases/<tag>/ and releases/latest/
- both memory-plugin install.sh scripts to versioned paths and to
  stable root paths for a China-reachable one-liner URL

Reuses the existing TOS secrets (AK/SK/region/endpoint) with a new
TOS_RELEASE_BUCKET secret so release artifacts stay out of the docs
bucket. Missing secrets skip gracefully (fork-friendly); real upload
failures fail the workflow.
@github-actions

Copy link
Copy Markdown

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 1 🔵⚪⚪⚪⚪
🏅 Score: 95
🧪 No relevant tests
🔒 No security concerns identified
✅ No TODO sections
🔀 No multiple PR themes
⚡ No major issues detected

@github-actions

Copy link
Copy Markdown

PR Code Suggestions ✨

No code suggestions found for the PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

1 participant