8a66c6a463
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>
66 lines
2.2 KiB
YAML
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}/"
|