fix release upload #4059
Workflow file for this run
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.7.2 | |
OSX_POPPLER_VERSION: 24.07.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@v4 | |
- 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 | |
mkdir signed-artifacts | |
- name: Build | |
run: | | |
cd build | |
cmake --build . -- -j 4 | |
- name: upload binary | |
id: upload-binary | |
if: github.event_name == 'push' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: texstudio-exe | |
path: build/texstudio.exe | |
- name: get version | |
id: version | |
run: | | |
cd build | |
. ../.github/scripts/get-version.sh | |
echo "VERSION_NAME=${VERSION_NAME}">> $GITHUB_OUTPUT | |
echo "TXS_VERSION=${TXS_VERSION}">> $GITHUB_OUTPUT | |
echo "GIT_VERSION=${GIT_VERSION}">> $GITHUB_OUTPUT | |
- name: Codesign binary | |
id: sign_binary | |
if: true | |
uses: signpath/github-action-submit-signing-request@v0.4 | |
with: | |
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' | |
organization-id: '9e74d567-be9b-4bd4-929d-9978860f6cbc' | |
project-slug: 'texstudio' | |
signing-policy-slug: 'test-signing' | |
github-artifact-id: '${{steps.upload-binary.outputs.artifact-id}}' | |
artifact-configuration-slug: 'zipped_exe' | |
wait-for-completion: true | |
output-artifact-directory: './signed-artifacts' | |
parameters: | | |
Version: ${{ toJSON(steps.version.outputs.VERSION_NAME) }} | |
Release_Tag: "${{ steps.version.outputs.GIT_VERSION }}" | |
- name: use signed binary | |
id: use_signed_binary | |
run: | | |
mv signed-artifacts/texstudio.exe build/texstudio.exe | |
- 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@v4 | |
with: | |
name: texstudio-win-qt6-zip | |
path: ./build/package-zip/texstudio-win-qt6-${{ steps.package.outputs.VERSION_NAME }}.zip | |
- name: Upload to GitHub Artifacts | |
id: upload-artifact | |
if: github.event_name == 'push' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: texstudio-win-qt6-exe | |
path: texstudio-win-qt6-${{ steps.package.outputs.VERSION_NAME }}.exe | |
- name: Codesign | |
id: sign | |
if: true | |
uses: signpath/github-action-submit-signing-request@v0.4 | |
with: | |
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' | |
organization-id: '9e74d567-be9b-4bd4-929d-9978860f6cbc' | |
project-slug: 'texstudio' | |
signing-policy-slug: 'test-signing' | |
github-artifact-id: '${{steps.upload-artifact.outputs.artifact-id}}' | |
artifact-configuration-slug: 'zipped_exe' | |
wait-for-completion: true | |
output-artifact-directory: './signed-artifacts' | |
parameters: | | |
Version: ${{ toJSON(steps.package.outputs.VERSION_NAME) }} | |
Release_Tag: "${{ steps.package.outputs.GIT_VERSION }}" | |
- name: copy signed installer | |
id: copy_signed_binary | |
run: | | |
cp signed-artifacts/texstudio-win-qt6-${{ steps.package.outputs.VERSION_NAME }}.exe texstudio-win-qt6-signed-${{ steps.package.outputs.VERSION_NAME }}.exe | |
- name: Upload signed installer to GitHub Artifacts | |
id: upload-artifact-signed | |
if: github.event_name == 'push' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: texstudio-win-qt6-signed-exe | |
path: signed-artifacts/texstudio-win-qt6-${{ steps.package.outputs.VERSION_NAME }}.exe | |
- name: Upload release file(s) | |
uses: actions/upload-artifact@v4 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
name: release-win | |
path: | | |
texstudio-win-qt6-signed-${{ steps.package.outputs.VERSION_NAME }}.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@v4 | |
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 4 | |
- 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@v4 | |
with: | |
name: texstudio-linux | |
path: texstudio-linux-${{ steps.package.outputs.VERSION_NAME }}-x86_64.AppImage | |
- name: Upload release file(s) | |
uses: actions/upload-artifact@v4 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
name: release-linux | |
path: texstudio-${{ steps.package.outputs.GIT_VERSION }}-x86_64.AppImage | |
############################ | |
macosx: | |
name: Mac OS X | |
if: true | |
runs-on: macos-12 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
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 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: poppler data | |
run: | | |
cd build | |
wget https://poppler.freedesktop.org/poppler-data-0.4.12.tar.gz | |
tar xvf poppler-data-0.4.12.tar.gz | |
mkdir -p texstudio.app/Contents/share/poppler | |
cp -r poppler-data-0.4.12/cidToUnicode texstudio.app/Contents/share/poppler | |
cp -r poppler-data-0.4.12/cMap texstudio.app/Contents/share/poppler | |
cp -r poppler-data-0.4.12/nameToUnicode texstudio.app/Contents/share/poppler | |
cp -r poppler-data-0.4.12/unicodeMap texstudio.app/Contents/share/poppler | |
- 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@v4 | |
with: | |
name: texstudio-osx | |
path: texstudio-osx-${{ steps.package.outputs.VERSION_NAME }}.dmg | |
- name: Upload release file(s) | |
uses: actions/upload-artifact@v4 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
name: release-osx | |
path: texstudio-${{ steps.package.outputs.GIT_VERSION }}-osx.dmg | |
macosxM1: | |
name: Mac OS X (M1) | |
if: true | |
runs-on: macos-14 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
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-M1.tar.xz | |
sudo tar xvf ./QtBase-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz -C /usr/local | |
rm QtBase-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz | |
wget https://github.com/sunderme/homebrew-qt6-modules/releases/download/${{ env.OSX_QT_VERSION }}/QtSvg-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz | |
sudo tar xvf ./QtSvg-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz -C /usr/local/QtBase-${{ env.OSX_QT_VERSION }}-Darwin --strip-components=1 | |
rm QtSvg-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz | |
wget https://github.com/sunderme/homebrew-qt6-modules/releases/download/${{ env.OSX_QT_VERSION }}/Qt5Compat-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz | |
sudo tar xvf ./Qt5Compat-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz -C /usr/local/QtBase-${{ env.OSX_QT_VERSION }}-Darwin --strip-components=1 | |
rm Qt5Compat-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz | |
wget https://github.com/sunderme/homebrew-qt6-modules/releases/download/${{ env.OSX_QT_VERSION }}/QtTools-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz | |
sudo tar xvf ./QtTools-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz -C /usr/local/QtBase-${{ env.OSX_QT_VERSION }}-Darwin --strip-components=1 | |
rm QtTools-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz | |
wget https://github.com/sunderme/homebrew-qt6-modules/releases/download/${{ env.OSX_QT_VERSION }}/QtDeclarative-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz | |
sudo tar xvf ./QtDeclarative-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz -C /usr/local/QtBase-${{ env.OSX_QT_VERSION }}-Darwin --strip-components=1 | |
rm QtDeclarative-${{ env.OSX_QT_VERSION }}-Darwin-M1.tar.xz | |
wget https://github.com/sunderme/homebrew-qt6-modules/releases/download/${{ env.OSX_QT_VERSION }}/poppler-${{ env.OSX_POPPLER_VERSION }}-Darwin-M1.tar.xz | |
sudo tar xvf ./poppler-${{ env.OSX_POPPLER_VERSION}}-Darwin-M1.tar.xz -C /usr/local --strip-components=1 | |
rm poppler-${{ env.OSX_POPPLER_VERSION }}-Darwin-M1.tar.xz | |
wget https://github.com/sunderme/homebrew-qt6-modules/releases/download/${{ env.OSX_QT_VERSION }}/QuaZip-${{ env.OSX_QUAZIP_VERSION }}-Darwin-M1.tar.xz | |
sudo tar xvf ./QuaZip-${{ env.OSX_QUAZIP_VERSION }}-Darwin-M1.tar.xz -C /usr/local --strip-components=1 | |
rm QuaZip-${{ env.OSX_QUAZIP_VERSION }}-Darwin-M1.tar.xz | |
brew install cairo fontconfig freetype gettext jpeg libpng libtiff little-cms2 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 | |
touch texstudio.app/Contents/Resources/empty.lproj | |
- name: poppler data | |
run: | | |
cd build | |
wget https://poppler.freedesktop.org/poppler-data-0.4.12.tar.gz | |
tar xvf poppler-data-0.4.12.tar.gz | |
mkdir -p texstudio.app/Contents/share/poppler | |
cp -r poppler-data-0.4.12/cidToUnicode texstudio.app/Contents/share/poppler | |
cp -r poppler-data-0.4.12/cMap texstudio.app/Contents/share/poppler | |
cp -r poppler-data-0.4.12/nameToUnicode texstudio.app/Contents/share/poppler | |
cp -r poppler-data-0.4.12/unicodeMap texstudio.app/Contents/share/poppler | |
- name: Package | |
id: package | |
run: | | |
cd build | |
# /usr/local/QtBase-${{ env.OSX_QT_VERSION }}-Darwin/bin/macdeployqt texstudio.app -dmg | |
/usr/local/QtBase-${{ env.OSX_QT_VERSION }}-Darwin/bin/macdeployqt texstudio.app | |
codesign --force --deep --sign - texstudio.app | |
. ../.github/scripts/get-version.sh | |
cp -r texstudio.app ../texstudio-${GIT_VERSION}-osx-m1.app | |
mkdir ../app | |
mv texstudio.app ../app/texstudio-osx-m1-${VERSION_NAME}.app | |
cd .. | |
# zip -r texstudio-osx-m1-${VERSION_NAME}.zip texstudio-osx-m1-${VERSION_NAME}.app | |
zip -r texstudio-${GIT_VERSION}-osx-m1.zip texstudio-${GIT_VERSION}-osx-m1.app | |
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@v4 | |
with: | |
name: texstudio-osx-m1 | |
path: app | |
# path: texstudio-osx-m1-${{ steps.package.outputs.VERSION_NAME }}.zip | |
- name: Upload release file(s) | |
uses: actions/upload-artifact@v4 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
name: release-osx-m1 | |
path: texstudio-${{ steps.package.outputs.GIT_VERSION }}-osx-m1.zip | |
release: | |
permissions: | |
actions: write # for GeekyEggo/delete-artifact to delete artifacts | |
contents: write # for softprops/action-gh-release to create GitHub release | |
name: Release | |
needs: [build-win10, build-linux-release, macosx, macosxM1] # build-linux-win,macosx-qt5 is disabled | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') | |
steps: | |
- name: Download temp artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: release-* | |
merge-multiple: true | |
- 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@v2 | |
with: | |
prerelease: ${{ contains(github.ref, 'alpha') || contains(github.ref, 'beta') || contains(github.ref, 'rc') }} | |
files: ./* | |
- name: Delete temp artifacts | |
uses: GeekyEggo/delete-artifact@v5 | |
with: | |
name: release-* |