๐Ÿš€ Build and Publish Serverless Functions with GitHub Actions

Hey :waving_hand:

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 :backhand_index_pointing_right: https://juno.build/blog/serverless-functions-github-actions

I can confirm that it works perfectly โ€” a great addition to the already impressive Juno platform!:rocket::clap: