feat: add highlight color for favorites buttons issue #3885 #2070
This file contains hidden or 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: Packaging(Linux) | |
on: | |
push: | |
branches: | |
- master | |
- fix* | |
paths-ignore: | |
- 'README.md' | |
- 'LICENSE' | |
- 'docs/**' | |
pull_request: | |
paths-ignore: | |
- 'README.md' | |
- 'LICENSE' | |
- 'docs/**' | |
env: | |
PRODUCT: flameshot | |
RELEASE: 1 | |
# dockerfiles, see https://github.com/flameshot-org/flameshot-dockerfiles | |
# docker images, see https://quay.io/repository/flameshot-org/ci-building | |
DOCKER_REPO: quay.io/flameshot-org/ci-building | |
# building tool: https://github.com/flameshot-org/packpack | |
PACKPACK_REPO: flameshot-org/packpack | |
jobs: | |
deb-pack: | |
name: Build deb on ${{ matrix.dist.name }} ${{ matrix.dist.arch }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
dist: | |
- { | |
name: debian-11, | |
os: debian, | |
symbol: bullseye, | |
arch: amd64 | |
} | |
- { | |
name: debian-11, | |
os: debian, | |
symbol: bullseye, | |
arch: arm64 | |
} | |
- { | |
name: debian-11, | |
os: debian, | |
symbol: bullseye, | |
arch: armhf | |
} | |
- { | |
name: debian-12, | |
os: debian, | |
symbol: bookworm, | |
arch: amd64 | |
} | |
- { | |
name: debian-12, | |
os: debian, | |
symbol: bookworm, | |
arch: arm64 | |
} | |
- { | |
name: debian-12, | |
os: debian, | |
symbol: bookworm, | |
arch: armhf | |
} | |
- { | |
name: ubuntu-20.04, | |
os: ubuntu, | |
symbol: focal, | |
arch: amd64 | |
} | |
- { | |
name: ubuntu-22.04, | |
os: ubuntu, | |
symbol: jammy, | |
arch: amd64 | |
} | |
- { | |
name: ubuntu-24.04, | |
os: ubuntu, | |
symbol: noble, | |
arch: amd64 | |
} | |
steps: | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Checkout Source code | |
if: github.event_name == 'push' | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: master | |
- name: Checkout Source code | |
if: github.event_name == 'pull_request' | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Set env & Print flameshot version | |
shell: bash | |
run: | | |
last_committed_tag=$(git tag -l --sort=-v:refname | head -1) | |
git_revno=$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count) | |
git_hash=$(git rev-parse --short HEAD) | |
ver_info=${last_committed_tag}+git${git_revno}.${git_hash} | |
echo "=======FLAMESHOT VERSION========" | |
echo ${last_committed_tag:1} | |
echo "Details: ${ver_info}" | |
echo "================================" | |
echo "VERSION=${last_committed_tag:1}" >> $GITHUB_ENV | |
echo "VER_INFO=${ver_info}" >> $GITHUB_ENV | |
- name: Get packpack tool | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ env.PACKPACK_REPO }} | |
path: tools | |
ref: multiarch | |
set-safe-directory: $GITHUB_WORKSPACE/tools | |
- name: Packaging on ${{ matrix.dist.name }} ${{ matrix.dist.arch }} | |
env: | |
OS: ${{ matrix.dist.os }} | |
DIST: ${{ matrix.dist.symbol }} | |
DOCKER_ARCH: ${{ matrix.dist.arch }} | |
run: | | |
case ${DOCKER_ARCH} in | |
arm32v7) | |
export ARCH=arm/v7 | |
;; | |
armhf) | |
export ARCH=arm/v7 | |
;; | |
arm64*) | |
export ARCH=arm64 | |
;; | |
*) | |
export ARCH=${DOCKER_ARCH} | |
;; | |
esac | |
cp -r $GITHUB_WORKSPACE/packaging/debian $GITHUB_WORKSPACE | |
bash $GITHUB_WORKSPACE/tools/packpack | |
mv $GITHUB_WORKSPACE/build/${PRODUCT}_${VERSION}-${RELEASE}_${{ matrix.dist.arch }}.deb $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.${{ matrix.dist.name }}.${{ matrix.dist.arch }}.deb | |
- name: SHA256Sum of ${{ matrix.dist.name }} ${{ matrix.dist.arch }} package | |
run: | | |
cd "$GITHUB_WORKSPACE/build/" || { >&2 echo "Cannot cd to '$GITHUB_WORKSPACE/build/'!"; exit 11 ; } | |
sha256sum ${PRODUCT}-${VERSION}-${RELEASE}.${{ matrix.dist.name }}.${{ matrix.dist.arch }}.deb | tee ${PRODUCT}-${VERSION}-${RELEASE}.${{ matrix.dist.name }}.${{ matrix.dist.arch }}.deb.sha256sum | |
- name: Artifact Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.PRODUCT }}-${{ env.VER_INFO }}-artifact-${{ matrix.dist.name }}-${{ matrix.dist.arch }} | |
path: | | |
${{ github.workspace }}/build/${{ env.PRODUCT }}-*-${{ env.RELEASE }}.${{ matrix.dist.name }}.${{ matrix.dist.arch }}.deb | |
${{ github.workspace }}/build/${{ env.PRODUCT }}-*-${{ env.RELEASE }}.${{ matrix.dist.name }}.${{ matrix.dist.arch }}.deb.sha256sum | |
overwrite: true | |
rpm-pack: | |
name: Build rpm on ${{ matrix.dist.name }} ${{ matrix.dist.arch }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
dist: | |
- { | |
name: fedora-40, | |
os: fedora, | |
symbol: 40, | |
arch: x86_64 | |
} | |
- { | |
name: fedora-41, | |
os: fedora, | |
symbol: 41, | |
arch: x86_64 | |
} | |
- { | |
name: opensuse-leap-15.6, | |
os: opensuse-leap, | |
symbol: 15.6, | |
arch: x86_64 | |
} | |
steps: | |
- name: Checkout Source code | |
if: github.event_name == 'push' | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: master | |
- name: Checkout Source code | |
if: github.event_name == 'pull_request' | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Set env & Print flameshot version | |
shell: bash | |
run: | | |
last_committed_tag=$(git tag -l --sort=-v:refname | head -1) | |
git_revno=$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count) | |
git_hash=$(git rev-parse --short HEAD) | |
ver_info=${last_committed_tag}+git${git_revno}.${git_hash} | |
echo "=======FLAMESHOT VERSION========" | |
echo ${last_committed_tag:1} | |
echo "Details: ${ver_info}" | |
echo "================================" | |
echo "VERSION=${last_committed_tag:1}" >> $GITHUB_ENV | |
echo "VER_INFO=${ver_info}" >> $GITHUB_ENV | |
- name: Get packpack tool | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ env.PACKPACK_REPO }} | |
path: tools | |
ref: master | |
set-safe-directory: $GITHUB_WORKSPACE/tools | |
- name: Packaging on ${{ matrix.dist.name }} ${{ matrix.dist.arch }} | |
if: matrix.dist.os == 'fedora' | |
run: | | |
mkdir $GITHUB_WORKSPACE/rpm | |
cp $GITHUB_WORKSPACE/packaging/rpm/fedora/flameshot.spec $GITHUB_WORKSPACE/rpm | |
bash $GITHUB_WORKSPACE/tools/packpack | |
env: | |
OS: ${{ matrix.dist.os }} | |
DIST: ${{ matrix.dist.symbol }} | |
- name: Packaging on ${{ matrix.dist.name }} ${{ matrix.dist.arch }} | |
if: matrix.dist.os == 'opensuse-leap' | |
run: | | |
mkdir $GITHUB_WORKSPACE/rpm | |
cp $GITHUB_WORKSPACE/packaging/rpm/opensuse/flameshot.spec $GITHUB_WORKSPACE/rpm | |
bash $GITHUB_WORKSPACE/tools/packpack | |
env: | |
OS: ${{ matrix.dist.os }} | |
DIST: ${{ matrix.dist.symbol }} | |
- name: Package Clean | |
if: matrix.dist.os == 'fedora' | |
run: | | |
rm -f ${{ github.workspace }}/build/${{ env.PRODUCT }}-debuginfo-*.rpm | |
rm -f ${{ github.workspace }}/build/${{ env.PRODUCT }}-debugsource-*.rpm | |
rm -f ${{ github.workspace }}/build/${{ env.PRODUCT }}-*.src.rpm | |
rm -f ${{ github.workspace }}/build/build.log | |
- name: SHA256Sum of ${{ matrix.dist.name }} ${{ matrix.dist.arch }} package | |
if: matrix.dist.os == 'fedora' | |
run: | | |
cd "$GITHUB_WORKSPACE/build/" || { >&2 echo "Cannot cd to '$GITHUB_WORKSPACE/build/'!"; exit 11 ; } | |
sha256sum ${PRODUCT}-${VERSION}-${RELEASE}.fc*.${{ matrix.dist.arch }}.rpm | tee ${PRODUCT}-${VERSION}-${RELEASE}.fc${{ matrix.dist.symbol }}.${{ matrix.dist.arch }}.rpm.sha256sum | |
- name: SHA256Sum of ${{ matrix.dist.name }} ${{ matrix.dist.arch }} package | |
if: matrix.dist.os == 'opensuse-leap' | |
run: | | |
mv $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-lp*.${{ matrix.dist.arch }}.rpm $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}-lp${{ matrix.dist.symbol }}.${{ matrix.dist.arch }}.rpm | |
cd "$GITHUB_WORKSPACE/build/" || { >&2 echo "Cannot cd to '$GITHUB_WORKSPACE/build/'!"; exit 11 ; } | |
sha256sum ${PRODUCT}-${VERSION}-${RELEASE}-lp${{ matrix.dist.symbol }}.${{ matrix.dist.arch }}.rpm | tee ${PRODUCT}-${VERSION}-${RELEASE}-lp${{ matrix.dist.symbol }}.${{ matrix.dist.arch }}.rpm.sha256sum | |
- name: Artifact Upload | |
if: matrix.dist.os == 'fedora' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.PRODUCT }}-${{ env.VER_INFO }}-artifact-${{ matrix.dist.name }}-${{ matrix.dist.arch }} | |
path: | | |
${{ github.workspace }}/build/ | |
overwrite: true | |
- name: Artifact Upload | |
if: matrix.dist.os == 'opensuse-leap' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.PRODUCT }}-${{ env.VER_INFO }}-artifact-${{ matrix.dist.name }}-${{ matrix.dist.arch }} | |
path: | | |
${{ github.workspace }}/build/${{ env.PRODUCT }}-*-lp${{ matrix.dist.symbol }}.${{ matrix.dist.arch }}.rpm | |
${{ github.workspace }}/build/${{ env.PRODUCT }}-*-lp${{ matrix.dist.symbol }}.${{ matrix.dist.arch }}.rpm.sha256sum | |
overwrite: true | |
appimage-pack: | |
name: Build appimage on ${{ matrix.config.name }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { | |
name: ubuntu-22.04, | |
os: ubuntu, | |
symbol: jammy, | |
arch: amd64, | |
image_repo: quay.io/flameshot-org/ci-building | |
} | |
container: | |
image: ${{ matrix.config.image_repo }}:${{ matrix.config.os }}-${{ matrix.config.symbol }} | |
options: --cap-add SYS_ADMIN --device /dev/fuse --security-opt apparmor:unconfined | |
steps: | |
- name: | |
shell: bash | |
run: | | |
git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
- name: Checkout Source code | |
if: github.event_name == 'push' | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: master | |
- name: Checkout Source code | |
if: github.event_name == 'pull_request' | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Set env & Print flameshot version | |
shell: bash | |
run: | | |
last_committed_tag=$(git tag -l --sort=-v:refname | head -1) | |
git_revno=$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count) | |
git_hash=$(git rev-parse --short HEAD) | |
ver_info=${last_committed_tag}+git${git_revno}.${git_hash} | |
echo "=======FLAMESHOT VERSION========" | |
echo ${last_committed_tag:1} | |
echo "Details: ${ver_info}" | |
echo "================================" | |
echo "VERSION=${last_committed_tag:1}" >> $GITHUB_ENV | |
echo "VER_INFO=${ver_info}" >> $GITHUB_ENV | |
- name: Install Dependencies | |
run: | | |
sudo apt-get -y -qq update | |
sudo apt-get -y --no-install-recommends install \ | |
python3 \ | |
python3-pip \ | |
fuse \ | |
patchelf \ | |
cmake \ | |
extra-cmake-modules \ | |
build-essential \ | |
qt5-qmake \ | |
qtbase5-dev \ | |
qtbase5-dev-tools \ | |
qttools5-dev-tools \ | |
qttools5-dev \ | |
libqt5dbus5 \ | |
libqt5network5 \ | |
libqt5core5a \ | |
libqt5widgets5 \ | |
libqt5gui5 \ | |
libqt5svg5-dev \ | |
appstream \ | |
hicolor-icon-theme \ | |
fcitx-frontend-qt5 \ | |
openssl \ | |
ca-certificates \ | |
jq | |
- name: Get go-appimage tool | |
# Will not use linuxdeployqt anymore, because it suopprts currently still-supported mainstream distribution, | |
# which is glibc 2.23. For more information, please see https://github.com/probonopd/linuxdeployqt/issues/340. | |
# Will try new tool https://github.com/probonopd/go-appimage written in golang by probonopd. | |
run: | | |
wget $(curl https://api.github.com/repos/probonopd/go-appimage/releases | jq -r '.[] | select(.tag_name == "continuous") | .assets[] | select((.name | endswith("x86_64.AppImage")) and (.name | contains("appimagetool"))) | .browser_download_url') -O appimagetool | |
chmod +x appimagetool | |
env: | |
APPIMAGETOOL_ARCH: x86_64 | |
- name: Packaging appimage | |
run: | | |
set -x | |
APPIMAGE_DST_PATH=$GITHUB_WORKSPACE/${PRODUCT}.AppDir | |
mkdir -p ${APPIMAGE_DST_PATH} | |
cd $GITHUB_WORKSPACE | |
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr -DUSE_LAUNCHER_ABSOLUTE_PATH:BOOL=OFF | |
make -j$(nproc) DESTDIR=${APPIMAGE_DST_PATH} install | |
$GITHUB_WORKSPACE/appimagetool -s deploy "${APPIMAGE_DST_PATH}/usr/share/applications/org.flameshot.Flameshot.desktop" | |
mkdir -p ${APPIMAGE_DST_PATH}/usr/plugins/platforminputcontexts | |
cp \ | |
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so \ | |
${APPIMAGE_DST_PATH}/usr/plugins/platforminputcontexts/ | |
cp \ | |
$GITHUB_WORKSPACE/data/img/app/org.flameshot.Flameshot.png \ | |
${APPIMAGE_DST_PATH}/ | |
if [ -f "${APPIMAGE_DST_PATH}/lib/x86_64-linux-gnu/libxcb-glx.so.0" ]; then | |
rm ${APPIMAGE_DST_PATH}/lib/x86_64-linux-gnu/libxcb-glx.so.0 | |
fi | |
chmod +x ${APPIMAGE_DST_PATH}/usr/lib64/ld-*.so.* | |
VERSION=${VERSION} $GITHUB_WORKSPACE/appimagetool "${APPIMAGE_DST_PATH}" | |
mv $GITHUB_WORKSPACE/Flameshot-${VERSION}-x86_64.AppImage $GITHUB_WORKSPACE/Flameshot-${VERSION}.x86_64.AppImage | |
- name: SHA256Sum of appimage package | |
run: | | |
cd "$GITHUB_WORKSPACE/" || { >&2 echo "Cannot cd to '$GITHUB_WORKSPACE/'!"; exit 11 ; } | |
sha256sum Flameshot-${VERSION}.x86_64.AppImage | tee Flameshot-${VERSION}.x86_64.AppImage.sha256sum | |
- name: Artifact Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.PRODUCT }}-${{ env.VER_INFO }}-artifact-appimage-x86_64 | |
path: | | |
${{ github.workspace }}/Flameshot-*.x86_64.AppImage | |
${{ github.workspace }}/Flameshot-*.x86_64.AppImage.sha256sum | |
overwrite: true | |
flatpak-pack: | |
name: Build flatpak on ubuntu 22.04 | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout Source code | |
if: github.event_name == 'push' | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: master | |
- name: Checkout Source code | |
if: github.event_name == 'pull_request' | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Set env & Print flameshot version | |
shell: bash | |
run: | | |
last_committed_tag=$(git tag -l --sort=-v:refname | head -1) | |
git_revno=$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count) | |
git_hash=$(git rev-parse --short HEAD) | |
ver_info=${last_committed_tag}+git${git_revno}.${git_hash} | |
echo "=======FLAMESHOT VERSION========" | |
echo ${last_committed_tag:1} | |
echo "Details: ${ver_info}" | |
echo "================================" | |
echo "VERSION=${last_committed_tag:1}" >> $GITHUB_ENV | |
echo "VER_INFO=${ver_info}" >> $GITHUB_ENV | |
- name: Setup flatpak | |
run: | | |
sudo apt-get -y -qq update | |
sudo apt-get install -y flatpak flatpak-builder | |
- name: Setup Flathub | |
run: | | |
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo | |
flatpak install -y --noninteractive flathub org.kde.Sdk//5.15 org.kde.Platform//5.15 | |
- name: Packaging flatpak | |
run: | | |
BUNDLE="org.flameshot.Flameshot_${VERSION}_x86_64.flatpak" | |
MANIFEST_PATH=$GITHUB_WORKSPACE/packaging/flatpak/org.flameshot.Flameshot.yml | |
RUNTIME_REPO="https://flathub.org/repo/flathub.flatpakrepo" | |
APP_ID="org.flameshot.Flameshot" | |
BRANCH="master" | |
flatpak-builder --user --disable-rofiles-fuse --repo=repo --force-clean flatpak_app ${MANIFEST_PATH} --install-deps-from=flathub | |
flatpak build-bundle repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} ${APP_ID} ${BRANCH} | |
mv $GITHUB_WORKSPACE/org.flameshot.Flameshot_${VERSION}_x86_64.flatpak $GITHUB_WORKSPACE/org.flameshot.Flameshot-${VERSION}.x86_64.flatpak | |
- name: SHA256Sum of flatpak package | |
run: | | |
cd "$GITHUB_WORKSPACE/" || { >&2 echo "Cannot cd to '$GITHUB_WORKSPACE/'!"; exit 11 ; } | |
sha256sum org.flameshot.Flameshot-${VERSION}.x86_64.flatpak | tee org.flameshot.Flameshot-${VERSION}.x86_64.flatpak.sha256sum | |
- name: Artifact Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.PRODUCT }}-${{ env.VER_INFO }}-artifact-flatpak-x86_64 | |
path: | | |
${{ github.workspace }}/org.flameshot.Flameshot-*.x86_64.flatpak | |
${{ github.workspace }}/org.flameshot.Flameshot-*.x86_64.flatpak.sha256sum | |
overwrite: true | |
snap-pack: | |
name: Build snap on ubuntu 22.04 | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout Source code | |
if: github.event_name == 'push' | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: master | |
- name: Checkout Source code | |
if: github.event_name == 'pull_request' | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Set env & Print flameshot version | |
shell: bash | |
run: | | |
last_committed_tag=$(git tag -l --sort=-v:refname | head -1) | |
git_revno=$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count) | |
git_hash=$(git rev-parse --short HEAD) | |
ver_info=${last_committed_tag}+git${git_revno}.${git_hash} | |
echo "=======FLAMESHOT VERSION========" | |
echo ${last_committed_tag:1} | |
echo "Details: ${ver_info}" | |
echo "================================" | |
echo "VERSION=${last_committed_tag:1}" >> $GITHUB_ENV | |
echo "VER_INFO=${ver_info}" >> $GITHUB_ENV | |
- name: Packaging snap | |
uses: snapcore/action-build@v1 | |
id: snapcraft | |
with: | |
snapcraft-args: --enable-experimental-extensions | |
- name: Rename snap name | |
shell: bash | |
run: | | |
mkdir -p $GITHUB_WORKSPACE/build | |
cp ${{ steps.snapcraft.outputs.snap }} $GITHUB_WORKSPACE/build/${PRODUCT}-${VERSION}-${RELEASE}.amd64.snap | |
- name: SHA256Sum of snap package | |
run: | | |
cd "$GITHUB_WORKSPACE/build/" || { >&2 echo "Cannot cd to '$GITHUB_WORKSPACE/build/'!"; exit 11 ; } | |
sha256sum ${PRODUCT}-${VERSION}-${RELEASE}.amd64.snap | tee ${PRODUCT}-${VERSION}-${RELEASE}.amd64.snap.sha256sum | |
- name: Artifact Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.PRODUCT }}-${{ env.VER_INFO }}-artifact-snap-x86_64 | |
path: | | |
${{ github.workspace }}/build/${{ env.PRODUCT }}-*-${{ env.RELEASE }}.amd64.snap | |
${{ github.workspace }}/build/${{ env.PRODUCT }}-*-${{ env.RELEASE }}.amd64.snap.sha256sum | |
overwrite: true |