fix(ci): update GitHub Actions workflow for Windows build and release

This commit is contained in:
akiyosi 2025-06-10 20:49:54 +09:00
parent 9ae09b00dc
commit eafd4656dc
2 changed files with 83 additions and 84 deletions

View file

@ -39,7 +39,7 @@ jobs:
sudo apt-get install libwayland-dev libwayland-egl++ wayland-scanner++
- name: Install Go
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
@ -79,7 +79,7 @@ jobs:
rm -fr ${{ github.workspace }}/fcitx-qt5
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
path: ${{ env.GOPATH }}/src/github.com/${{ github.repository }}
@ -160,7 +160,7 @@ jobs:
brew install qt@5
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
path: ${{ env.GOPATH }}/src/github.com/${{ github.repository }}
@ -279,7 +279,7 @@ jobs:
mkdir qt5 && mv ./Users/runner/work/qt-static-builds/qt-static-builds/Qt/* qt5/
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
path: ${{ env.GOPATH }}/src/github.com/${{ github.repository }}
@ -321,6 +321,8 @@ jobs:
# Windows
#################################################################
# test
test-windows-mingw:
strategy:
matrix:
@ -329,10 +331,9 @@ jobs:
runs-on: ${{ matrix.platform }}
env:
GOPATH: ${{ github.workspace }}
QT_DIR: ${{ github.workspace }}\Qt
QT_API: 5.13.0
QT_MSYS2: true
QT_MSYS2_DIR: D:\a\_temp\msys64\
QT_MSYS2_DIR: C:\a\msys64\
QT_MSVC: false
QT_DEBUG: false
GO111MODULE: on
@ -350,9 +351,11 @@ jobs:
update: true
msystem: mingw64
install: mingw-w64-x86_64-toolchain
location: C:\a\
- shell: msys2 {0}
run: |
pacman --noconfirm -S sed git make mingw-w64-x86_64-toolchain mingw-w64-x86_64-qt5
pacman --noconfirm -S sed git make tree mingw-w64-x86_64-toolchain mingw-w64-x86_64-qt5
- name: Install Go
uses: actions/setup-go@v4
@ -360,21 +363,22 @@ jobs:
go-version: ${{ matrix.go-version }}
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
path: ${{ env.GOPATH }}\src\github.com\${{ github.repository }}
- name: Get Qt binding for Go
shell: msys2 {0}
run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH
cd /d/a/goneovim/goneovim/src/github.com/${{ github.repository }}
cd /c/a/goneovim/goneovim//src/github.com/${{ github.repository }}
go get -v github.com/akiyosi/qt
go get github.com/akiyosi/qt/internal/cmd@v0.0.0-20230718095223-7e4e923f23fa
go get github.com/akiyosi/qt/internal/cmd@v0.0.0-20240304155940-b43fff373ad5
go get github.com/akiyosi/qt/internal/binding/files/docs/5.12.0
go get github.com/akiyosi/qt/internal/binding/files/docs/5.13.0
go get github.com/akiyosi/qt/internal/cmd/moc@v0.0.0-20230718095223-7e4e923f23fa
go get github.com/akiyosi/qt/internal/cmd/moc@v0.0.0-20240304155940-b43fff373ad5
go install -v -tags=no_env github.com/akiyosi/qt/cmd/...
go mod vendor
git clone https://github.com/akiyosi/env_windows_amd64_513.git vendor/github.com/akiyosi/env_windows_amd64_513
@ -392,26 +396,26 @@ jobs:
shell: msys2 {0}
run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH
cd /d/a/goneovim/goneovim/src/github.com/${{ github.repository }}
cd /c/a/goneovim/goneovim/src/github.com/${{ github.repository }}
$(go env GOPATH)/bin/qtsetup -test=false
- name: Get dependencies
shell: msys2 {0}
run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH
export GOPATH=/d/a/goneovim/goneovim
cd /d/a/goneovim/goneovim/src/github.com/${{ github.repository }}
cd /c/a/goneovim/goneovim/src/github.com/${{ github.repository }}
make deps
- name: Test
shell: msys2 {0}
run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH
export GOPATH=/d/a/goneovim/goneovim
cd /d/a/goneovim/goneovim/src/github.com/${{ github.repository }}
cd /c/a/goneovim/goneovim/src/github.com/${{ github.repository }}
make test
# build
build-windows-mingw:
strategy:
matrix:
@ -419,10 +423,10 @@ jobs:
platform: [windows-latest]
runs-on: ${{ matrix.platform }}
env:
GOPATH: C:\
GOPATH: ${{ github.workspace }}
QT_API: 5.13.0
QT_MSYS2: true
QT_MSYS2_DIR: D:\a\_temp\msys64\
QT_MSYS2_DIR: C:\a\msys64\
QT_MSYS2_STATIC: true
QT_MSVC: false
QT_DEBUG_CONSOLE: true
@ -446,7 +450,10 @@ jobs:
update: true
msystem: mingw64
install: mingw-w64-x86_64-toolchain
- shell: msys2 {0}
location: C:\a\
- name: Install Qt5
shell: msys2 {0}
run: |
pacman --noconfirm -S sed git make unzip zip mingw-w64-x86_64-qt-creator
pacman -Scc
@ -454,45 +461,32 @@ jobs:
curl -sL --retry 10 --retry-delay 60 -O https://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-qt5-static-5.15.13-1-any.pkg.tar.zst
pacman -U --noconfirm mingw-w64-x86_64-qt5-static-5.15.13-1-any.pkg.tar.zst
#- name: Patch qt5
# shell: msys2 {0}
# run: |
# curl -sL --retry 10 --retry-delay 60 -O https://github.com/akiyosi/github-actions-playground/releases/download/qt-5.15.8/qt-5.15.8.zip
# unzip qt-5.15.8.zip
# cp -fpR qt5/* /mingw64/qt5-static/
# rm -fr qt5
# rm qt-5.15.8.zip
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
path: ${{ github.workspace }}\${{ github.repository }}
path: ${{ env.GOPATH }}\src\github.com\${{ github.repository }}
- name: Copy checkout repogitory
shell: msys2 {0}
run: |
mkdir -p /c/${{ github.repository }}
ls -l /d/a/goneovim/goneovim/${{ github.repository }}
cp -pR /d/a/goneovim/goneovim/${{ github.repository }}/* /c/${{ github.repository }}/
cp -pR /d/a/goneovim/goneovim/${{ github.repository }}/.* /c/${{ github.repository }}/
mkdir -p /c/src/github.com/${{ github.repository }}
cp -pR /d/a/goneovim/goneovim/${{ github.repository }}/* /c/src/github.com/${{ github.repository }}/
ls -l /c/${{ github.repository }}
ls -l /c/src/github.com/${{ github.repository }}
- name: Get Qt binding for Go
shell: msys2 {0}
run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH
cd /c/${{ github.repository }}
make qt_bindings
cd /c/a/goneovim/goneovim//src/github.com/${{ github.repository }}
go get -v github.com/akiyosi/qt
go get github.com/akiyosi/qt/internal/cmd@v0.0.0-20240304155940-b43fff373ad5
go get github.com/akiyosi/qt/internal/binding/files/docs/5.12.0
go get github.com/akiyosi/qt/internal/binding/files/docs/5.13.0
go get github.com/akiyosi/qt/internal/cmd/moc@v0.0.0-20240304155940-b43fff373ad5
go install -v -tags=no_env github.com/akiyosi/qt/cmd/...
go mod vendor
git clone https://github.com/akiyosi/env_windows_amd64_513.git vendor/github.com/akiyosi/env_windows_amd64_513
$(go env GOPATH)/bin/qtsetup -test=false
- name: Get dependencies
shell: msys2 {0}
run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH
cd /c/${{ github.repository }}
cd /c/a/goneovim/goneovim/src/github.com/${{ github.repository }}
make deps
### https://github.com/therecipe/qt/issues/657
@ -507,13 +501,16 @@ jobs:
shell: msys2 {0}
run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH
cd /c/${{ github.repository }}
make app
cd /c/a/goneovim/goneovim/src/github.com/${{ github.repository }}
$(go env GOPATH)/bin/qtmoc desktop ./cmd/goneovim
go generate
$(go env GOPATH)/bin/qtdeploy build desktop ./cmd/goneovim
cp -pR runtime cmd/goneovim/deploy/windows/
- name: Rename
shell: msys2 {0}
run: |
cd /c/${{ github.repository }}/cmd/goneovim/deploy
cd /c/a/goneovim/goneovim/src/github.com/${{ github.repository }}/cmd/goneovim/deploy
mv windows goneovim-windows
# zip -r goneovim-windows.zip goneovim-windows
@ -521,7 +518,7 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: goneovim-windows
path: C:/${{ github.repository }}/cmd/goneovim/deploy
path: C:/a/goneovim/goneovim/src/github.com/${{ github.repository }}/cmd/goneovim/deploy
# test-and-build-windows-msvc:
@ -627,7 +624,7 @@ jobs:
# Move-Item -Path go -Destination go-root
# - name: Checkout code
# uses: actions/checkout@v3
# uses: actions/checkout@v4
# with:
# fetch-depth: 0
# path: ${{ env.GOPATH }}\src\github.com\${{ github.repository }}
@ -762,7 +759,7 @@ jobs:
# runs-on: macos-latest
# steps:
# - name: Checkout code
# uses: actions/checkout@v3
# uses: actions/checkout@v4
# with:
# fetch-depth: 0
#

View file

@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
- run: >
@ -103,7 +103,7 @@ jobs:
rm -fr ${{ github.workspace }}/fcitx-qt5
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
path: ${{ github.workspace }}/src/github.com/${{ github.repository }}
@ -189,7 +189,7 @@ jobs:
brew install qt@5
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
path: ${{ github.workspace }}/src/github.com/${{ github.repository }}
@ -272,7 +272,7 @@ jobs:
mkdir qt5 && mv ./Users/runner/work/qt-static-builds/qt-static-builds/Qt/* qt5/
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
path: ${{ github.workspace }}/src/github.com/${{ github.repository }}
@ -333,10 +333,10 @@ jobs:
qtversion: [5.15.16]
runs-on: ${{ matrix.platform }}
env:
GOPATH: C:\
GOPATH: ${{ github.workspace }}
QT_API: 5.13.0
QT_MSYS2: true
QT_MSYS2_DIR: D:\a\_temp\msys64\
QT_MSYS2_DIR: C:\a\msys64\
QT_MSYS2_STATIC: true
QT_MSVC: false
QT_DEBUG: false
@ -351,17 +351,20 @@ jobs:
steps:
- name: Install Go
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- name: Setup MSYS2 and install Qt5
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
update: true
msystem: mingw64
install: mingw-w64-x86_64-toolchain
- shell: msys2 {0}
location: C:\a\
- name: Install Qt5
shell: msys2 {0}
run: |
pacman --noconfirm -S sed git make unzip zip mingw-w64-x86_64-qt-creator
pacman -Scc
@ -379,49 +382,48 @@ jobs:
# rm qt-5.15.5_patched-qtbug71737.zip
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
path: ${{ github.workspace }}\${{ github.repository }}
- name: Copy checkout repogitory
shell: msys2 {0}
run: |
mkdir -p /c/${{ github.repository }}
ls -l /d/a/goneovim/goneovim/${{ github.repository }}
cp -pR /d/a/goneovim/goneovim/${{ github.repository }}/* /c/${{ github.repository }}/
cp -pR /d/a/goneovim/goneovim/${{ github.repository }}/.* /c/${{ github.repository }}/
mkdir -p /c/src/github.com/${{ github.repository }}
cp -pR /d/a/goneovim/goneovim/${{ github.repository }}/* /c/src/github.com/${{ github.repository }}/
ls -l /c/${{ github.repository }}
ls -l /c/src/github.com/${{ github.repository }}
path: ${{ env.GOPATH }}\src\github.com\${{ github.repository }}
- name: Get Qt binding for Go
shell: msys2 {0}
run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH
cd /c/${{ github.repository }}
make qt_bindings
cd /c/a/goneovim/goneovim//src/github.com/${{ github.repository }}
go get -v github.com/akiyosi/qt
go get github.com/akiyosi/qt/internal/cmd@v0.0.0-20240304155940-b43fff373ad5
go get github.com/akiyosi/qt/internal/binding/files/docs/5.12.0
go get github.com/akiyosi/qt/internal/binding/files/docs/5.13.0
go get github.com/akiyosi/qt/internal/cmd/moc@v0.0.0-20240304155940-b43fff373ad5
go install -v -tags=no_env github.com/akiyosi/qt/cmd/...
go mod vendor
git clone https://github.com/akiyosi/env_windows_amd64_513.git vendor/github.com/akiyosi/env_windows_amd64_513
$(go env GOPATH)/bin/qtsetup -test=false
- name: Get dependencies
shell: msys2 {0}
run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH
cd /c/${{ github.repository }}
cd /c/a/goneovim/goneovim/src/github.com/${{ github.repository }}
make deps
- name: Retrieve version
id: version-windows
run: |
cd C:\${{ github.repository }}
cd ${{ env.GOPATH }}\src\github.com\${{ github.repository }}
echo "::set-output name=GONEOVIM_VERSION::$(git describe --tags)"
- name: Build for windows
shell: msys2 {0}
run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH
cd /c/${{ github.repository }}
make app
cd /c/a/goneovim/goneovim/src/github.com/${{ github.repository }}
$(go env GOPATH)/bin/qtmoc desktop ./cmd/goneovim
go generate
$(go env GOPATH)/bin/qtdeploy build desktop ./cmd/goneovim
cp -pR runtime cmd/goneovim/deploy/windows/
- if: github.event_name == 'workflow_dispatch'
run: echo "ARCHIVE_NAME=goneovim-windows" >> $env:GITHUB_ENV
@ -433,7 +435,7 @@ jobs:
- name: Archive
shell: msys2 {0}
run: |
cd /c/${{ github.repository }}/cmd/goneovim/deploy
cd /c/a/goneovim/goneovim/src/github.com/${{ github.repository }}/cmd/goneovim/deploy
mv windows ${{ env.ARCHIVE_NAME }}
zip -r ${{ env.ARCHIVE_NAME }}.zip ${{ env.ARCHIVE_NAME }}
@ -441,7 +443,7 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: goneovim-windows
path: C:/${{ github.repository }}/cmd/goneovim/deploy/${{ env.ARCHIVE_NAME }}.zip
path: C:/a/goneovim/goneovim/src/github.com/${{ github.repository }}/cmd/goneovim/deploy/${{ env.ARCHIVE_NAME }}.zip
# freebsd:
@ -453,7 +455,7 @@ jobs:
# runs-on: ${{ matrix.platform }}
# steps:
# - name: Checkout code
# uses: actions/checkout@v3
# uses: actions/checkout@v4
# with:
# fetch-depth: 0
#
@ -518,7 +520,7 @@ jobs:
contents: write
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4