Hey
I figured this deserved its own thread.
As part of the latest Juno release, I’m excited to share that developers can now build and publish serverless functions directly from GitHub Actions - without giving up control or needing a DevOps degree to make it work!
Since we’re on an ICP-dedicated forum, let me put it this way:
You can now build and publish canisters from GitHub Actions without storing a controller in GitHub or writing a hundred-line YAML file.
And the cherry on top?
Everything is handled through the CLI. So if you prefer local development or don’t want to use GitHub runners, that’s totally fine. No lock-in. No enforced reliance on Web2 infrastructure, that is not the spirit.
Here’s what it looks like in action:
name: Publish Serverless Functions
on:
workflow_dispatch:
push:
branches: [main]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
registry-url: "https://registry.npmjs.org"
- name: Install Dependencies
run: npm ci
- name: Build
uses: junobuild/juno-action@full
with:
args: functions build
- name: Publish
uses: junobuild/juno-action@full
with:
args: functions publish --no-apply
env:
JUNO_TOKEN: ${{ secrets.JUNO_TOKEN }}
Enjoy—and as always, feedback welcome!
Announcement blog post https://juno.build/blog/serverless-functions-github-actions