修复打包的配置文件不正确的问题 #4
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' # 当推送 v 开头的 tag 时触发,例如 v1.0.0 | |
| permissions: | |
| contents: write | |
| jobs: | |
| build-and-release: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 检出代码 | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 # 获取完整的 git 历史,用于版本号 | |
| - name: 设置 Go 环境 | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25' | |
| - name: 设置 Node.js 环境 | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24' | |
| - name: 安装 Yarn | |
| run: npm install -g yarn | |
| - name: 构建前端 | |
| run: | | |
| cd web | |
| yarn install | |
| yarn build | |
| cd .. | |
| - name: 安装 UPX | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y upx | |
| - name: 构建服务端二进制 | |
| run: | | |
| mkdir -p bin | |
| VERSION=${GITHUB_REF#refs/tags/} | |
| LDFLAGS="-s -w -X main.Version=${VERSION}" | |
| CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="${LDFLAGS}" -o bin/uart_sms_forwarder-linux-amd64 cmd/serv/main.go | |
| upx bin/uart_sms_forwarder-linux-amd64 | |
| ls -lh bin/ | |
| - name: 准备发布包 | |
| run: | | |
| VERSION=${GITHUB_REF#refs/tags/} | |
| RELEASE_DIR="uart_sms_forwarder-linux-amd64" | |
| # 创建发布目录 | |
| mkdir -p ${RELEASE_DIR} | |
| # 复制二进制文件 | |
| cp bin/uart_sms_forwarder-linux-amd64 ${RELEASE_DIR}/uart_sms_forwarder | |
| # 复制配置文件示例并重命名为 config.yaml | |
| cp config.example.yaml ${RELEASE_DIR}/config.yaml | |
| # 打包为 tar.gz | |
| tar -czf ${RELEASE_DIR}.tar.gz ${RELEASE_DIR} | |
| # 显示打包结果 | |
| ls -lh ${RELEASE_DIR}.tar.gz | |
| - name: 创建 Release 并上传文件 | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: | | |
| uart_sms_forwarder-*.tar.gz | |
| draft: false | |
| prerelease: false | |
| generate_release_notes: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |