name: Release on: push: tags: - "v*" workflow_dispatch: permissions: contents: write jobs: release: runs-on: ubuntu-latest # 60 (not 30): mirroring every release asset to Gitee is slow; 30 min cut the # Gitee step off mid-upload on the v1.0.42 release. The Gitee step is now also # idempotent (re-runs only upload missing assets). timeout-minutes: 60 steps: - name: Check out repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: go.mod - name: Install archive tooling run: sudo apt-get update && sudo apt-get install -y zip unzip - name: Multi Profile E2E run: bash scripts/dev/test-multi-profile-e2e.sh - name: Install rcodesign (ad-hoc sign darwin binaries from Linux) run: | set -eu RCS_VERSION="0.27.0" curl -fsSL -o /tmp/rcodesign.tar.gz \ "https://github.com/indygreg/apple-platform-rs/releases/download/apple-codesign%2F${RCS_VERSION}/apple-codesign-${RCS_VERSION}-x86_64-unknown-linux-musl.tar.gz" mkdir -p /tmp/rcodesign tar -xzf /tmp/rcodesign.tar.gz -C /tmp/rcodesign --strip-components=1 sudo install -m 0755 /tmp/rcodesign/rcodesign /usr/local/bin/rcodesign rcodesign --version - name: Run GoReleaser uses: goreleaser/goreleaser-action@v6 with: version: "~> v2" args: release --clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Post-release packaging run: ./scripts/release/post-goreleaser.sh env: DWS_PACKAGE_VERSION: ${{ github.ref_name }} - name: Upload dws-skills.zip to release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh release upload "${{ github.ref_name }}" dist/dws-skills.zip --clobber - name: Sync release to China OSS mirror # 自动同步到国内镜像,供 install.sh 的 DWS_RELEASE_BASE 开关消费。 # 脚本自带门控:未配置 OSS_* secret 时优雅跳过,不影响海外发布。 run: ./scripts/release/sync-to-oss.sh env: VERSION: ${{ github.ref_name }} OSS_ACCESS_KEY_ID: ${{ secrets.OSS_ACCESS_KEY_ID }} OSS_ACCESS_KEY_SECRET: ${{ secrets.OSS_ACCESS_KEY_SECRET }} OSS_ENDPOINT: ${{ secrets.OSS_ENDPOINT }} OSS_BUCKET: ${{ secrets.OSS_BUCKET }} OSS_PREFIX: ${{ secrets.OSS_PREFIX }} - name: Mirror release to Gitee (China) # 把 release 附件(二进制/校验和/skills 包)镜像到 Gitee release,供 install.sh # 的 DWS_GITEE_REPO 开关消费(仓库代码由 Gitee 仓库镜像功能自动同步,附件不在其内)。 # 脚本自带门控:未配置 GITEE_TOKEN / GITEE_REPO 时优雅跳过,不影响海外发布。 run: ./scripts/release/sync-to-gitee.sh env: VERSION: ${{ github.ref_name }} GITEE_TOKEN: ${{ secrets.GITEE_TOKEN }} GITEE_REPO: ${{ secrets.GITEE_REPO }} - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: "20" registry-url: "https://registry.npmjs.org" - name: Publish to npm # 只有官方仓库发 npm;fork(dev 预览)没有 NPM_TOKEN,跳过以免红叉 if: ${{ github.repository_owner == 'DingTalk-Real-AI' }} working-directory: dist/npm/dingtalk-workspace-cli run: npm publish --access public env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}