Files
studio/.gitea/workflows/build-tstudio.yml
T
ozan 8a66c6a463
Build tstudio CLI / build (push) Waiting to run
Build tinqs-git / build (push) Waiting to run
feat: tstudio CLI v0.2.0 — update, token, setup-git + CI pipeline
New commands:
- tstudio update: self-updater from S3
- tstudio token create/list/revoke: API token management
- tstudio setup-git: configures git HTTPS credentials (auto-run on login)

Infrastructure:
- CI pipeline (.gitea/workflows/build-tstudio.yml) — builds all 5 platforms, uploads to S3
- Version bump 0.1.0 → 0.2.0
- Login now auto-configures git credential helper + SSH→HTTPS rewrite

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-22 08:41:36 +01:00

66 lines
2.2 KiB
YAML

name: Build tstudio CLI
on:
push:
branches: [main]
paths:
- 'cmd/tstudio/**'
- '.gitea/workflows/build-tstudio.yml'
jobs:
build:
runs-on: host
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.26.2'
- name: Extract version
id: version
run: |
VERSION=$(grep -oP 'TSTUDIO_VERSION\s*:=\s*\K[0-9.]+' Makefile)
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
echo "tstudio version: $VERSION"
- name: Build all platforms
run: |
VERSION="${{ steps.version.outputs.version }}"
LDFLAGS="-s -w -X main.Version=${VERSION}"
mkdir -p dist/tstudio
echo "Building tstudio $VERSION for all platforms..."
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "$LDFLAGS" -o dist/tstudio/tstudio-windows-amd64.exe ./cmd/tstudio/
echo " windows-amd64 OK"
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags "$LDFLAGS" -o dist/tstudio/tstudio-darwin-arm64 ./cmd/tstudio/
echo " darwin-arm64 OK"
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "$LDFLAGS" -o dist/tstudio/tstudio-darwin-amd64 ./cmd/tstudio/
echo " darwin-amd64 OK"
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "$LDFLAGS" -o dist/tstudio/tstudio-linux-amd64 ./cmd/tstudio/
echo " linux-amd64 OK"
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "$LDFLAGS" -o dist/tstudio/tstudio-linux-arm64 ./cmd/tstudio/
echo " linux-arm64 OK"
ls -lh dist/tstudio/
- name: Upload to S3
run: |
VERSION="${{ steps.version.outputs.version }}"
S3_BASE="s3://tinqs-cli-releases/tstudio"
SHORT_SHA=$(echo "${GITHUB_SHA:-$(git rev-parse --short HEAD)}" | cut -c1-10)
echo "Uploading tstudio $VERSION ($SHORT_SHA) to S3..."
for BIN in dist/tstudio/tstudio-*; do
NAME=$(basename "$BIN")
aws s3 cp "$BIN" "$S3_BASE/latest/$NAME" --region eu-west-1
aws s3 cp "$BIN" "$S3_BASE/v$VERSION/$NAME" --region eu-west-1
done
echo "OK tstudio $VERSION ($SHORT_SHA) → $S3_BASE/{latest,v$VERSION}/"