优化 action #19
This file contains 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: Build | |
on: | |
push: | |
branches: | |
- main | |
workflow_dispatch: | |
jobs: | |
Build: | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- | |
name: Private Actions Checkout | |
uses: actions/checkout@v3 | |
- | |
name: Get Data | |
id: time | |
run: echo "dir=$(date +'%Y-%m-%d/%H:%M:%S')" >> $GITHUB_OUTPUT | |
- | |
name: Get commitId | |
id: commitId | |
run: echo "dir=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT | |
- | |
name: Get latest version | |
id: current-version | |
uses: cardinalby/git-get-release-action@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.TOKEN_GITHUB }} | |
with: | |
latest: true | |
prerelease: false | |
- | |
name: Generate next version | |
uses: HardNorth/github-version-generate@v1.3.0 | |
with: | |
version: ${{ steps.current-version.outputs.tag_name }} | |
next-version-increment-patch: true | |
- | |
name: Build with xgo | |
uses: crazy-max/ghaction-xgo@v2 | |
with: | |
xgo_version: latest | |
go_version: ${{ matrix.go_version }} | |
dest: bin | |
prefix: bitiful | |
targets: android/386, android/amd64, android/arm, android/arm64, darwin/amd64, darwin/arm64, freebsd/386, freebsd/amd64, freebsd/arm, freebsd/arm64, linux/386, linux/amd64, linux/arm, linux/arm64, linux/mips, linux/mips64, linux/mips64le, linux/mipsle, linux/ppc64, linux/ppc64le, linux/riscv64, linux/s390x, netbsd/386, netbsd/amd64, netbsd/arm, netbsd/arm64, openbsd/386, openbsd/amd64, openbsd/arm, openbsd/arm64, openbsd/mips64, windows/386, windows/amd64, windows/arm, windows/arm64 | |
v: false | |
x: true | |
race: false | |
ldflags: -s -w -X main.buildTime=${{ steps.time.outputs.dir }} -X main.versionData=${{ github.event.inputs.RELEASE_NAME }} -X main.commitId=${{ steps.commitId.outputs.dir }} -X main.author=XRSec | |
buildmode: default | |
- | |
name: Delete old Releases | |
uses: dev-drprasad/delete-older-releases@v0.2.0 | |
with: | |
repo: ${{ github.repository }} | |
keep_latest: 3 | |
delete_tag_pattern: "" | |
env: | |
GITHUB_TOKEN: ${{ secrets.TOKEN_GITHUB }} | |
- | |
name: Make release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: "bin/**" | |
body_path: docs/README.md | |
name: ${{ env.NEXT_VERSION }} | |
tag_name: ${{ env.NEXT_VERSION }} | |
draft: false | |
env: | |
GITHUB_TOKEN: ${{ secrets.TOKEN_GITHUB }} | |
- | |
name: Get Data | |
id: getDingData | |
run: | | |
set -ex | |
# 输出仓库名 | |
REPOSITORY="${{GITHUB.REPOSITORY}}" | |
echo "REPOSITORY=${REPOSITORY#*/}" >> $GITHUB_OUTPUT | |
# 获取用户仓库信息 | |
# RESPONSE="$(curl -sLm 10 https://api.github.com/repos/${{ GITHUB.REPOSITORY }})" | |
# 建议填写自己的 TOKEN | |
RESPONSE="$(curl -sLm 10 https://api.github.com/repos/${{ GITHUB.REPOSITORY }} -H "Authorization: token ${{ SECRETS.TOKEN_GITHUB }}")" | |
# 获取 用户仓库 设置的 描述,如果为空,可能是没有使用 TOKEN | |
DESCRIPTION="$(jq -r .description <(echo ${RESPONSE}))" | |
echo "DESCRIPTION=${DESCRIPTION}" >> $GITHUB_OUTPUT | |
# 获取 用户仓库 设置的 URL, 如果没有就输出 Github 地址 | |
URL="$(jq -r .homepage <(echo ${RESPONSE}))" | |
if [[ "${URL}" == "null" || "${URL}" == "" ]]; then | |
echo "URL=${{ GITHUB.SERVER_URL }}/${{ GITHUB.REPOSITORY }}" >> $GITHUB_OUTPUT | |
else | |
echo "URL=${URL}" >> $GITHUB_OUTPUT | |
fi | |
- | |
name: Send dingding notify | |
uses: zcong1993/actions-ding@master | |
with: | |
dingToken: ${{ SECRETS.DING_TOKEN }} | |
secret: ${{ SECRETS.DING_SECRET }} | |
body: | | |
{ | |
"msgtype": "link", | |
"link": { | |
"text": "${{ steps.getDingData.outputs.DESCRIPTION }}", | |
"title": "${{ steps.getDingData.outputs.REPOSITORY }} WorkFlow ${{ GITHUB.JOB }} Success!", | |
"picUrl": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", | |
"messageUrl": "${{ steps.getDingData.outputs.URL }}" | |
} | |
} |