Skip to content

Commit bbb1344

Browse files
committed
bringing back CI/CD
1 parent 83f99dc commit bbb1344

39 files changed

Lines changed: 2625 additions & 29 deletions

.github/CODEOWNERS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# web + desktop packages
2+
packages/app/ @adamdotdevin
3+
packages/tauri/ @adamdotdevin
4+
packages/desktop/src-tauri/ @brendonovich
5+
packages/desktop/ @adamdotdevin
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Bug report
2+
description: Report an issue that should be fixed
3+
labels: ["bug"]
4+
body:
5+
- type: textarea
6+
id: description
7+
attributes:
8+
label: Description
9+
description: Describe the bug you encountered
10+
placeholder: What happened?
11+
validations:
12+
required: true
13+
14+
- type: input
15+
id: plugins
16+
attributes:
17+
label: Plugins
18+
description: What plugins are you using?
19+
validations:
20+
required: false
21+
22+
- type: input
23+
id: opencode-version
24+
attributes:
25+
label: OpenCode version
26+
description: What version of OpenCode are you using?
27+
validations:
28+
required: false
29+
30+
- type: textarea
31+
id: reproduce
32+
attributes:
33+
label: Steps to reproduce
34+
description: How can we reproduce this issue?
35+
placeholder: |
36+
1.
37+
2.
38+
3.
39+
validations:
40+
required: false
41+
42+
- type: textarea
43+
id: screenshot-or-link
44+
attributes:
45+
label: Screenshot and/or share link
46+
description: Run `/share` to get a share link, or attach a screenshot
47+
placeholder: Paste link or drag and drop screenshot here
48+
validations:
49+
required: false
50+
51+
- type: input
52+
id: os
53+
attributes:
54+
label: Operating System
55+
description: what OS are you using?
56+
placeholder: e.g., macOS 26.0.1, Ubuntu 22.04, Windows 11
57+
validations:
58+
required: false
59+
60+
- type: input
61+
id: terminal
62+
attributes:
63+
label: Terminal
64+
description: what terminal are you using?
65+
placeholder: e.g., iTerm2, Ghostty, Alacritty, Windows Terminal
66+
validations:
67+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: true
2+
contact_links:
3+
- name: 💬 Discord Community
4+
url: https://discord.gg/opencode
5+
about: For quick questions or real-time discussion. Note that issues are searchable and help others with the same question.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: 🚀 Feature Request
2+
description: Suggest an idea, feature, or enhancement
3+
labels: [discussion]
4+
title: "[FEATURE]:"
5+
6+
body:
7+
- type: checkboxes
8+
id: verified
9+
attributes:
10+
label: Feature hasn't been suggested before.
11+
options:
12+
- label: I have verified this feature I'm about to request hasn't been suggested before.
13+
required: true
14+
15+
- type: textarea
16+
attributes:
17+
label: Describe the enhancement you want to request
18+
description: What do you want to change or add? What are the benefits of implementing this? Try to be detailed so we can understand your request better :)
19+
validations:
20+
required: true
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: Question
2+
description: Ask a question
3+
labels: ["question"]
4+
body:
5+
- type: textarea
6+
id: question
7+
attributes:
8+
label: Question
9+
description: What's your question?
10+
validations:
11+
required: true
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: "Setup Bun"
2+
description: "Setup Bun with caching and install dependencies"
3+
runs:
4+
using: "composite"
5+
steps:
6+
- name: Mount Bun Cache
7+
uses: useblacksmith/stickydisk@v1
8+
with:
9+
key: ${{ github.repository }}-bun-cache
10+
path: ~/.bun
11+
12+
- name: Setup Bun
13+
uses: oven-sh/setup-bun@v2
14+
with:
15+
bun-version-file: package.json
16+
17+
- name: Install dependencies
18+
run: bun install
19+
shell: bash
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: "Setup Git Committer"
2+
description: "Create app token and configure git user"
3+
inputs:
4+
opencode-app-id:
5+
description: "OpenCode GitHub App ID"
6+
required: true
7+
opencode-app-secret:
8+
description: "OpenCode GitHub App private key"
9+
required: true
10+
outputs:
11+
token:
12+
description: "GitHub App token"
13+
value: ${{ steps.apptoken.outputs.token }}
14+
app-slug:
15+
description: "GitHub App slug"
16+
value: ${{ steps.apptoken.outputs.app-slug }}
17+
runs:
18+
using: "composite"
19+
steps:
20+
- name: Create app token
21+
id: apptoken
22+
uses: actions/create-github-app-token@v2
23+
with:
24+
app-id: ${{ inputs.opencode-app-id }}
25+
private-key: ${{ inputs.opencode-app-secret }}
26+
owner: ${{ github.repository_owner }}
27+
28+
- name: Configure git user
29+
run: |
30+
slug="${{ steps.apptoken.outputs.app-slug }}"
31+
git config --global user.name "${slug}[bot]"
32+
git config --global user.email "${slug}[bot]@users.noreply.github.com"
33+
shell: bash
34+
35+
- name: Clear checkout auth
36+
run: |
37+
git config --local --unset-all http.https://github.com/.extraheader || true
38+
shell: bash
39+
40+
- name: Configure git remote
41+
run: |
42+
git remote set-url origin https://x-access-token:${{ steps.apptoken.outputs.token }}@github.com/${{ github.repository }}
43+
shell: bash

