Files
AynaLivePlayer/.github/workflows/build.yml
aynakeya 437b4a0f15 tmp
2025-11-06 01:39:48 +08:00

126 lines
3.7 KiB
YAML

name: Build
on:
push:
branches:
- master
- dev
jobs:
build-windows:
runs-on: windows-latest
timeout-minutes: 20
env:
GOOS: windows
GOARCH: amd64
EXECUTABLE: AynaLivePlayer.exe
CGO_CFLAGS: "-I${{ github.workspace }}/libmpv/include -I${{ github.workspace }}/libvlc/VideoLAN.LibVLC.Windows.3.0.21/build/x64/include"
CGO_LDFLAGS: "-L${{ github.workspace }}/libmpv -L${{ github.workspace }}/libvlc/VideoLAN.LibVLC.Windows.3.0.21/build/x64"
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install 7-Zip
run: choco install 7zip
- name: Download libmpv
uses: robinraju/release-downloader@v1
with:
repository: "shinchiro/mpv-winbuild-cmake"
latest: true
fileName: "mpv-dev-x86_64-[0-9]*.7z"
extract: false
out-file-path: "libmpv"
- name: Extract libmpv
run: |
7z x "libmpv/mpv-dev-x86_64-*.7z" -o"libmpv"
- name: Setup NuGet.exe
uses: nuget/setup-nuget@v2
with:
nuget-version: 'latest'
- name: Install VLC dependency
run: nuget install VideoLAN.LibVLC.Windows -OutputDirectory ${{ github.workspace }}/libvlc -Version 3.0.21
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: '1.24'
- name: Install Go Dependencies
run: |
go mod tidy
go install fyne.io/tools/cmd/fyne@latest
- name: Build application
run: |
go build -tags="mpvOnly,nosource" -v -o ./AynaLivePlayerMpvNoSource.exe -ldflags -H=windowsgui app/main.go
go build -tags="vlcOnly,nosource" -v -o ./AynaLivePlayerVlcNoSource.exe -ldflags -H=windowsgui app/main.go
go build -tags="nosource" -v -o ./AynaLivePlayerAllPlayerNoSource.exe -ldflags -H=windowsgui app/main.go
go build -tags="mpvOnly" -v -o ./AynaLivePlayerMpv.exe -ldflags -H=windowsgui app/main.go
go build -tags="vlcOnly" -v -o ./AynaLivePlayerVlc.exe -ldflags -H=windowsgui app/main.go
go build -v -o ./AynaLivePlayerAllPlayer.exe -ldflags -H=windowsgui app/main.go
- name: Upload artifact (NoSource)
uses: actions/upload-artifact@v4
with:
name: windows-build-nosource
path: |
./AynaLivePlayerMpvNoSource.exe
./AynaLivePlayerVlcNoSource.exe
./AynaLivePlayerAllPlayerNoSource.exe
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: windows-build
path: |
./AynaLivePlayerMpv.exe
./AynaLivePlayerVlc.exe
./AynaLivePlayerAllPlayer.exe
build-ubuntu:
runs-on: ubuntu-latest
timeout-minutes: 10
env:
GOOS: linux
GOARCH: amd64
EXECUTABLE: AynaLivePlayer
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libvlc-dev vlc libmpv-dev libgl-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libgl1-mesa-dev xorg-dev
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: '1.24'
- name: Install Go Dependencies
run: |
go mod tidy
go install fyne.io/tools/cmd/fyne@latest
- name: Build application
run: go build -o ./${{ env.EXECUTABLE }} app/main.go
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ubuntu-build
path: ./${{ env.EXECUTABLE }}