Skip to content

Create Release

Create Release #51

name: Create Release
on:
workflow_dispatch:
inputs:
module_version:
description: 'Terraform module release version (e.g., v1.2.3)'
required: true
type: string
services_version:
description: 'Lock onto Braintrust services version (e.g., v1.2.3). Optional.'
required: false
type: string
jobs:
create-release:
name: Create Release
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
steps:
- name: Generate GitHub App token
uses: actions/create-github-app-token@d72941d797fd3113feb6b93fd0dec494b13a2547 # v1.12.0
id: bot-token
with:
app-id: ${{ secrets.GH_BOT_APP_ID }}
private-key: ${{ secrets.GH_BOT_APP_PRIVATE_KEY }}
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
token: ${{ steps.bot-token.outputs.token }}
ref: main
- name: Install the latest version of uv
uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
with:
role-to-assume: arn:aws:iam::872608195481:role/github_ecr_full_access
aws-region: us-east-1
- name: Update versions of Braintrust Services and API ECS
if: inputs.services_version != ''
run: |
git config --global user.name "Braintrust Bot"
git config --global user.email "braintrust-bot[bot]@users.noreply.github.com"
./lock_versions ${{ inputs.services_version }}
git add .
if git diff --cached --quiet; then
echo "Braintrust Services are already at ${{ inputs.services_version }}; skipping commit."
exit 0
fi
git commit -m "Update Braintrust Services versions to ${{ inputs.services_version }}"
git push origin main
- name: Create GitHub Release
run: |
if [ "${{ inputs.services_version }}" != "" ]; then
cat > release_notes.md << EOF
## Braintrust Services
* Updated Braintrust Services and API ECS to \`${{ inputs.services_version }}\`
EOF
gh release create ${{ inputs.module_version }} \
--draft \
--generate-notes \
--notes-file release_notes.md \
--title "${{ inputs.module_version }}"
else
gh release create ${{ inputs.module_version }} \
--draft \
--generate-notes \
--title "${{ inputs.module_version }}"
fi
env:
GH_TOKEN: ${{ steps.bot-token.outputs.token }}