upgrade travis-ci packages building (#412)

* update README.md

* adjust travis-ci packages building

* add fedora 29

* change build order
This commit is contained in:
Ahmed Zetao Yang
2018-12-09 21:04:25 +08:00
committed by Dharkael
parent 94daa4fecd
commit f0c200d54a
13 changed files with 103 additions and 302 deletions

View File

@@ -1,4 +1,4 @@
dist: trusty
dist: xenial
sudo: required
language: cpp
@@ -13,37 +13,36 @@ cache:
env:
global:
# Environment variables for packpack
# Environment variables for
- PRODUCT=flameshot
- VERSION=0.6.0
- RELEASE=1
- ARCH=x86_64
# - DOCKER_REPO=packpack/packpack
# - DOCKER_REPO=vitzy/packpack
# Dockerfile from https://github.com/flameshotapp/flameshot-docker-images
- DOCKER_REPO=vitzy/flameshot
#The actual list of distribution is available on
#https://hub.docker.com/r/packpack/packpack/tags/
#https://hub.docker.com/r/vitzy/packpack/tags/
#https://hub.docker.com/r/vitzy/flameshot/tags/
# The actual list of distribution is available on
# https://hub.docker.com/r/vitzy/flameshot/tags/
matrix:
include:
- os: linux
# 27
env: OS=fedora DIST=27 EXTEN=rpm
services: docker
- os: linux
# 28
env: OS=fedora DIST=28 EXTEN=rpm
services: docker
- os: linux
# trusty: only for build & test & AppImage
# 14.04 LTS; Qt version is 5.2.1, flameshot not support
env: OS=ubuntu DIST=trusty EXTEN=AppImage
# 29
env: OS=fedora DIST=29 EXTEN=rpm
services: docker
- os: linux
# 16.04 LTS
env: OS=ubuntu DIST=xenial EXTEN=deb
services: docker
- os: linux
# 18.04
# 18.04 LTS
env: OS=ubuntu DIST=bionic EXTEN=deb
services: docker
- os: linux
@@ -54,26 +53,30 @@ matrix:
# 9
env: OS=debian DIST=stretch EXTEN=deb
services: docker
- os: linux
# No docker environment, just for CI build & test
# ubuntu xenial; default Qt version is 5.6.1
env: OS=ubuntu DIST=xenial EXTEN=other
# - os: osx
# compiler: clang
# osx_image: xcode9.2
before_install:
- chmod +x travis/*.sh
- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then source travis/linux_before_install.sh; fi
- chmod +x .travis/*.sh
- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then source .travis/linux_before_install.sh; fi
install:
- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then source travis/linux_install.sh; fi
- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then source .travis/linux_install.sh; fi
script:
# - git submodule update --init --recursive
# - git describe --long
- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then source travis/linux_script.sh; fi
# - if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then source travis/osx_script.sh; fi
- pwd && ls
- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then source .travis/linux_script.sh; fi
# - if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then source .travis/osx_script.sh; fi
after_success:
- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then source travis/linux_after_success.sh; fi
- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then source .travis/linux_after_success.sh; fi
- echo "Download URL is $TEMP_DOWNLOAD_URL ."
# deploy:
# # Deploy packages to Github Release

View File

@@ -4,24 +4,24 @@ set -e
DIST_PATH=dist
if [[ "${DIST}" == "trusty" ]]; then
travis_retry curl \
if [[ "${EXTEN}" == "other" ]]; then
TEMP_DOWNLOAD_URL=$(travis_retry curl \
--upload-file \
"${DIST_PATH}"/flameshot_${VERSION}_${ARCH}.${EXTEN} \
"https://transfer.sh/flameshot_${VERSION}_${ARCH}.${EXTEN}"
"${BUILD_DST_PATH}"/flameshot \
"https://transfer.sh/flameshot_${VERSION}_${ARCH}")
else
case "${OS}" in
"ubuntu"|"debian")
travis_retry curl \
TEMP_DOWNLOAD_URL=$(travis_retry curl \
--upload-file \
"${DIST_PATH}"/flameshot_${VERSION}_${DIST}_${ARCH}.${EXTEN} \
"https://transfer.sh/flameshot_${VERSION}_${DIST}_${ARCH}.${EXTEN}"
"https://transfer.sh/flameshot_${VERSION}_${DIST}_${ARCH}.${EXTEN}")
;;
"fedora")
travis_retry curl \
TEMP_DOWNLOAD_URL=$(travis_retry curl \
--upload-file \
"${DIST_PATH}"/flameshot_${VERSION}_fedora${DIST}_${ARCH}.${EXTEN} \
"https://transfer.sh/flameshot_${VERSION}_fedora${DIST}_${ARCH}.${EXTEN}"
"https://transfer.sh/flameshot_${VERSION}_fedora${DIST}_${ARCH}.${EXTEN}")
;;
esac
fi

View File

@@ -0,0 +1,7 @@
#!/bin/bash --
set -e
if [[ "${EXTEN}" == "other" ]]; then
travis_retry sudo apt update
fi

15
.travis/linux_install.sh Normal file
View File

@@ -0,0 +1,15 @@
#!/bin/bash --
set -e
if [[ "${EXTEN}" == "other" ]]; then
# Compile-time
travis_retry sudo apt install -y gcc g++ build-essential qt5-default qt5-qmake qttools5-dev-tools
# Run-time
travis_retry sudo apt install -y libqt5dbus5 libqt5network5 libqt5core5a libqt5widgets5 libqt5gui5 libqt5svg5-dev
# Optional
travis_retry sudo apt install -y openssl ca-certificates
# Install fcitx-frontend-qt5
travis_retry sudo apt install -y fcitx-frontend-qt5
fi

42
.travis/linux_script.sh Normal file
View File

@@ -0,0 +1,42 @@
#!/bin/bash --
set -e
DIST_PATH=dist
if [[ ! -d "${DIST_PATH}" ]]; then
mkdir "${DIST_PATH}"
fi
if [[ "${EXTEN}" == "other" ]]; then
project_dir="$(pwd)"
BUILD_DST_PATH=build-test
qmake --version
mkdir "${BUILD_DST_PATH}"
qmake -makefile DESTDIR="${BUILD_DST_PATH}" "${project_dir}"/flameshot.pro
# Building flameshot
make -j$(nproc)
# Running flameshot tests
make check -j$(nproc)
ls -alhR
else
travis_retry git clone https://github.com/flameshotapp/packpack.git
travis_retry packpack/packpack
pwd && ls
case "${OS}" in
"ubuntu"|"debian")
# copy deb to dist path for distribution
cp \
build/flameshot_*_*.deb \
"${DIST_PATH}"/flameshot_${VERSION}_${DIST}_${ARCH}.${EXTEN}
;;
"fedora")
cp \
build/flameshot-${VERSION}-${RELEASE}.*.${ARCH}.rpm \
"${DIST_PATH}"/flameshot_${VERSION}_fedora${DIST}_${ARCH}.${EXTEN}
;;
esac
fi

4
travis/osx_script.sh → .travis/osx_script.sh Executable file → Normal file
View File

@@ -48,8 +48,8 @@ cd ..
hdiutil create -srcfolder ./Flameshot -format UDBZ ./flameshot.dmg
mv flameshot.dmg flameshot_X64_${VERSION}.dmg
mv flameshot_X64_${VERSION}.dmg "${project_dir}"/dist/flameshot_X64_$VERSION.dmg
curl \
TEMP_DOWNLOAD_URL=$(curl \
--upload-file \
flameshot_X64_$VERSION.dmg \
"https://transfer.sh/flameshot_X64_$VERSION.dmg"
"https://transfer.sh/flameshot_X64_$VERSION.dmg")
cd ..

View File

@@ -25,9 +25,14 @@
<a href="https://github.com/lupoDharkael/flameshot/blob/master/LICENSE">
<img src="https://img.shields.io/github/license/lupoDharkael/flameshot.svg?style=flat-square" alt="License" />
</a>
<a href="https://github.com/flameshotapp/flameshotapp.github.io">
<img src="https://img.shields.io/github/release/lupoDharkael/flameshot.svg?style=flat-square&label=docs" alt="Docs" />
</a>
</p>
</div>
## Preview
![image](img/preview/animatedUsage.gif)
@@ -224,6 +229,8 @@ There are packages available for a few distros:
- [Void Linux](https://github.com/void-linux/void-packages/tree/master/srcpkgs/flameshot) (`xbps-install flameshot`)
- [Docker](https://github.com/ManuelLR/docker-flameshot)
- Fedora: `dnf install flameshot`
- [Snap/Flatpak/AppImage](https://github.com/flameshotapp/packages)
- Besides, generic packages availabe via [opensuse software repertory](https://software.opensuse.org//download.html?project=home%3AVitzy&package=flameshot)
## Compilation

View File

@@ -1,35 +0,0 @@
[Desktop Entry]
Name=Flameshot
Name[zh_CN]=火焰截图
GenericName=Screenshot tool
GenericName[zh_CN]=屏幕截图工具
GenericName[pl]=Zrzuty ekranu
GenericName[fr]=Outil de capture d'écran
Comment=Powerful yet simple to use screenshot software.
Comment[zh_CN]=强大又易用的屏幕截图软件
Comment[pl]=Proste w użyciu narzędzie do zrzutów ekranu
Comment[fr]=Logiciel de capture d'écran puissant et simple d'utilisation.
Keywords=flameshot;screenshot;capture;shutter;
Keywords[zh_CN]=flameshot;screenshot;capture;shutter;截图;屏幕;
Keywords[fr]=flameshot;capture d'écran;capter;shutter;
Exec=flameshot
Icon=${SNAP}/meta/gui/flameshot.png
Terminal=false
Type=Application
Categories=Graphics;
StartupNotify=false
Actions=Configure;Capture;
[Desktop Action Configure]
Name=Configure
Name[zh_CN]=配置
Name[pl]=Konfiguruj
Name[fr]=Configurer
Exec=flameshot config
[Desktop Action Capture]
Name=Take screenshot
Name[zh_CN]=进行截图
Name[pl]=Zrzut ekranu
Name[fr]=Prendre une capture d'écran
Exec=flameshot gui --delay 500

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -1,65 +0,0 @@
name: flameshot
version: git
icon: img/app/flameshot.svg
summary: Powerful yet simple to use screenshot software
description: |
A powerful open source screenshot and annotation tool for Linux, Flameshot
has a varied set of markup tools available, which include Freehand drawing,
Lines, Arrows, Boxes, Circles, Highlighting, Blur. Additionally, you can
customise the color, size and/or thickness of many of these image annotation
tools.
grade: devel # must be 'stable' to release into candidate/stable channels
confinement: strict # use 'strict' once you have the right plugs and slots
apps:
flameshot:
command: desktop-launch flameshot
environment:
LC_ALL: C.UTF-8
DISABLE_WAYLAND: 1
plugs:
- desktop
- desktop-legacy
- home
- network
- network-bind
- opengl
- pulseaudio
- unity7
- wayland
- x11
parts:
flameshot:
after:
- desktop-qt5
- indicator-qt5
plugin: qmake
qt-version: qt5
options:
- CONFIG+=packaging
source: .
source-type: git
build-packages:
- qt5-default
- qttools5-dev-tools
- libqt5svg5-dev
stage-packages:
- dbus-x11
- libgtk2.0-0
- openssl
- ca-certificates
desktop-qt5:
stage: [ -./**/lib/*/qt5/**/libappmenu-qt5.so ]
slots:
# Depending on in which environment we're running we either need
# to use the system or session DBus so we also need to have one
# slot for each.
flameshot-app:
interface: dbus
bus: session
name: org.dharkael.Flameshot

