reinstate qt5 code #3359
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: CD | |
on: | |
- push | |
- pull_request | |
permissions: | |
contents: read | |
env: | |
OSX_QT_VERSION: 6.5.2 | |
OSX_POPPLER_VERSION: 23.08.0 | |
OSX_QUAZIP_VERSION: 1.4 | |
jobs: | |
build-win10: | |
name: win10 build (msys2) | |
if: github.event_name == 'push' | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: UCRT64 | |
update: true | |
install: | | |
git make mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-ninja | |
mingw-w64-ucrt-x86_64-qt6-base mingw-w64-ucrt-x86_64-qt6-declarative | |
mingw-w64-ucrt-x86_64-qt6-svg mingw-w64-ucrt-x86_64-qt6-5compat | |
mingw-w64-ucrt-x86_64-qt6-tools mingw-w64-ucrt-x86_64-poppler-qt6 | |
mingw-w64-ucrt-x86_64-nsis mingw-w64-ucrt-x86_64-quazip-qt6 | |
mingw-w64-ucrt-x86_64-hunspell mingw-w64-ucrt-x86_64-qt6-translations | |
mingw-w64-ucrt-x86_64-python-mingw-ldd zip unzip | |
- name: Fetch tag annotations | |
run: git fetch --tags --force | |
- name: Configure | |
run: | | |
mkdir build | |
cd build | |
. ../.github/scripts/get-version.sh | |
sed -i ../win.rc -Ee "s/0,[0,]+/$(tr <<<"$TXS_VERSION" . ,),0/" | |
sed -i ../win.rc -e "s/git[\]0/$VERSION_NAME/" | |
# qmake-qt6 texstudio.pro CONFIG-=debug MXE=1 BUILD_ADWAITA=1 STRIP=1 | |
cmake .. -Wno-dev | |
# work-around strange git behaviour on msys2 | |
. ../git_revision.sh | |
- name: Build | |
run: | | |
cd build | |
cmake --build . -- -j 2 | |
- name: Package | |
id: package | |
run: | | |
cd build | |
. ../.github/scripts/get-version.sh | |
. ../.github/scripts/package_msys.sh | |
echo "VERSION_NAME=${VERSION_NAME}">> $GITHUB_OUTPUT | |
echo "TXS_VERSION=${TXS_VERSION}">> $GITHUB_OUTPUT | |
echo "GIT_VERSION=${GIT_VERSION}">> $GITHUB_OUTPUT | |
- name: Upload zip to GitHub Artifacts | |
if: github.event_name == 'push' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: texstudio-win-qt6-zip | |
path: ./build/package-zip/texstudio-win-qt6-${{ steps.package.outputs.VERSION_NAME }}.zip | |
- name: Upload to GitHub Artifacts | |
if: github.event_name == 'push' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: texstudio-win-qt6-exe | |
path: texstudio-win-qt6-${{ steps.package.outputs.VERSION_NAME }}.exe | |
- name: Upload release file(s) | |
uses: actions/upload-artifact@v3 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
name: release | |
path: | | |
texstudio-${{ steps.package.outputs.GIT_VERSION }}-win-qt6.exe | |
texstudio-${{ steps.package.outputs.GIT_VERSION }}-win-portable-qt6.zip | |
################################### | |
build-linux-release: | |
name: linux appimage | |
if: github.event_name == 'push' | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Fetch tag annotations | |
run: git fetch --tags --force | |
- name: Updates | |
run: sudo apt-get update | |
- name: Dependencies | |
run: sudo apt-get install qtbase5-dev qt5-default qt5-qmake libqt5svg5-dev qtdeclarative5-dev qttools5-dev libqt5svg5-dev libpoppler-qt5-dev libpoppler-cpp-dev pkg-config zlib1g-dev libquazip5-dev | |
- name: Configure | |
run: | | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=appdir/usr .. -Wno-dev | |
- name: Build | |
run: | | |
cd build | |
cmake --build . --target install -- -j 2 | |
- name: Package | |
id: package | |
run: | | |
cd build | |
POPPLERDATA_VERSION="0.4.8" | |
POPPLERDATA_SUBDIR="poppler-data-${POPPLERDATA_VERSION}" | |
POPPLERDATA_FILE="poppler-data-${POPPLERDATA_VERSION}.tar.gz" | |
POPPLERDATA_URL="https://poppler.freedesktop.org/${POPPLERDATA_FILE}" | |
POPPLERDATA_SHA256="1096a18161f263cccdc6d8a2eb5548c41ff8fcf9a3609243f1b6296abdf72872" | |
. ../.github/scripts/package_linux.sh | |
echo "VERSION_NAME=${VERSION_NAME}" >> $GITHUB_OUTPUT | |
echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT | |
echo "TXS_VERSION=${TXS_VERSION}" >> $GITHUB_OUTPUT | |
echo "GIT_VERSION=${GIT_VERSION}" >> $GITHUB_OUTPUT | |
- name: Upload to Github Artifacts | |
if: github.event_name == 'push' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: texstudio-linux | |
path: texstudio-linux-${{ steps.package.outputs.VERSION_NAME }}-x86_64.AppImage | |
- name: Upload release file(s) | |
uses: actions/upload-artifact@v3 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
name: release | |
path: texstudio-${{ steps.package.outputs.GIT_VERSION }}-x86_64.AppImage | |
############################ | |
macosx: | |
name: Mac OS X | |
if: true | |
runs-on: macos-11 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Fetch tag annotations | |
run: git fetch --tags --force | |
- name: Install Dependencies | |
run: | | |
wget https://github.com/sunderme/homebrew-qt6-modules/releases/download/${{ env.OSX_QT_VERSION }}/QtBase-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz | |
sudo tar xvf ./QtBase-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz -C /usr/local | |
rm QtBase-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz | |
wget https://github.com/sunderme/homebrew-qt6-modules/releases/download/${{ env.OSX_QT_VERSION }}/QtSvg-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz | |
sudo tar xvf ./QtSvg-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz -C /usr/local/QtBase-${{ env.OSX_QT_VERSION }}-Darwin --strip-components=1 | |
rm QtSvg-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz | |
wget https://github.com/sunderme/homebrew-qt6-modules/releases/download/${{ env.OSX_QT_VERSION }}/Qt5Compat-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz | |
sudo tar xvf ./Qt5Compat-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz -C /usr/local/QtBase-${{ env.OSX_QT_VERSION }}-Darwin --strip-components=1 | |
rm Qt5Compat-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz | |
wget https://github.com/sunderme/homebrew-qt6-modules/releases/download/${{ env.OSX_QT_VERSION }}/QtTools-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz | |
sudo tar xvf ./QtTools-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz -C /usr/local/QtBase-${{ env.OSX_QT_VERSION }}-Darwin --strip-components=1 | |
rm QtTools-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz | |
wget https://github.com/sunderme/homebrew-qt6-modules/releases/download/${{ env.OSX_QT_VERSION }}/QtDeclarative-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz | |
sudo tar xvf ./QtDeclarative-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz -C /usr/local/QtBase-${{ env.OSX_QT_VERSION }}-Darwin --strip-components=1 | |
rm QtDeclarative-${{ env.OSX_QT_VERSION }}-Darwin.tar.xz | |
wget https://github.com/sunderme/homebrew-qt6-modules/releases/download/${{ env.OSX_QT_VERSION }}/poppler-${{ env.OSX_POPPLER_VERSION }}-Darwin.tar.xz | |
sudo tar xvf ./poppler-${{ env.OSX_POPPLER_VERSION}}-Darwin.tar.xz -C /usr/local --strip-components=1 | |
rm poppler-${{ env.OSX_POPPLER_VERSION }}-Darwin.tar.xz | |
wget https://github.com/sunderme/homebrew-qt6-modules/releases/download/${{ env.OSX_QT_VERSION }}/QuaZip-${{ env.OSX_QUAZIP_VERSION }}-Darwin.tar.xz | |
sudo tar xvf ./QuaZip-${{ env.OSX_QUAZIP_VERSION }}-Darwin.tar.xz -C /usr/local --strip-components=1 | |
rm QuaZip-${{ env.OSX_QUAZIP_VERSION }}-Darwin.tar.xz | |
brew install cairo fontconfig freetype gettext jpeg libpng libtiff little-cms2 nspr nss openjpeg | |
brew install ninja pkg-config | |
- name: Configure | |
run: | | |
mkdir build | |
cd build | |
/usr/local/QtBase-${{ env.OSX_QT_VERSION }}-Darwin/bin/qt-cmake .. -G Ninja | |
- name: Build | |
run: | | |
cd build | |
cmake --build . --parallel | |
- name: Workarounds | |
run: | | |
cd build | |
mkdir -p texstudio.app/Contents/Frameworks | |
cp /usr/local/lib/libbrotlicommon.1.dylib texstudio.app/Contents/Frameworks | |
touch texstudio.app/Contents/Resources/empty.lproj | |
- name: Package | |
id: package | |
run: | | |
cd build | |
/usr/local/QtBase-${{ env.OSX_QT_VERSION }}-Darwin/bin/macdeployqt texstudio.app -dmg | |
. ../.github/scripts/get-version.sh | |
cp texstudio.dmg ../texstudio-${GIT_VERSION}-osx.dmg | |
mv texstudio.dmg ../texstudio-osx-${VERSION_NAME}.dmg | |
echo "VERSION_NAME=${VERSION_NAME}" >> $GITHUB_OUTPUT | |
echo "TXS_VERSION=${TXS_VERSION}" >> $GITHUB_OUTPUT | |
echo "GIT_VERSION=${GIT_VERSION}" >> $GITHUB_OUTPUT | |
- name: Upload to Github artifacts | |
if: github.event_name == 'push' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: texstudio-osx | |
path: texstudio-osx-${{ steps.package.outputs.VERSION_NAME }}.dmg | |
- name: Upload release file(s) | |
uses: actions/upload-artifact@v3 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
name: release | |
path: texstudio-${{ steps.package.outputs.GIT_VERSION }}-osx.dmg | |
release: | |
permissions: | |
contents: write # for softprops/action-gh-release to create GitHub release | |
name: Release | |
needs: [build-win10, build-linux-release, macosx] # build-linux-win,macosx-qt5 is disabled | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') | |
steps: | |
- name: Download temp artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: release | |
- name: Calculate hashes | |
run: | | |
echo --SHA1SUM-- > hashes.txt | |
sha1sum * | grep -v hashes.txt >> hashes.txt | |
echo >> hashes.txt | |
echo --SHA256SUM-- >> hashes.txt | |
sha256sum * | grep -v hashes.txt >> hashes.txt | |
- name: Batch release | |
uses: softprops/action-gh-release@v1 | |
with: | |
prerelease: ${{ contains(github.ref, 'alpha') || contains(github.ref, 'beta') || contains(github.ref, 'rc') }} | |
files: ./* | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUBTOKEN }} | |
- name: Delete temp artifact | |
uses: GeekyEggo/[email protected] | |
with: | |
name: release |