maris-ai-master / .github /workflows /core-python-deploy.yml
MarisUK's picture
Maris AI model sync
f440f03 verified
name: 🚂 Deploy Core Python
on:
push:
branches: [main]
paths:
- "core-python/**"
- ".github/workflows/core-python-deploy.yml"
workflow_dispatch:
inputs:
github_environment:
description: "GitHub environment ar Railway secrets"
required: false
type: environment
permissions:
contents: read
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
concurrency:
group: railway-core-python-deploy
cancel-in-progress: true
jobs:
deploy:
name: Deploy Core Python to Railway
if: ${{ (github.event_name == 'push' && !vars.RAILWAY_GITHUB_ENVIRONMENT) || (github.event_name == 'workflow_dispatch' && !(inputs.github_environment || vars.RAILWAY_GITHUB_ENVIRONMENT)) }}
runs-on: ubuntu-latest
defaults:
run:
working-directory: core-python
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install Railway CLI
run: npm install -g @railway/cli
- name: Deploy to Railway
env:
RAILWAY_PROJECT_ID: ${{ vars.RAILWAY_CORE_PYTHON_PROJECT_ID || vars.RAILWAY_PROJECT_ID }}
RAILWAY_SERVICE: ${{ vars.RAILWAY_CORE_PYTHON_SERVICE || vars.RAILWAY_SERVICE }}
RAILWAY_TOKEN: ${{ secrets.RAILWAY_CORE_PYTHON_TOKEN || secrets.RAILWAY_TOKEN }}
RAILWAY_ENVIRONMENT: ${{ secrets.RAILWAY_CORE_PYTHON_ENVIRONMENT || secrets.RAILWAY_ENVIRONMENT }}
run: |
if [ -z "$RAILWAY_TOKEN" ]; then
echo "Missing required GitHub secret: RAILWAY_TOKEN"
exit 1
fi
service="${RAILWAY_SERVICE:-maris-core-python}"
args=(up . --detach --path-as-root --service "$service")
if [ -n "$RAILWAY_PROJECT_ID" ]; then
args+=(--project "$RAILWAY_PROJECT_ID")
fi
if [ -n "$RAILWAY_ENVIRONMENT" ]; then
args+=(--environment "$RAILWAY_ENVIRONMENT")
fi
echo "Deploying Railway service: $service"
railway "${args[@]}"
deploy-with-environment:
name: Deploy Core Python to Railway
if: ${{ (github.event_name == 'push' && vars.RAILWAY_GITHUB_ENVIRONMENT) || (github.event_name == 'workflow_dispatch' && (inputs.github_environment || vars.RAILWAY_GITHUB_ENVIRONMENT)) }}
runs-on: ubuntu-latest
environment:
name: ${{ github.event_name == 'workflow_dispatch' && inputs.github_environment || vars.RAILWAY_GITHUB_ENVIRONMENT }}
defaults:
run:
working-directory: core-python
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install Railway CLI
run: npm install -g @railway/cli
- name: Deploy to Railway
env:
RAILWAY_PROJECT_ID: ${{ vars.RAILWAY_CORE_PYTHON_PROJECT_ID || vars.RAILWAY_PROJECT_ID }}
RAILWAY_SERVICE: ${{ vars.RAILWAY_CORE_PYTHON_SERVICE || vars.RAILWAY_SERVICE }}
RAILWAY_TOKEN: ${{ secrets.RAILWAY_CORE_PYTHON_TOKEN || secrets.RAILWAY_TOKEN }}
RAILWAY_ENVIRONMENT: ${{ secrets.RAILWAY_CORE_PYTHON_ENVIRONMENT || secrets.RAILWAY_ENVIRONMENT }}
run: |
if [ -z "$RAILWAY_TOKEN" ]; then
echo "Missing required GitHub secret: RAILWAY_TOKEN"
exit 1
fi
service="${RAILWAY_SERVICE:-maris-core-python}"
args=(up . --detach --path-as-root --service "$service")
if [ -n "$RAILWAY_PROJECT_ID" ]; then
args+=(--project "$RAILWAY_PROJECT_ID")
fi
if [ -n "$RAILWAY_ENVIRONMENT" ]; then
args+=(--environment "$RAILWAY_ENVIRONMENT")
fi
echo "Deploying Railway service: $service"
railway "${args[@]}"