.github/publish-python-sdk.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#
2+
# This file is intentionally in the wrong dir, will move and add later....
3+
#
4+
5+
# name: publish-python-sdk
6+
7+
# on:
8+
# release:
9+
# types: [published]
10+
# workflow_dispatch:
11+
12+
# jobs:
13+
# publish:
14+
# runs-on: ubuntu-latest
15+
# permissions:
16+
# contents: read
17+
# steps:
18+
# - name: Checkout repository
19+
# uses: actions/checkout@v4
20+
21+
# - name: Setup Bun
22+
# uses: oven-sh/setup-bun@v1
23+
# with:
24+
# bun-version: 1.2.21
25+
26+
# - name: Install dependencies (JS/Bun)
27+
# run: bun install
28+
29+
# - name: Install uv
30+
# shell: bash
31+
# run: curl -LsSf https://astral.sh/uv/install.sh | sh
32+
33+
# - name: Generate Python SDK from OpenAPI (CLI)
34+
# shell: bash
35+
# run: |
36+
# ~/.local/bin/uv run --project packages/sdk/python python packages/sdk/python/scripts/generate.py --source cli
37+
38+
# - name: Sync Python dependencies
39+
# shell: bash
40+
# run: |
41+
# ~/.local/bin/uv sync --dev --project packages/sdk/python
42+
43+
# - name: Set version from release tag
44+
# shell: bash
45+
# run: |
46+
# TAG="${GITHUB_REF_NAME:-}"
47+
# if [ -z "$TAG" ]; then
48+
# TAG="$(git describe --tags --abbrev=0 || echo 0.0.0)"
49+
# fi
50+
# echo "Using version: $TAG"
51+
# VERSION="$TAG" ~/.local/bin/uv run --project packages/sdk/python python - <<'PY'
52+
# import os, re, pathlib
53+
# root = pathlib.Path('packages/sdk/python')
54+
# pt = (root / 'pyproject.toml').read_text()
55+
# version = os.environ.get('VERSION','0.0.0').lstrip('v')
56+
# pt = re.sub(r'(?m)^(version\s*=\s*")[^"]+("\s*)$', f"\\1{version}\\2", pt)
57+
# (root / 'pyproject.toml').write_text(pt)
58+
# # Also update generator config override for consistency
59+
# cfgp = root / 'openapi-python-client.yaml'
60+
# if cfgp.exists():
61+
# cfg = cfgp.read_text()
62+
# cfg = re.sub(r'(?m)^(package_version_override:\s*)\S+$', f"\\1{version}", cfg)
63+
# cfgp.write_text(cfg)
64+
# PY
65+
66+
# - name: Build and publish to PyPI
67+
# env:
68+
# PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
69+
# shell: bash
70+
# run: |
71+
# ~/.local/bin/uv run --project packages/sdk/python python packages/sdk/python/scripts/publish.py

.github/pull_request_template.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
### What does this PR do?
2+
3+
Please provide a description of the issue (if there is one), the changes you made to fix it, and why they work. It is expected that you understand why your changes work and if you do not understand why at least say as much so a maintainer knows how much to value the pr.
4+
5+
**If you paste a large clearly AI generated description here your PR may be IGNORED or CLOSED!**
6+
7+
### How did you verify your code works?

.github/workflows/beta.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: beta
2+
3+
on:
4+
workflow_dispatch:
5+
schedule:
6+
- cron: "0 * * * *"
7+
8+
jobs:
9+
sync:
10+
runs-on: blacksmith-4vcpu-ubuntu-2404
11+
permissions:
12+
contents: write
13+
pull-requests: write
14+
steps:
15+
- name: Checkout repository
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 0
19+
20+
- name: Setup Bun
21+
uses: ./.github/actions/setup-bun
22+
23+
- name: Setup Git Committer
24+
id: setup-git-committer
25+
uses: ./.github/actions/setup-git-committer
26+
with:
27+
opencode-app-id: ${{ vars.OPENCODE_APP_ID }}
28+
opencode-app-secret: ${{ secrets.OPENCODE_APP_SECRET }}
29+
30+
- name: Sync beta branch
31+
env:
32+
GH_TOKEN: ${{ steps.setup-git-committer.outputs.token }}
33+
run: bun script/beta.ts

0 commit comments

Comments
 (0)