View File

@@ -1,15 +0,0 @@
#!/bin/bash --
set -e
if [[ "${DIST}" == "trusty" ]]; then
travis_retry sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
travis_retry sudo add-apt-repository -y ppa:beineri/opt-qt532-trusty
travis_retry sudo apt-get -qq update
# Get linuxdeployqt tool
travis_retry wget \
-c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" \
-O linuxdeployqt
chmod +x linuxdeployqt
fi

View File

@@ -1,27 +0,0 @@
#!/bin/bash --
set -e
if [[ "${DIST}" == "trusty" ]]; then
travis_retry sudo apt-get install -qq build-essential git
travis_retry sudo -E apt-get -yq \
--no-install-suggests --no-install-recommends --force-yes \
install openssl libssl-dev
#travis_retry sudo -E apt-get -yq \
# --no-install-suggests --no-install-recommends --force-yes \
# install libgl1-mesa-dev
travis_retry sudo -E apt-get -yq \
--no-install-suggests --no-install-recommends --force-yes \
install tree
travis_retry sudo apt-get install -qq gcc-4.9 g++-4.9
# Install qt5.3.2
travis_retry sudo apt-get -y install qt53base qt53tools qt53svg
# Install fcitx-frontend-qt5
travis_retry sudo apt-get -y install fcitx-frontend-qt5
fi

