Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Juno Action

This GitHub Action for Juno enables arbitrary actions with the command-line client.

Authentication

The action supports two authentication methods:

1. GitHub OIDC (Recommended)

Authenticate automatically using GitHub's OpenID Connect tokens. No secrets required!

Requirements:

  • Add id-token: write permission to your workflow
  • Configure your Satellite to support automation

Example configuration:

import{defineConfig}from"@junobuild/config";exportdefaultdefineConfig({satellite: {ids: {development: "<DEV_SATELLITE_ID>",production: "<PROD_SATELLITE_ID>"},automation: {github: {repositories: [{owner: "your-org",// or user name, e.g. peterpeterparkername: "your-repo",refs: []// Optional: restrict to specific refs, e.g. ["refs/heads/main"]}]}}}});

Workflow example:

name: Deploy to Junoon:
workflow_dispatch:
push:
branches: [main]jobs:
deploy:
runs-on: ubuntu-latestpermissions:
id-token: write # Required for GitHub OIDCcontents: readsteps:
- name: Check out the repouses: actions/checkout@v4
- uses: actions/setup-node@v4with:
node-version: 24registry-url: "https://registry.npmjs.org"
- name: Install Dependenciesrun: npm ci
- name: Deploy to Junouses: junobuild/juno-actionwith:
args: hosting deploy

2. Token Authentication (Legacy)

Use a manually generated token from Juno's console. Prefer an access key with "Read-write" permission rather than administrator.

name: Deploy to Junoon:
workflow_dispatch:
push:
branches: [main]jobs:
deploy:
runs-on: ubuntu-lateststeps:
- name: Check out the repouses: actions/checkout@v4
- uses: actions/setup-node@v4with:
node-version: 24registry-url: "https://registry.npmjs.org"
- name: Install Dependenciesrun: npm ci
- name: Deploy to Junouses: junobuild/juno-actionwith:
args: hosting deployenv:
JUNO_TOKEN: ${{ secrets.JUNO_TOKEN }}

Configuration

  • PROJECT_PATH - Optional. The path to the folder containing juno.config.ts|js|json if it doesn't exist at the root of your repository. e.g. ./my-app.

Available Action Versions

You can choose from several action variants depending on your needs:

Version tagDescription
@main or no tagDefaults to the slim image
@slimExplicitly use the slim image
@fullUse the full image
@vX.Y.ZSpecific version tag for slim
@vX.Y.Z-slimVersioned slim image
@vX.Y.Z-fullVersioned full image

The slim image does not include the Rust toolchain or tools required to build serverless functions. It is smaller in size and suitable for most CLI use cases.

The full image includes the Rust toolchain and all necessary tools for building serverless functions, resulting in a larger image size.

License

MIT © David Dal Busco

Releases

Used by

Contributors

Languages