One config, one CLI, all targets.
Drop a service.yaml in each service directory.
Run pilum deploy. Done.
# Basic service configuration
name: activities-service
provider: gcp
service: cloud-run
region: us-central1
project: romans-dev
registry_name: romans-dev
# Build configuration
build:
language: go
version: "1.23"
cmd: "go build -o ./dist"
env_vars:
CGO_ENABLED: '0'
GOOS: linux
GOARCH: amd64
flags:
ldflags:
- "-s"
- "-w"
# Cloud Run configuration
cloud_run:
min_instances: 0
cpu_throttling: true # Pilum deploys itself
name: pilum
type: homebrew
description: Multi-cloud deployment CLI
license: BSL-1.1
homebrew:
project_url: https://github.com/SID-Technologies/pilum
tap_url: https://github.com/SID-Technologies/Homebrew-Pilum
token_env: GH_TOKEN
build:
language: go
version: "1.23"
output: dist/pilum
env_vars:
CGO_ENABLED: "0"
platforms:
- os: darwin
arch: amd64
- os: darwin
arch: arm64
- os: linux
arch: amd64 # Private npm package
name: my-package
provider: npm
description: My private package
npm:
scope: "@my-org"
registry: https://npm.pkg.github.com
token_env: NODE_AUTH_TOKEN
access: restricted
build:
cmd: "npm run build" Up and running in seconds.
brew tap sid-technologies/pilum && brew install pilum