Skip to content

v0.6.0

v0.6.0 #54

Workflow file for this run

name: Release分发
on:
release:
types: [created] # 表示在创建新的 Release 时触发
jobs:
changelog:
name: Generate Changelog
runs-on: ubuntu-latest
outputs:
release_body: ${{ steps.git-cliff.outputs.content }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate a changelog
uses: orhun/git-cliff-action@v2
id: git-cliff
with:
config: git-cliff/cliff.toml
args: -vv --latest --strip 'footer'
env:
OUTPUT: CHANGES.md
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
body: ${{ steps.git-cliff.outputs.content }}
token: ${{ secrets.GITHUB_TOKEN }}
env:
GITHUB_REPOSITORY: ${{ github.repository }}
golangci-latest:
name: Go Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.21'
- run: go mod download
# 进行代码检查
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.55.2
skip-pkg-cache: true
build-test:
runs-on: ubuntu-latest
needs: golangci-latest
strategy:
matrix:
go: [ '1.20', '1.21','stable' ]
name: Go ${{ matrix.go }} Build Test
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
check-latest: true
- name: Get Git Commit Log
id: git-commit-log
run: echo "GIT_COMMIT_LOG=${{ github.sha }}" >> $GITHUB_ENV
- name: Get current time
uses: josStorer/get-current-time@v2
id: current-time
with:
format: YYYYMMDD-HH
utcOffset: "+08:00"
- name: Get Build Time
id: build-time
run: echo "BUILD_TIME=${{ steps.current-time.outputs.readableTime }}" >> $GITHUB_ENV
- name: Print Environment Variables
run: |
echo "${{env.GIT_COMMIT_LOG}}"
echo "${{env.BUILD_TIME}}"
- name: Go Build Binary - Windows amd64
run: |
GOOS=windows GOARCH=amd64 go build
pwd
# go-test:
# runs-on: windows-latest
# needs: [changelog, build-test]
# environment: production
# name: Go Test
# steps:
# - uses: actions/checkout@v4
# - name: Set up Go
# uses: actions/setup-go@v5
# with:
# go-version: '1.21'
# cache: false
#
# - name: Go Test
# run: |
# go test -v ./g_test -tag="@test" -baseurl="${{ secrets.BACKEND_URL }}"
# pwd
build-go-binary:
runs-on: ubuntu-latest
needs: build-test
environment: production
name: Go Build Binary
env:
GOOS: windows
GOARCH: amd64
steps:
- name: Get version
id: get_version
run: echo "CURRENT_VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
- uses: actions/checkout@v4
- uses: hamster1963/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }} # 一个默认的变量,用来实现往 Release 中添加文件
goos: ${{ env.GOOS }}
goarch: ${{ env.GOARCH }}
goversion: 1.21.1 # 可以指定编译使用的 Golang 版本
ldflags: -X "main.GitTag=${{ env.CURRENT_VERSION }}" -X "main.BackendBaseUrl=${{ secrets.BACKEND_URL }}" # 通过 ldflags 注入版本号
pre_command: export CGO_ENABLED=0 && export GODEBUG=http2client=0
overwrite: true
asset_name: "speed_cron_${{ env.GOOS }}_${{ env.GOARCH }}" # 可以指定二进制文件的名称
compress_assets: OFF # 可以指定是否压缩二进制文件