Skip to content

Commit 9da996c

Browse files
ci: add workflow stubs to enable workflow_dispatch on feature branches (#142)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
1 parent 9f75c79 commit 9da996c

7 files changed

Lines changed: 196 additions & 0 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Stub: Speakeasy SDK Generation Workflow
2+
#
3+
# This is a minimal placeholder to register the workflow_dispatch trigger on main.
4+
# The full implementation will arrive in a follow-up PR.
5+
# Without this stub on main, workflow_dispatch and /generate slash commands
6+
# cannot target feature branches.
7+
8+
name: Generate SDK
9+
10+
"on":
11+
workflow_dispatch:
12+
inputs:
13+
dry_run:
14+
description: Validate generation without creating a PR
15+
type: boolean
16+
default: false
17+
pr:
18+
description: 'PR number (if set, pushes results to the PR branch instead of creating a new PR)'
19+
type: string
20+
required: false
21+
comment-id:
22+
description: 'Comment ID (for slash command triggers)'
23+
type: string
24+
required: false
25+
workflow_call:
26+
inputs:
27+
dry_run:
28+
description: Validate generation without creating a PR
29+
type: boolean
30+
default: false
31+
32+
jobs:
33+
stub:
34+
name: Stub (placeholder)
35+
runs-on: ubuntu-latest
36+
steps:
37+
- name: Placeholder
38+
run: echo "This is a stub workflow. The full implementation will arrive in a follow-up PR."
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Stub: Pre-Release Workflow
2+
#
3+
# Minimal placeholder to register the workflow_dispatch trigger on main.
4+
# Full implementation arrives in a follow-up PR.
5+
6+
name: Pre-Release
7+
8+
on:
9+
workflow_dispatch:
10+
inputs:
11+
version:
12+
description: 'Pre-release version (e.g. 1.0.0rc1)'
13+
required: true
14+
type: string
15+
ref:
16+
description: 'Branch, tag, or commit SHA to build from'
17+
required: false
18+
default: 'main'
19+
type: string
20+
pr:
21+
description: 'PR number (for slash command triggers)'
22+
required: false
23+
type: string
24+
comment-id:
25+
description: 'Comment ID (for slash command triggers)'
26+
required: false
27+
type: string
28+
29+
jobs:
30+
stub:
31+
name: Stub (placeholder)
32+
if: false
33+
runs-on: ubuntu-latest
34+
steps:
35+
- run: echo "stub"

.github/workflows/publish.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Stub: Publish to PyPI Workflow
2+
#
3+
# Minimal placeholder to register the release trigger on main.
4+
# Full implementation arrives in a follow-up PR.
5+
6+
name: Publish to PyPI
7+
8+
on:
9+
release:
10+
types: [published]
11+
12+
jobs:
13+
stub:
14+
name: Stub (placeholder)
15+
if: false
16+
runs-on: ubuntu-latest
17+
steps:
18+
- run: echo "stub"
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Stub: Release Drafter Workflow
2+
#
3+
# Minimal placeholder to register the workflow_dispatch trigger on main.
4+
# Full implementation arrives in a follow-up PR.
5+
6+
name: Release Drafter
7+
8+
on:
9+
workflow_dispatch: {}
10+
push:
11+
branches:
12+
- main
13+
14+
jobs:
15+
stub:
16+
name: Stub (placeholder)
17+
if: false
18+
runs-on: ubuntu-latest
19+
steps:
20+
- run: echo "stub"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Stub: Validate PR Title Workflow
2+
#
3+
# Minimal placeholder to register the pull_request trigger on main.
4+
# Full implementation arrives in a follow-up PR.
5+
6+
name: Validate PR Title
7+
8+
on:
9+
pull_request:
10+
types: [opened, edited, synchronize]
11+
12+
jobs:
13+
stub:
14+
name: Stub (placeholder)
15+
if: false
16+
runs-on: ubuntu-latest
17+
steps:
18+
- run: echo "stub"
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Slash Command Dispatch
2+
3+
on:
4+
issue_comment:
5+
types: [created]
6+
7+
permissions:
8+
contents: read
9+
issues: write
10+
pull-requests: write
11+
actions: write
12+
13+
jobs:
14+
slash-command-dispatch:
15+
name: Slash Command Dispatch
16+
# Only allow slash commands on pull requests (not on issues)
17+
if: ${{ github.event.issue.pull_request }}
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: Authenticate as GitHub App
21+
uses: actions/create-github-app-token@v3
22+
id: get-app-token
23+
with:
24+
app-id: ${{ secrets.OCTAVIA_BOT_APP_ID }}
25+
private-key: ${{ secrets.OCTAVIA_BOT_PRIVATE_KEY }}
26+
27+
- name: Slash Command Dispatch
28+
id: dispatch
29+
uses: peter-evans/slash-command-dispatch@9bdcd7914ec1b75590b790b844aa3b8eee7c683a # v5.0.2
30+
with:
31+
repository: ${{ github.repository }}
32+
token: ${{ steps.get-app-token.outputs.token }}
33+
dispatch-type: workflow
34+
issue-type: pull-request
35+
commands: |
36+
generate
37+
static-args: |
38+
pr=${{ github.event.issue.number }}
39+
comment-id=${{ github.event.comment.id }}
40+
# Only run for users with 'write' permission on the main repository
41+
permission: write
42+
43+
- name: Edit comment with error message
44+
if: steps.dispatch.outputs.error-message
45+
uses: peter-evans/create-or-update-comment@v5
46+
with:
47+
comment-id: ${{ github.event.comment.id }}
48+
body: |
49+
> Error: ${{ steps.dispatch.outputs.error-message }}

.github/workflows/test-full.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Stub: Test (Full) Workflow
2+
#
3+
# Minimal placeholder to register the workflow_dispatch trigger on main.
4+
# Full implementation arrives in a follow-up PR.
5+
6+
name: Test (Full)
7+
8+
on:
9+
pull_request:
10+
workflow_dispatch:
11+
12+
jobs:
13+
stub:
14+
name: Stub (placeholder)
15+
if: false
16+
runs-on: ubuntu-latest
17+
steps:
18+
- run: echo "stub"

0 commit comments

Comments
 (0)