forked from Gitlink/gitlink-cli
103 lines
3.0 KiB
YAML
103 lines
3.0 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
release:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '1.22'
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
registry-url: 'https://registry.npmjs.org'
|
|
|
|
- name: Build binaries
|
|
run: |
|
|
mkdir -p dist
|
|
VERSION=${GITHUB_REF#refs/tags/v}
|
|
|
|
for pair in "darwin amd64" "darwin arm64" "linux amd64" "linux arm64" "windows amd64" "windows arm64"; do
|
|
GOOS=$(echo $pair | cut -d' ' -f1)
|
|
GOARCH=$(echo $pair | cut -d' ' -f2)
|
|
echo "Building ${GOOS}-${GOARCH}..."
|
|
|
|
EXT=""
|
|
if [ "$GOOS" = "windows" ]; then EXT=".exe"; fi
|
|
GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "-s -w -X 'github.com/gitlink-org/gitlink-cli/cmd.Version=${VERSION}'" -o "dist/gitlink-cli${EXT}" .
|
|
|
|
cd dist
|
|
if [ "$GOOS" = "windows" ]; then
|
|
zip "gitlink-cli_${VERSION}_${GOOS}_${GOARCH}.zip" "gitlink-cli${EXT}"
|
|
else
|
|
tar -czf "gitlink-cli_${VERSION}_${GOOS}_${GOARCH}.tar.gz" "gitlink-cli${EXT}"
|
|
fi
|
|
rm "gitlink-cli${EXT}"
|
|
cd ..
|
|
done
|
|
|
|
- name: Create Release
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
files: |
|
|
dist/*.tar.gz
|
|
dist/*.zip
|
|
generate_release_notes: true
|
|
|
|
- name: Publish npm package
|
|
run: |
|
|
VERSION=${GITHUB_REF#refs/tags/v}
|
|
mkdir -p npm-pkg/bin npm-pkg/scripts npm-pkg/skills
|
|
|
|
cp -r skills/* npm-pkg/skills/
|
|
cp npm/bin/cli.js npm-pkg/bin/
|
|
cp npm/bin/install-skills.js npm-pkg/bin/
|
|
cp npm/scripts/install.js npm-pkg/scripts/
|
|
cp README.md npm-pkg/
|
|
|
|
cat > npm-pkg/package.json << PKGEOF
|
|
{
|
|
"name": "@gitlink-ai/cli",
|
|
"version": "${VERSION}",
|
|
"description": "GitLink CLI — 面向 AI Agent 的 GitLink 命令行工具",
|
|
"main": "bin/cli.js",
|
|
"bin": {
|
|
"gitlink-cli": "./bin/cli.js",
|
|
"gitlink-cli-install-skills": "./bin/install-skills.js"
|
|
},
|
|
"scripts": {
|
|
"postinstall": "node scripts/install.js"
|
|
},
|
|
"files": [
|
|
"bin/",
|
|
"scripts/",
|
|
"skills/",
|
|
"README.md",
|
|
"package.json"
|
|
],
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://www.gitlink.org.cn/Gitlink/gitlink-cli.git"
|
|
},
|
|
"keywords": ["gitlink", "cli", "ai-agent", "skills"],
|
|
"author": "GitLink <support@gitlink.org.cn>",
|
|
"license": "MulanPSL-2.0"
|
|
}
|
|
PKGEOF
|
|
|
|
cd npm-pkg
|
|
npm publish --access public
|
|
env:
|
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|