- Shell 49.8%
- JavaScript 25.5%
- Python 24.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .forgejo/workflows | ||
| build-plugins | ||
| checkout-releases | ||
| checkout-repository | ||
| publish-releases | ||
| scripts | ||
| setup-android-toolchain | ||
| setup-bun | ||
| setup-node | ||
| setup-plugin-deps | ||
| templates | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
Valenced Shared Actions
Reusable Forgejo Actions for building Valenced plugins and publishing the result into a shared releases repository.
Nothing in here is specific to one plugin repository. If a repository needs the same CI logic twice, it belongs here instead.
How a release works
push to main
│
├── checkout-repository clone the exact commit that was pushed
├── setup-android-toolchain Temurin JDK, Android SDK, licences
├── setup-bun JS runtime
├── setup-plugin-deps JS dependencies, @valenced/plugin-cli
├── checkout-releases clone shared releases repo into dist/
├── (your repository) anything that has to exist before compilation
├── build-plugins dist/<id>@<version>.zip, dist/index.json
└── publish-releases commit dist/ and push it to releases
dist/ is a clone of the releases repository, so the build output is the published tree. The clone has to be made before the build: the build writes into it, and a checkout afterwards would overwrite fresh artifacts with previously published ones.
Because the artifacts land in a separate repository, one organization's plugins can be served from a single index, and a repository can be renamed or moved without invalidating any download URL.
Actions
| Action | Kind | What it does |
|---|---|---|
checkout-repository |
composite | Clones the commit the run was triggered for, authenticated, with safe.directory set. |
setup-android-toolchain |
composite | Installs a Temurin JDK and Android SDK (platforms, build-tools, licences) and exports JAVA_HOME, ANDROID_HOME, PATH. |
setup-node |
composite | Installs the Node.js runtime for JavaScript actions. |
setup-bun |
composite | Installs Bun and puts it on PATH. |
setup-plugin-deps |
composite | Runs bun install, builds @valenced/plugin-cli if needed. |
checkout-releases |
composite | Clones the shared releases repository into dist/, creating the branch if it does not exist yet. |
build-plugins |
composite | Builds and packages every plugin, generates index.json, verifies the artifacts are readable. |
publish-releases |
node20 | Commits the artifacts in the releases clone, pushes, optionally prunes superseded ones. |
Using them in your own repository
Cross instance references need the full URL:
- uses: https://code.is-your.app/SheWhoReignsSupreme/Valenced-Actions/build-plugins@v1
with:
base-url: https://val.jarviscli.dev
Publishing needs an explicit token passed to checkout-releases and publish-releases:
- uses: https://code.is-your.app/SheWhoReignsSupreme/Valenced-Actions/checkout-releases@v1
with:
token: ${{ secrets.PUBLISH_TOKEN }}
- uses: https://code.is-your.app/SheWhoReignsSupreme/Valenced-Actions/publish-releases@v1
with:
token: ${{ secrets.PUBLISH_TOKEN }}
prune: 'true'