120 lines
6.7 KiB
YAML
120 lines
6.7 KiB
YAML
name: Test and Build Project
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
build_type:
|
|
description: "Build type: version or pre"
|
|
required: true
|
|
type: choice
|
|
options:
|
|
- version
|
|
- pre
|
|
version_number:
|
|
description: "Version number"
|
|
required: true
|
|
type: string
|
|
jobs:
|
|
build:
|
|
runs-on: self-hosted
|
|
permissions:
|
|
contents: write
|
|
actions: write
|
|
pull-requests: write
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: v0.0.2-dev
|
|
fetch-depth: 0
|
|
- name: Test code
|
|
run: |
|
|
echo "Testing code"
|
|
- name: Clean build
|
|
run: |
|
|
echo "Cleaning build"
|
|
rm -rf MeowEmbeddedMusicServer-*
|
|
- name: Build version
|
|
if: ${{ github.event.inputs.build_type == 'version' }}
|
|
run: |
|
|
echo "Building version ${{ github.event.inputs.version_number }}"
|
|
go mod tidy
|
|
echo "Build linux i386 binary"
|
|
CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Linux-i386 . && upx -9 MeowEmbeddedMusicServer-Linux-i386
|
|
echo "Build linux amd64 binary"
|
|
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Linux-amd64 . && upx -9 MeowEmbeddedMusicServer-Linux-amd64
|
|
echo "Build linux arm64 binary"
|
|
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Linux-arm64 . && upx -9 MeowEmbeddedMusicServer-Linux-arm64
|
|
echo "Build windows i386 binary"
|
|
CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Windows-i386.exe . && upx -9 MeowEmbeddedMusicServer-Windows-i386.exe
|
|
echo "Build windows amd64 binary"
|
|
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Windows-amd64.exe . && upx -9 MeowEmbeddedMusicServer-Windows-amd64.exe
|
|
echo "Build windows arm64 binary"
|
|
CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Windows-arm64.exe .
|
|
echo "Build darwin amd64 binary"
|
|
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Darwin-amd64 .
|
|
echo "Build darwin arm64 binary"
|
|
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Darwin-arm64 .
|
|
- name: Build pre-release
|
|
if: ${{ github.event.inputs.build_type == 'pre' }}
|
|
run: |
|
|
echo "Building pre-release ${{ github.event.inputs.version_number }}"
|
|
go mod tidy
|
|
echo "Build linux i386 binary"
|
|
CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Linux-i386 . && upx -9 MeowEmbeddedMusicServer-Linux-i386
|
|
echo "Build linux amd64 binary"
|
|
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Linux-amd64 . && upx -9 MeowEmbeddedMusicServer-Linux-amd64
|
|
echo "Build linux arm64 binary"
|
|
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Linux-arm64 . && upx -9 MeowEmbeddedMusicServer-Linux-arm64
|
|
echo "Build windows i386 binary"
|
|
CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Windows-i386.exe . && upx -9 MeowEmbeddedMusicServer-Windows-i386.exe
|
|
echo "Build windows amd64 binary"
|
|
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Windows-amd64.exe . && upx -9 MeowEmbeddedMusicServer-Windows-amd64.exe
|
|
echo "Build windows arm64 binary"
|
|
CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Windows-arm64.exe .
|
|
echo "Build darwin amd64 binary"
|
|
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Darwin-amd64 .
|
|
echo "Build darwin arm64 binary"
|
|
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w" -trimpath -o MeowEmbeddedMusicServer-Darwin-arm64 .
|
|
- name: Get latest tag
|
|
id: get_latest_tag
|
|
run: |
|
|
git fetch --tags
|
|
LATEST_TAG=$(git tag --sort=-refname | head -n 1)
|
|
echo "Latest tag found: $LATEST_TAG"
|
|
echo "previous_tag=$LATEST_TAG" >> $GITHUB_OUTPUT
|
|
- name: Upload binaries
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
tag_name: ${{ github.event.inputs.version_number }}
|
|
name: ${{ github.event.inputs.version_number }}
|
|
body: |
|
|
### Build Information
|
|
- Branch: v0.0.2-dev
|
|
- Commit: ${{ github.sha }}
|
|
|
|
### Binaries
|
|
- Linux i386
|
|
- Linux amd64
|
|
- Linux arm64
|
|
- Windows i386
|
|
- Windows amd64
|
|
- Windows arm64
|
|
- macOS amd64
|
|
- macOS arm64
|
|
|
|
**Full Changelog**: https://github.com/OmniX-Space/MeowBox-Core/compare/${{ steps.get_latest_tag.outputs.previous_tag }}...${{ github.sha }}
|
|
files: |
|
|
MeowEmbeddedMusicServer-Linux-i386
|
|
MeowEmbeddedMusicServer-Linux-amd64
|
|
MeowEmbeddedMusicServer-Linux-arm64
|
|
MeowEmbeddedMusicServer-Windows-i386.exe
|
|
MeowEmbeddedMusicServer-Windows-amd64.exe
|
|
MeowEmbeddedMusicServer-Windows-arm64.exe
|
|
MeowEmbeddedMusicServer-Darwin-amd64
|
|
MeowEmbeddedMusicServer-Darwin-arm64
|
|
prerelease: ${{ github.event.inputs.build_type == 'pre' }}
|
|
make_latest: ${{ github.event.inputs.build_type != 'pre' }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
# GITHUB_TOKEN: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
|
|
continue-on-error: true |