View File

@@ -1,131 +0,0 @@
#!/bin/bash --
set -e
DIST_PATH=dist
if [[ ! -d "${DIST_PATH}" ]]; then
mkdir "${DIST_PATH}"
fi
if [[ "${DIST}" == "trusty" ]]; then
project_dir="$(pwd)"
BUILD_DST_PATH=build-test
APPIMAGE_DST_PATH=build-appimage
#source /opt/qt53/bin/qt53-env.sh
QT_BASE_DIR=/opt/qt53
export QTDIR="${QT_BASE_DIR}"
export PATH="${QT_BASE_DIR}"/bin:"${PATH}"
export LD_LIBRARY_PATH="${QT_BASE_DIR}"/lib/x86_64-linux-gnu:"${QT_BASE_DIR}"/lib:"${LD_LIBRARY_PATH}"
export PKG_CONFIG_PATH="${QT_BASE_DIR}"/lib/pkgconfig:"${PKG_CONFIG_PATH}"
qmake --version
export CC=gcc-4.9 CXX=g++-4.9
mkdir "${BUILD_DST_PATH}"
qmake QMAKE_CXX="${CXX}" QMAKE_CC="${CC}" QMAKE_LINK="${CXX}" DESTDIR="${BUILD_DST_PATH}"
# Building flameshot
make -j$(nproc)
# Running flameshot tests
make check -j$(nproc)
ls -alhR
#
# Packaging AppImage using linuxdeployqt
#
mkdir -p "${APPIMAGE_DST_PATH}"/appdir/usr/bin
mkdir -p "${APPIMAGE_DST_PATH}"/appdir/usr/share/applications
mkdir -p "${APPIMAGE_DST_PATH}"/appdir/usr/share/dbus-1/interfaces
mkdir -p "${APPIMAGE_DST_PATH}"/appdir/usr/share/dbus-1/services
mkdir -p "${APPIMAGE_DST_PATH}"/appdir/usr/share/metainfo
mkdir -p "${APPIMAGE_DST_PATH}"/appdir/usr/share/bash-completion/completions
mkdir -p "${APPIMAGE_DST_PATH}"/appdir/usr/share/flameshot/translations
cp \
"${BUILD_DST_PATH}"/flameshot \
"${APPIMAGE_DST_PATH}"/appdir/usr/bin/
cp \
"${project_dir}"/dbus/org.dharkael.Flameshot.xml \
"${APPIMAGE_DST_PATH}"/appdir/usr/share/dbus-1/interfaces/
cp \
"${project_dir}"/dbus/package/org.dharkael.Flameshot.service \
"${APPIMAGE_DST_PATH}"/appdir/usr/share/dbus-1/services/
cp \
"${project_dir}"/docs/appdata/flameshot.appdata.xml \
"${APPIMAGE_DST_PATH}"/appdir/usr/share/metainfo/
cp \
"${project_dir}"/docs/bash-completion/flameshot \
"${APPIMAGE_DST_PATH}"/appdir/usr/share/bash-completion/completions/
cp \
"${project_dir}"/translations/*.qm \
"${APPIMAGE_DST_PATH}"/appdir/usr/share/flameshot/translations/
cp \
"${project_dir}"/docs/desktopEntry/package/* \
"${APPIMAGE_DST_PATH}"/appdir/usr/share/applications/
cp \
"${project_dir}"/img/app/flameshot.png \
"${APPIMAGE_DST_PATH}"/appdir/
ls -alhR "${APPIMAGE_DST_PATH}"/appdir
# Copy other project files
cp "${project_dir}"/README.md "${APPIMAGE_DST_PATH}"/appdir/README.md
cp "${project_dir}"/LICENSE "${APPIMAGE_DST_PATH}"/appdir/LICENSE
echo "${VERSION}" > "${APPIMAGE_DST_PATH}"/appdir/version
echo "${TRAVIS_COMMIT}" >> "${APPIMAGE_DST_PATH}"/appdir/version
# Configure env vars
unset QTDIR
unset QT_PLUGIN_PATH
unset LD_LIBRARY_PATH
tree "${APPIMAGE_DST_PATH}"/appdir
# Packaging
# -verbose=2
./linuxdeployqt "${APPIMAGE_DST_PATH}"/appdir/usr/bin/flameshot -bundle-non-qt-libs
rm -f "${APPIMAGE_DST_PATH}"/appdir/usr/lib/libatk-1.0.so.0
cp \
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so \
"${APPIMAGE_DST_PATH}"/appdir/usr/plugins/platforminputcontexts/
cd "${APPIMAGE_DST_PATH}"/appdir/usr/bin
ln -sf ../plugins/platforms/ . # An unknown bug
ln -sf ../share/flameshot/translations/ . # add translation soft link
cd "${project_dir}"
# -verbose=2
./linuxdeployqt "${APPIMAGE_DST_PATH}"/appdir/usr/share/applications/flameshot.desktop -appimage
ls -alhR -- *.AppImage
cp -- *.AppImage "${APPIMAGE_DST_PATH}"/
tree "${APPIMAGE_DST_PATH}"/
ls -l "${APPIMAGE_DST_PATH}"/*.AppImage
# Rename AppImage and move AppImage to DIST_PATH
cd "${APPIMAGE_DST_PATH}"
mv Flameshot-${VERSION}-${ARCH}.AppImage flameshot_${VERSION}_${ARCH}.AppImage
cd ..
cp \
"${APPIMAGE_DST_PATH}"/flameshot_${VERSION}_${ARCH}.AppImage \
"${DIST_PATH}"/flameshot_${VERSION}_${ARCH}.${EXTEN}
pwd
else
travis_retry git clone https://github.com/flameshotapp/packpack.git
travis_retry packpack/packpack
pwd && ls
case "${OS}" in
"ubuntu"|"debian")
# copy deb to dist path for distribution
cp \
build/flameshot_*_*.deb \
"${DIST_PATH}"/flameshot_${VERSION}_${DIST}_${ARCH}.${EXTEN}
;;
"fedora")
cp \
build/flameshot-${VERSION}-${RELEASE}.*.${ARCH}.rpm \
"${DIST_PATH}"/flameshot_${VERSION}_fedora${DIST}_${ARCH}.${EXTEN}
;;
esac
fi