Build and deploy services with Pilum — the cloud-agnostic deployment CLI.
name: Deploy
on:
release:
types: [published]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: SID-Technologies/pilum-action@v1
with:
tag: ${{ github.event.release.tag_name }}
env:
# Add credentials for your provider
GOOGLE_APPLICATION_CREDENTIALS: ${{ secrets.GCP_SA_KEY }}- uses: SID-Technologies/pilum-action@v1
with:
command: deploy
tag: v1.0.0
services: api-gateway worker-service- uses: SID-Technologies/pilum-action@v1
with:
command: publish
tag: ${{ github.sha }}name: Validate
on: [pull_request]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: SID-Technologies/pilum-action@v1
with:
command: check- uses: SID-Technologies/pilum-action@v1
with:
command: dry-run
tag: ${{ github.event.release.tag_name }}- uses: SID-Technologies/pilum-action@v1
with:
command: deploy
tag: ${{ github.event.release.tag_name }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}- uses: SID-Technologies/pilum-action@v1
with:
command: deploy
tag: v1.0.0
working-directory: ./services- uses: SID-Technologies/pilum-action@v1
with:
version: v0.3.1
command: deploy
tag: v1.0.0- uses: SID-Technologies/pilum-action@v1
with:
command: deploy
tag: v1.0.0
flags: --only-tags=deploy --debug --no-deps| Input | Required | Default | Description |
|---|---|---|---|
version |
No | latest |
Pilum version to install |
command |
No | deploy |
Pilum command (deploy, build, publish, push, check, dry-run, list) |
tag |
No | Version tag passed to --tag |
|
services |
No | Space-separated list of services to target | |
working-directory |
No | . |
Directory to run Pilum from |
flags |
No | Additional CLI flags |
Pass cloud provider credentials and tokens as environment variables:
env:
# GCP
GOOGLE_APPLICATION_CREDENTIALS: ${{ secrets.GCP_SA_KEY }}
# AWS
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# npm / GitHub Packages
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
# Homebrew
GH_TOKEN: ${{ secrets.GH_TOKEN }}The action automatically detects the runner's OS and architecture:
| Runner | OS | Arch |
|---|---|---|
ubuntu-latest |
linux | amd64 |
ubuntu-24.04-arm |
linux | arm64 |
macos-latest |
darwin | arm64 |
macos-13 |
darwin | amd64 |
Apache 2.0 — See LICENSE.