-
Notifications
You must be signed in to change notification settings - Fork 60
101 lines (86 loc) · 3.28 KB
/
Copy pathcodex-update.yml
File metadata and controls
101 lines (86 loc) · 3.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
name: Codex Update
on:
schedule:
- cron: '0 5 * * *'
workflow_dispatch:
env:
CODEX_PACKAGE: '@openai/codex'
jobs:
check:
runs-on: ubuntu-latest
outputs:
should_update: ${{ steps.check.outputs.should_update }}
version: ${{ steps.check.outputs.version }}
branch: ${{ steps.check.outputs.branch }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check if update is required
id: check
run: |
if ! npm outdated ${{ env.CODEX_PACKAGE }}; then
echo "Package is up to date"
exit 0
fi
LATEST=$(npm view ${{ env.CODEX_PACKAGE }} version)
BRANCH="codex-update/$LATEST"
if git ls-remote --exit-code --heads origin "refs/heads/$BRANCH" >/dev/null 2>&1; then
echo "Branch $BRANCH already exists"
exit 0
fi
echo "version=$LATEST" >> $GITHUB_OUTPUT
echo "branch=$BRANCH" >> $GITHUB_OUTPUT
echo "should_update=true" >> $GITHUB_OUTPUT
update:
needs: check
if: needs.check.outputs.should_update == 'true'
runs-on: ubuntu-latest
env:
BRANCH: ${{ needs.check.outputs.branch }}
VERSION: ${{ needs.check.outputs.version }}
steps:
- uses: actions/checkout@v4
- name: Configure git user and prepare branch
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git checkout -b "${{ env.BRANCH }}"
- name: Install new version of package and commit
run: |
npm install ${{ env.CODEX_PACKAGE }}@${{ env.VERSION }}
npm run generate-types
git add package.json package-lock.json src/app-server
git commit -m "Update codex to ${{ env.VERSION }}"
- name: Finalize update with Codex
id: codex-finalize
uses: openai/codex-action@v1
with:
openai-api-key: ${{ secrets.OPENAI_API_KEY }}
codex-version: ${{ env.VERSION }}
codex-args: '-c shell_environment_policy.inherit=none'
output-file: pr-body.md
prompt: >
Finalize the update using codex-update-compat skill.
Commit the changes, the message should mention that types or/and tests after the update were fixed.
Do not include validation run details, list of commits or any hyperlinks to the final message,
mention previously failed tests with failure reasons, also what you changed and why.
- name: Push branch updates
run: |
git push origin "${{ env.BRANCH }}"
- name: Generate GitHub App token
id: app-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ vars.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- name: Create PR
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
run: |
echo -e "[What's new](https://github.com/openai/codex/releases/tag/rust-v${{ env.VERSION }})\n\n$(cat pr-body.md 2>/dev/null || true)" > pr-body.md
gh pr create \
--base main \
--title "Update codex to ${{ env.VERSION }}" \
--body-file pr-body.md \
--label "codex-update"