This commit is contained in:
Dax Raad
2025-04-21 20:07:54 -04:00
parent 60d159afc1
commit 54edc4ec31
5 changed files with 148 additions and 19 deletions

50
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,50 @@
name: build
on:
workflow_dispatch:
push:
branches:
- dev
concurrency: ${{ github.workflow }}-${{ github.ref }}
permissions:
contents: write
packages: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: oven-sh/setup-bun@v1
with:
bun-version: latest
- run: |
npm config set //registry.npmjs.org/:_authToken $NODE_AUTH_TOKEN
npm whoami
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- run: git fetch --force --tags
- uses: actions/setup-go@v5
with:
go-version: ">=1.23.2"
- name: Go Mod
run: go mod download
# TODO remove temporary workaround
- run: bun i --frozen-lockfile
- run: git reset --hard
- run: cd platform && bun tsc --noEmit
- run: ./platform/scripts/build
- uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: latest
args: build --snapshot --clean

39
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: release
on:
workflow_dispatch:
push:
branches:
- opencode
tags:
- "*"
concurrency: ${{ github.workflow }}-${{ github.ref }}
permissions:
contents: write
packages: write
jobs:
goreleaser:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- run: git fetch --force --tags
- uses: actions/setup-go@v5
with:
go-version: ">=1.23.2"
- run: go mod download
- uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: latest
args: release --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
AUR_KEY: ${{ secrets.AUR_KEY }}

View File

@@ -1,22 +1,20 @@
version: 2
project_name: sst
project_name: opencode
before:
hooks:
- go mod tidy
- go test ./cmd/... ./pkg/...
builds:
- env:
- CGO_ENABLED=0
goos:
- linux
- darwin
main: ./cmd/sst
main: ./main.go
archives:
- format: tar.gz
# this name template makes the OS and Arch compatible with the results of uname.
name_template: >-
sst-
opencode-
{{- if eq .Os "darwin" }}mac-
{{- else if eq .Os "windows" }}windows-
{{- else if eq .Os "linux" }}linux-{{end}}
@@ -33,20 +31,20 @@ checksum:
snapshot:
name_template: "0.0.0-{{ .Timestamp }}"
aurs:
- homepage: "https://github.com/sst/sst"
- homepage: "https://github.com/opencode-ai/opencode"
description: "Deploy anything"
private_key: "{{ .Env.AUR_KEY }}"
git_url: "ssh://aur@aur.archlinux.org/sst-bin.git"
git_url: "ssh://aur@aur.archlinux.org/opencode.git"
license: "MIT"
package: |-
install -Dm755 ./sst "${pkgdir}/usr/bin/sst"
install -Dm755 ./opencode "${pkgdir}/usr/bin/opencode"
brews:
- repository:
owner: sst
owner: opencode-ai
name: homebrew-tap
nfpms:
- maintainer: sst
description: the sst cli
- maintainer: opencode
description: terminal based agent that can build anything
formats:
- deb
- rpm
@@ -55,14 +53,6 @@ nfpms:
{{- if eq .Os "darwin" }}mac
{{- else }}{{ .Os }}{{ end }}-{{ .Arch }}
# scoop:
# bucket:
# owner: sst
# name: scoop-bucket
# homepage: "https://github.com/sst/ion"
# description: "sst cli"
# license: Apache 2.0
changelog:
sort: asc
filters:

43
scripts/release Executable file
View File

@@ -0,0 +1,43 @@
#!/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
git fetch --force --tags
# Get the latest Git tag
latest_tag=$(git tag --sort=committerdate | grep -E '[0-9]' | tail -1)
# If there is no tag, exit the script
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"
git tag $new_version
git push --tags

7
scripts/snapshot Executable file
View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -e
export DOCKER_PUSH=true
./platform/scripts/build
goreleaser build --clean --snapshot --skip validate
cd sdk/js
bun run release