The auth-wg -> auth-maintainers rename (PR #50) caused the team to be lost from Pulumi state. A previous import attempt used the wrong team ID (14435880). The actual GitHub team ID is 16083315. Every deploy since has failed with: 422 Validation Failed: Name must be unique for this org This adds a one-time import step to reconcile state. The import line should be removed after the next successful deploy.
78 lines
No EOL
2.3 KiB
YAML
78 lines
No EOL
2.3 KiB
YAML
name: Deploy
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
PULUMI_VERSION: "3.197.0"
|
|
|
|
jobs:
|
|
deploy-production:
|
|
name: Deploy to Production
|
|
runs-on: ubuntu-latest
|
|
environment: production
|
|
concurrency:
|
|
group: deploy-production
|
|
cancel-in-progress: false
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '22'
|
|
cache: 'npm'
|
|
|
|
- name: Setup Pulumi
|
|
uses: pulumi/actions@v6
|
|
with:
|
|
pulumi-version: ${{ env.PULUMI_VERSION }}
|
|
|
|
- name: Cache Pulumi plugins
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.pulumi/plugins
|
|
key: pulumi-plugins-${{ hashFiles('Pulumi.yaml') }}
|
|
restore-keys: |
|
|
pulumi-plugins-
|
|
|
|
- name: Install Pulumi packages
|
|
env:
|
|
GITHUB_TOKEN: ${{ github.token }}
|
|
run: pulumi install
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Build
|
|
run: npm run build
|
|
|
|
- name: Authenticate to Google Cloud
|
|
uses: google-github-actions/auth@v2
|
|
with:
|
|
credentials_json: ${{ secrets.GCP_PROD_SERVICE_ACCOUNT_KEY }}
|
|
|
|
- name: Deploy to Production
|
|
env:
|
|
PULUMI_PASSPHRASE: ${{ secrets.PULUMI_PROD_PASSPHRASE }}
|
|
GITHUB_TOKEN: ${{ secrets.PULUMI_GITHUB_TOKEN }}
|
|
DISCORD_BOT_TOKEN: ${{ secrets.DISCORD_BOT_TOKEN }}
|
|
DISCORD_GUILD_ID: ${{ secrets.DISCORD_GUILD_ID }}
|
|
run: |
|
|
echo "$PULUMI_PASSPHRASE" > passphrase.prod.txt
|
|
export PULUMI_CONFIG_PASSPHRASE_FILE=passphrase.prod.txt
|
|
pulumi login gs://mcp-access-prod-pulumi-state
|
|
pulumi config set discord:guildId "$DISCORD_GUILD_ID" --stack prod
|
|
pulumi config set discord:botToken "$DISCORD_BOT_TOKEN" --secret --stack prod
|
|
# One-time import: auth-maintainers team exists on GitHub (ID 16083315)
|
|
# but was lost from Pulumi state during the auth-wg -> auth-maintainers rename.
|
|
# Remove this import line after the next successful deploy.
|
|
pulumi import github:index/team:Team auth-maintainers 16083315 --stack prod --yes || true
|
|
make up |