mirror of
https://github.com/sst/opencode.git
synced 2025-07-23 07:45:00 +00:00
wip: github actions
This commit is contained in:
parent
800bee2722
commit
933d50e25a
6 changed files with 78 additions and 68 deletions
10
.github/workflows/publish-github-action.yml
vendored
10
.github/workflows/publish-github-action.yml
vendored
|
@ -2,6 +2,9 @@ name: publish-github-action
|
|||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- "github-v*.*.*"
|
||||
|
||||
concurrency: ${{ github.workflow }}-${{ github.ref }}
|
||||
|
||||
|
@ -18,12 +21,9 @@ jobs:
|
|||
|
||||
- run: git fetch --force --tags
|
||||
|
||||
- uses: oven-sh/setup-bun@v2
|
||||
with:
|
||||
bun-version: 1.2.17
|
||||
|
||||
- name: Publish
|
||||
run: |
|
||||
git config --global user.email "opencode@sst.dev"
|
||||
git config --global user.name "opencode"
|
||||
./scripts/publish-github-action.ts
|
||||
./scripts/publish
|
||||
working-directory: ./sdks/github
|
||||
|
|
|
@ -84,40 +84,22 @@ export const InstallGithubCommand = cmd({
|
|||
let provider = await prompts.select({
|
||||
message: "Select provider",
|
||||
maxItems: 8,
|
||||
options: [
|
||||
...pipe(
|
||||
providers,
|
||||
values(),
|
||||
sortBy(
|
||||
(x) => priority[x.id] ?? 99,
|
||||
(x) => x.name ?? x.id,
|
||||
),
|
||||
map((x) => ({
|
||||
label: x.name,
|
||||
value: x.id,
|
||||
hint: priority[x.id] === 0 ? "recommended" : undefined,
|
||||
})),
|
||||
options: pipe(
|
||||
providers,
|
||||
values(),
|
||||
sortBy(
|
||||
(x) => priority[x.id] ?? 99,
|
||||
(x) => x.name ?? x.id,
|
||||
),
|
||||
{
|
||||
value: "other",
|
||||
label: "Other",
|
||||
},
|
||||
],
|
||||
map((x) => ({
|
||||
label: x.name,
|
||||
value: x.id,
|
||||
hint: priority[x.id] === 0 ? "recommended" : undefined,
|
||||
})),
|
||||
),
|
||||
})
|
||||
|
||||
if (prompts.isCancel(provider)) throw new UI.CancelledError()
|
||||
if (provider === "other") {
|
||||
provider = await prompts.text({
|
||||
message: "Enter provider id",
|
||||
validate: (x) => (x.match(/^[a-z-]+$/) ? undefined : "a-z and hyphens only"),
|
||||
})
|
||||
if (prompts.isCancel(provider)) throw new UI.CancelledError()
|
||||
provider = provider.replace(/^@ai-sdk\//, "")
|
||||
if (prompts.isCancel(provider)) throw new UI.CancelledError()
|
||||
prompts.log.warn(
|
||||
`This only stores a credential for ${provider} - you will need configure it in opencode.json, check the docs for examples.`,
|
||||
)
|
||||
}
|
||||
|
||||
return provider
|
||||
}
|
||||
|
@ -211,7 +193,11 @@ on:
|
|||
|
||||
jobs:
|
||||
opencode:
|
||||
if: startsWith(github.event.comment.body, 'hey opencode')
|
||||
if: |
|
||||
startsWith(github.event.comment.body, 'opencode') ||
|
||||
startsWith(github.event.comment.body, 'hi opencode') ||
|
||||
startsWith(github.event.comment.body, 'hey opencode') ||
|
||||
contains(github.event.comment.body, '@opencode-agent')
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
id-token: write
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
#!/usr/bin/env bun
|
||||
|
||||
import { $ } from "bun"
|
||||
|
||||
try {
|
||||
await $`git tag -d github-v1`
|
||||
await $`git push origin :refs/tags/github-v1`
|
||||
} catch (e: any) {
|
||||
if (e instanceof $.ShellError && e.stderr.toString().match(/tag \S+ not found/)) {
|
||||
console.log("tag not found, continuing...")
|
||||
} else {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
await $`git tag -a github-v1 -m "Update github-v1 to latest"`
|
||||
await $`git push origin github-v1`
|
15
sdks/github/script/publish
Executable file
15
sdks/github/script/publish
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Get the latest Git tag
|
||||
latest_tag=$(git tag --sort=committerdate | grep -E '^github-v[0-9]+\.[0-9]+\.[0-9]+$' | tail -1)
|
||||
if [ -z "$latest_tag" ]; then
|
||||
echo "No tags found"
|
||||
exit 1
|
||||
fi
|
||||
echo "Latest tag: $latest_tag"
|
||||
|
||||
# Update github-v1 to latest
|
||||
git tag -d github-v1
|
||||
git push origin :refs/tags/github-v1
|
||||
git tag -a github-v1 $latest_tag -m "Update github-v1 to $latest_tag"
|
||||
git push origin github-v1
|
41
sdks/github/script/release
Executable file
41
sdks/github/script/release
Executable file
|
@ -0,0 +1,41 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Parse command line arguments
|
||||
minor=false
|
||||
while [ "$#" -gt 0 ]; do
|
||||
case "$1" in
|
||||
--minor) minor=true; shift 1;;
|
||||
*) echo "Unknown parameter: $1"; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Get the latest Git tag
|
||||
git fetch --force --tags
|
||||
latest_tag=$(git tag --sort=committerdate | grep -E '^github-v[0-9]+\.[0-9]+\.[0-9]+$' | tail -1)
|
||||
if [ -z "$latest_tag" ]; then
|
||||
echo "No tags found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Latest tag: $latest_tag"
|
||||
|
||||
# Split the tag into major, minor, and patch numbers
|
||||
IFS='.' read -ra VERSION <<< "$latest_tag"
|
||||
|
||||
if [ "$minor" = true ]; then
|
||||
# Increment the minor version and reset patch to 0
|
||||
minor_number=${VERSION[1]}
|
||||
let "minor_number++"
|
||||
new_version="${VERSION[0]}.$minor_number.0"
|
||||
else
|
||||
# Increment the patch version
|
||||
patch_number=${VERSION[2]}
|
||||
let "patch_number++"
|
||||
new_version="${VERSION[0]}.${VERSION[1]}.$patch_number"
|
||||
fi
|
||||
|
||||
echo "New version: $new_version"
|
||||
|
||||
# Tag
|
||||
git tag $new_version
|
||||
git push --tags
|
|
@ -1,16 +0,0 @@
|
|||
#!/usr/bin/env bun
|
||||
|
||||
import { $ } from "bun"
|
||||
|
||||
try {
|
||||
await $`git tag -d github-v1`
|
||||
await $`git push origin :refs/tags/github-v1`
|
||||
} catch (e: any) {
|
||||
if (e instanceof $.ShellError && e.stderr.toString().match(/tag \S+ not found/)) {
|
||||
console.log("tag not found, continuing...")
|
||||
} else {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
await $`git tag -a github-v1 -m "Update github-v1 to latest"`
|
||||
await $`git push origin github-v1`
|
Loading…
Add table
Add a link
Reference in a new issue