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++ sudo apt-get install libwayland-dev libwayland-egl++ wayland-scanner++
- name: Install Go - name: Install Go
uses: actions/setup-go@v4 uses: actions/setup-go@v5
with: with:
go-version: ${{ matrix.go-version }} go-version: ${{ matrix.go-version }}
@ -79,7 +79,7 @@ jobs:
rm -fr ${{ github.workspace }}/fcitx-qt5 rm -fr ${{ github.workspace }}/fcitx-qt5
- name: Checkout code - name: Checkout code
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
path: ${{ env.GOPATH }}/src/github.com/${{ github.repository }} path: ${{ env.GOPATH }}/src/github.com/${{ github.repository }}
@ -160,7 +160,7 @@ jobs:
brew install qt@5 brew install qt@5
- name: Checkout code - name: Checkout code
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
path: ${{ env.GOPATH }}/src/github.com/${{ github.repository }} 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/ mkdir qt5 && mv ./Users/runner/work/qt-static-builds/qt-static-builds/Qt/* qt5/
- name: Checkout code - name: Checkout code
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
path: ${{ env.GOPATH }}/src/github.com/${{ github.repository }} path: ${{ env.GOPATH }}/src/github.com/${{ github.repository }}
@ -321,6 +321,8 @@ jobs:
# Windows # Windows
################################################################# #################################################################
# test
test-windows-mingw: test-windows-mingw:
strategy: strategy:
matrix: matrix:
@ -329,10 +331,9 @@ jobs:
runs-on: ${{ matrix.platform }} runs-on: ${{ matrix.platform }}
env: env:
GOPATH: ${{ github.workspace }} GOPATH: ${{ github.workspace }}
QT_DIR: ${{ github.workspace }}\Qt
QT_API: 5.13.0 QT_API: 5.13.0
QT_MSYS2: true QT_MSYS2: true
QT_MSYS2_DIR: D:\a\_temp\msys64\ QT_MSYS2_DIR: C:\a\msys64\
QT_MSVC: false QT_MSVC: false
QT_DEBUG: false QT_DEBUG: false
GO111MODULE: on GO111MODULE: on
@ -350,9 +351,11 @@ jobs:
update: true update: true
msystem: mingw64 msystem: mingw64
install: mingw-w64-x86_64-toolchain install: mingw-w64-x86_64-toolchain
location: C:\a\
- shell: msys2 {0} - shell: msys2 {0}
run: | 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 - name: Install Go
uses: actions/setup-go@v4 uses: actions/setup-go@v4
@ -360,21 +363,22 @@ jobs:
go-version: ${{ matrix.go-version }} go-version: ${{ matrix.go-version }}
- name: Checkout code - name: Checkout code
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
path: ${{ env.GOPATH }}\src\github.com\${{ github.repository }} path: ${{ env.GOPATH }}\src\github.com\${{ github.repository }}
- name: Get Qt binding for Go - name: Get Qt binding for Go
shell: msys2 {0} shell: msys2 {0}
run: | run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH 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 -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.12.0
go get github.com/akiyosi/qt/internal/binding/files/docs/5.13.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 install -v -tags=no_env github.com/akiyosi/qt/cmd/...
go mod vendor go mod vendor
git clone https://github.com/akiyosi/env_windows_amd64_513.git vendor/github.com/akiyosi/env_windows_amd64_513 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} shell: msys2 {0}
run: | run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH 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 $(go env GOPATH)/bin/qtsetup -test=false
- name: Get dependencies - name: Get dependencies
shell: msys2 {0} shell: msys2 {0}
run: | run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH
export GOPATH=/d/a/goneovim/goneovim cd /c/a/goneovim/goneovim/src/github.com/${{ github.repository }}
cd /d/a/goneovim/goneovim/src/github.com/${{ github.repository }}
make deps make deps
- name: Test - name: Test
shell: msys2 {0} shell: msys2 {0}
run: | run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH
export GOPATH=/d/a/goneovim/goneovim cd /c/a/goneovim/goneovim/src/github.com/${{ github.repository }}
cd /d/a/goneovim/goneovim/src/github.com/${{ github.repository }}
make test make test
# build
build-windows-mingw: build-windows-mingw:
strategy: strategy:
matrix: matrix:
@ -419,10 +423,10 @@ jobs:
platform: [windows-latest] platform: [windows-latest]
runs-on: ${{ matrix.platform }} runs-on: ${{ matrix.platform }}
env: env:
GOPATH: C:\ GOPATH: ${{ github.workspace }}
QT_API: 5.13.0 QT_API: 5.13.0
QT_MSYS2: true QT_MSYS2: true
QT_MSYS2_DIR: D:\a\_temp\msys64\ QT_MSYS2_DIR: C:\a\msys64\
QT_MSYS2_STATIC: true QT_MSYS2_STATIC: true
QT_MSVC: false QT_MSVC: false
QT_DEBUG_CONSOLE: true QT_DEBUG_CONSOLE: true
@ -446,7 +450,10 @@ jobs:
update: true update: true
msystem: mingw64 msystem: mingw64
install: mingw-w64-x86_64-toolchain install: mingw-w64-x86_64-toolchain
- shell: msys2 {0} location: C:\a\
- name: Install Qt5
shell: msys2 {0}
run: | run: |
pacman --noconfirm -S sed git make unzip zip mingw-w64-x86_64-qt-creator pacman --noconfirm -S sed git make unzip zip mingw-w64-x86_64-qt-creator
pacman -Scc 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 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 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 - name: Checkout code
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
fetch-depth: 0 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 - name: Get Qt binding for Go
shell: msys2 {0} shell: msys2 {0}
run: | run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH 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 qt_bindings 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 - name: Get dependencies
shell: msys2 {0} shell: msys2 {0}
run: | run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH 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 make deps
### https://github.com/therecipe/qt/issues/657 ### https://github.com/therecipe/qt/issues/657
@ -507,13 +501,16 @@ jobs:
shell: msys2 {0} shell: msys2 {0}
run: | run: |
export PATH=/c/hostedtoolcache/windows/go/${{ matrix.go-version }}/x64/bin/:$PATH 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 app $(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 - name: Rename
shell: msys2 {0} shell: msys2 {0}
run: | 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 mv windows goneovim-windows
# zip -r goneovim-windows.zip goneovim-windows # zip -r goneovim-windows.zip goneovim-windows
@ -521,7 +518,7 @@ jobs:
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: goneovim-windows 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: # test-and-build-windows-msvc:
@ -627,7 +624,7 @@ jobs:
# Move-Item -Path go -Destination go-root # Move-Item -Path go -Destination go-root
# - name: Checkout code # - name: Checkout code
# uses: actions/checkout@v3 # uses: actions/checkout@v4
# with: # with:
# fetch-depth: 0 # fetch-depth: 0
# path: ${{ env.GOPATH }}\src\github.com\${{ github.repository }} # path: ${{ env.GOPATH }}\src\github.com\${{ github.repository }}
@ -762,7 +759,7 @@ jobs:
# runs-on: macos-latest # runs-on: macos-latest
# steps: # steps:
# - name: Checkout code # - name: Checkout code
# uses: actions/checkout@v3 # uses: actions/checkout@v4
# with: # with:
# fetch-depth: 0 # fetch-depth: 0
# #

View file

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