Menu
Public repository / d8aa29121486f4b02d0016888d94fa66cac36ffe
AkurAI-EC2 / .github/workflows/deploy.yml
Latest change d53c783111d245c25ff77026db93902e2d4a155a - feat(ci): reusable deploy workflow + self-hosted runner provisioning script by Ólafur Búi Ólafsson
name: AkurAI deploy (reusable)
# Shared release/deploy workflow for the AkurAI fleet. Every app repo calls
# this via `uses: olibuijr/akurai-ec2/.github/workflows/deploy.yml@main`
# instead of re-implementing CI — the actual deploy logic lives in each
# repo's own ./deploy.sh (thin akurai-ec2 shim, a wrapper, or fully bespoke;
# this workflow doesn't care which). Runs on a self-hosted runner on titan
# because deploy needs the SSH key to the EC2 box, the AkurAI secrets vault,
# and the Rust/Bun toolchains already installed there — none of which should
# ever be copied into GitHub-hosted runner secrets.
on:
workflow_call:
inputs:
mode:
description: "publish (no version bump, ship current HEAD) or release (bump+tag)"
type: string
default: publish
bump:
description: "patch|minor|major — only used when mode=release"
type: string
default: patch
deploy_args:
description: "override: exact args passed to ./deploy.sh (advanced/bespoke scripts)"
type: string
default: ""
jobs:
deploy:
runs-on: [self-hosted, titan, akurai-deploy]
timeout-minutes: 45
concurrency:
group: ${{ github.repository }}-deploy
cancel-in-progress: false
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Run deploy.sh
run: |
set -euo pipefail
if [ -n "${{ inputs.deploy_args }}" ]; then
exec ./deploy.sh ${{ inputs.deploy_args }}
elif [ "${{ inputs.mode }}" = "release" ]; then
exec ./deploy.sh ${{ inputs.bump }}
else
exec ./deploy.sh ec2
fi