CI cleanup/updates

- Create versioned snapshots
  - include MacOS build -- still needs test and deploy steps
  - include barcode and libqrencode in Linux build
  - include libqrencode in Windows build

  Updated README and TODO files.
This commit is contained in:
Jim Evins
2019-10-06 16:46:57 -04:00
parent 34efe8ddb3
commit 1a900d0ebc
4 changed files with 187 additions and 92 deletions
+12 -6
View File
@@ -1,7 +1,6 @@
# Build glabels windows installer. # Build glabels windows installer.
# #
# Currently, only builds snapshots and is truggered by the travis CI AppImage build, which # Currently, only builds snapshots and is triggered by the travis CI build.
# moves the "continuous" release/tag to head. This script deploys into this moved release.
version: 3.99.0.{build} version: 3.99.0.{build}
@@ -23,25 +22,32 @@ init:
- git config --global core.autocrlf true - git config --global core.autocrlf true
install: install:
# Locate Qt installation
- set QTDIR=c:\Qt\5.11\msvc2017_64 - set QTDIR=c:\Qt\5.11\msvc2017_64
- set PATH=%PATH%;%QTDIR%/bin - set PATH=%PATH%;%QTDIR%\bin
# Zlib and QREncode
- vcpkg install zlib:x64-windows
- vcpkg install libqrencode:x64-windows
- vcpkg integrate install
build_script: build_script:
- git checkout master # re-attach to master to satisfy auto version tooling - git checkout master # re-attach to master to satisfy auto version tooling
- mkdir build - mkdir build
- cd build - cd build
- cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_PREFIX_PATH=%QTDIR% .. - cmake -G "Visual Studio 15 2017 Win64" .. -DCMAKE_PREFIX_PATH=%QTDIR% -DCMAKE_TOOLCHAIN_FILE=C:/Tools/vcpkg/scripts/buildsystems/vcpkg.cmake
- cmake --build . --config Release - cmake --build . --config Release
- ctest -C Release - ctest -C Release
- cpack -C Release -G NSIS64 - cpack -C Release -G NSIS64
- set /P VERSION=<VERSION
- move glabels-3.99.0-win64.exe glabels-%VERSION%-win64.exe
artifacts: artifacts:
- path: build\glabels-3.99.0-win64.exe - path: build\glabels-%VERSION%-win64.exe
name: windows-installer name: windows-installer
deploy: deploy:
- provider: GitHub - provider: GitHub
release: continuous release: glabels-%VERSION%
artifact: windows-installer artifact: windows-installer
auth_token: auth_token:
secure: mPNNgwWP58gu4eA2wVwGkGWNTzJigKj1g/XjsZ9vk03rLMmf5fxC/XNr15fPBCi8 secure: mPNNgwWP58gu4eA2wVwGkGWNTzJigKj1g/XjsZ9vk03rLMmf5fxC/XNr15fPBCi8
+116 -39
View File
@@ -1,48 +1,125 @@
language: cpp language: cpp
compiler: gcc
sudo: require
dist: trusty
before_install:
- sudo add-apt-repository ppa:beineri/opt-qt591-trusty -y
- sudo apt-get update -qq
install:
- sudo apt-get -y install qt59base qt59svg qt59tools qt59translations zlib1g-dev xvfb
- sudo apt-get -y install barcode libqrencode-dev
- wget https://downloads.sourceforge.net/project/zint/zint/2.6.3/zint-2.6.3_final.tar.gz && tar xzf zint-2.6.3_final.tar.gz && cd zint-2.6.3.src && mkdir build && cd build && cmake .. && make && sudo make install && cd ../..
- source /opt/qt5*/bin/qt5*-env.sh
script:
- git fetch --unshallow # restore repository depth to properly count commits in auto versioning
- git checkout master # re-attach to master to satisfy auto versioning
- mkdir build
- cd build
- cmake .. -DCMAKE_INSTALL_PREFIX=/usr
- make -j4
- xvfb-run make test
- sudo make DESTDIR=appdir install ; sudo chown -R $USER appdir ; find appdir/
after_success:
- wget -c "https://github.com/jimevins/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
- chmod a+x linuxdeployqt*.AppImage
- unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
- export LD_LIBRARY_PATH=/opt/qt*/lib/:/usr/local/lib:$LD_LIBRARY_PATH
- ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -bundle-non-qt-libs
- ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -appimage
- find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq
- ls -lh ./gLabels*.AppImage
- mv ./gLabels*.AppImage glabels-continuous-x86_64.AppImage
- wget -c https://github.com/jimevins/uploadtool/raw/master/upload.sh
- bash ./upload.sh glabels-continuous-x86_64.AppImage
# blocklist
branches: branches:
except: except:
- /.*/ - /.*/ # Everything
- # Do not build tags that we create when we upload to GitHub Releases
- /^(?i:continuous)$/
# safelist
branches: branches:
only: only:
- master - master
matrix:
include:
#####################
#
# Linux build
#
#####################
- name: "Linux"
os: linux
dist: bionic
sudo: require
env:
- QMAKE_PATH=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake
install:
- sudo apt-get -y install qtbase5-dev libqt5svg5-dev qttools5-dev
- sudo apt-get -y install xvfb
- sudo apt-get -y install pkgconf libqrencode-dev
- sudo apt-get -y install barcode
# Install zint from source
- wget https://downloads.sourceforge.net/project/zint/zint/2.6.5/zint-2.6.5.tar.gz && tar xzf zint-2.6.5.tar.gz && ( cd zint-2.6.5 && mkdir build && cd build && cmake .. && make && sudo make install )
- export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
before_script:
- git fetch --unshallow # restore repository depth to properly count commits in auto versioning
- git checkout master # re-attach to master to satisfy auto versioning
script:
- mkdir build
- cd build
- cmake .. -DCMAKE_INSTALL_PREFIX=/usr
- make -j4
- xvfb-run ctest
- VERSION=$(cat VERSION)
after_success:
# Download AppImage QT deployment tool (local snapshot -- original at github/probono)
- wget -c "https://github.com/jimevins/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
- chmod a+x linuxdeployqt*.AppImage
#
# Create AppImage
#
- make DESTDIR=appdir install
- unset QTDIR; unset QT_PLUGIN_PATH
- ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmake=${QMAKE_PATH} -bundle-non-qt-libs
- ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmake=${QMAKE_PATH} -appimage
- mv ./gLabels*.AppImage glabels-${VERSION}-x86_64.AppImage
before_deploy:
- git config --local user.name "Jim Evins (Travis CI)"
- git config --local user.email evins@snaught.com
- git tag -f -a glabels-${VERSION} -m "glabels-${VERSION} CI"
deploy:
provider: releases
api_key: ${GITHUB_TOKEN}
file:
- glabels-${VERSION}-x86_64.AppImage
draft: false
prerelease: true
skip_cleanup: true
#####################
#
# MacOS build
#
#####################
- name: "MacOS"
os: osx
install:
- brew install qt
before_script:
- git fetch --unshallow # restore repository depth to properly count commits in auto versioning
- git checkout master # re-attach to master to satisfy auto versioning
script:
- mkdir build
- cd build
- cmake .. -DCMAKE_PREFIX_PATH=/usr/local/opt/qt
- make -j4
#- ctest --verbose
- VERSION=$(cat VERSION)
# #####################
# #
# # Windows build
# #
# #####################
# - name: "Windows"
# os: windows
#
# before_script:
# - git fetch --unshallow # restore repository depth to properly count commits in auto versioning
# - git checkout master # re-attach to master to satisfy auto versioning
#
# script:
# - mkdir build
# - cd build
# #- cmake .. -G "Visual Studio 15 2017 Win64"
# #- cmake --build . --config Release
# #- ctest -C Release
# #- VERSION=$(cat VERSION)
#
# after_success:
# #
# # Create Windows Installer
# #
# #- cpack -C Release -G NSIS64
+23 -43
View File
@@ -9,24 +9,17 @@
## What is gLabels-qt? ## What is gLabels-qt?
gLabels-qt is the development version of the next major version of gLabels (4.0). gLabels-qt is the development version of the next major version of gLabels (a.k.a. glabels-4).
## What's new in gLabels 4? ## What's new in gLabels 4?
- Based on the Qt5 framework. - A complete rewrite, based on the Qt5 framework.
- Updated UI based on typical workflows. - A new UI layout based on common activities.
- Intended to be a cross-platform application. - Cross-platform support
* So far, it has been built and tested under Linux, Windows 7, and Windows 10. (Windows testing is still very intermittent.) - User-defined variables
- Support for continuous-roll labels
- Many new product templates
## Status
gLabels-qt has been under off-and-on development for several years.
It is still missing several features to bring it in parity with glabels-3.4. These include
- Optional Evolution and VCard backends.
- An online manual
## Download ## Download
@@ -41,41 +34,29 @@ Continuous integration snapshots are not official releases. These snapshots rep
bleeding-edge development (unstable) code. Please, DO NOT use it in a production environment. Do not bleeding-edge development (unstable) code. Please, DO NOT use it in a production environment. Do not
expect compatibility or consistency of features between snapshots. expect compatibility or consistency of features between snapshots.
| Platform | Files | Notes | Pre-release Linux [AppImage](http:appimage.org) and Windows installer binaries are available in
|:---------|:------|:------| **[Releases](https://github.com/jimevins/glabels-qt/releases)**.
| Linux x86_64 [AppImage](http:appimage.org) | [glabels-continuous-x86_64.AppImage](https://github.com/jimevins/glabels-qt/releases/download/continuous/glabels-continuous-x86_64.AppImage) | Download, make it executable, and run! |
| Archlinux | [Archlinux User Repository Page](https://aur.archlinux.org/packages/glabels-qt-git/) | Maintained by [Mario Blättermann](https://github.com/mariobl) | Some third-party packages are also available:
| Ubuntu | [PPA Page](https://code.launchpad.net/~krisives/+archive/ubuntu/glabels-qt) | Maintained by [Kristopher Ives](https://github.com/krisives).<br>https://github.com/krisives/glabels-qt-packaging |
| Windows x86_64 | [glabels-3.99.0-win64.exe](https://github.com/jimevins/glabels-qt/releases/download/continuous/glabels-3.99.0-win64.exe) | Windows installer |
| Source Code TAR.GZ | [continuous.tar.gz](https://github.com/jimevins/glabels-qt/archive/continuous.tar.gz) | | | Platform | Files | Notes |
| Source Code ZIP | [continuous.zip](https://github.com/jimevins/glabels-qt/archive/continuous.tar.gz) | | |:----------|:-------------------------------------------------------------------------------------|:--------------------------------------------------------------|
| Archlinux | [Archlinux User Repository Page](https://aur.archlinux.org/packages/glabels-qt-git/) | Maintained by [Mario Blättermann](https://github.com/mariobl) |
| Ubuntu | [PPA Page](https://code.launchpad.net/~krisives/+archive/ubuntu/glabels-qt) | Maintained by [Kristopher Ives](https://github.com/krisives) |
## Build Instructions ## Build Instructions
- [Linux Build Instructions](docs/BUILD-INSTRUCTIONS-LINUX.md) - [Linux Build Instructions](docs/BUILD-INSTRUCTIONS-LINUX.md)
- [Windows Build Instructions](docs/BUILD-INSTRUCTIONS-WINDOWS.md) - [Windows Build Instructions](docs/BUILD-INSTRUCTIONS-WINDOWS.md)
- Mac Build Instructions (TBD) - [Mac Build Instructions](docs/BUILD-INSTRUCTIONS-MACOS.md)
## Help Needed ## Help Needed
* Help is needed to add support to build and package glabels for various platforms and packaging systems. Please see [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md).
These include
- Windows (VisualStudio)
- Windows (MINGW)
- Mac
- Linux (flatpak)
- Linux (snap)
* Help is needed writing online documentation.
* Help is needed writing translations.
* Suggestions.
* For code contributions, see [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md).
## License ## License
@@ -100,12 +81,11 @@ restrictive licensing:
gLabels-qt currently includes a version of the glbarcode++ library, located in gLabels-qt currently includes a version of the glbarcode++ library, located in
the "glbarcode/" subdirectory. It is licensed under the GNU LESSER GENERAL the "glbarcode/" subdirectory. It is licensed under the GNU LESSER GENERAL
PUBLIC LICENSE (LGPL); either version 3 of the License, or (at your option) PUBLIC LICENSE (LGPL); either version 3 of the License, or (at your option)
any later version -- see the [glbarcode/LICENSE](glbarcode/LICENSE). any later version. See [glbarcode/LICENSE](glbarcode/LICENSE).
### Template Database ### Template Database
The XML files in the "templates/" subdirectory constitute the glabels The XML files in the "templates/" subdirectory constitute the glabels
label database. No copyright is claimed on the facts contained within label database. No copyright is claimed on the facts contained within
the database and can be used for any purpose. However, to clear up any the database and can be used for any purpose. The files themselves are
ambiguity, the DTD file that defines the format of these files is licensed using the MIT/X license. See [templates/LICENSE](templates/LICENSE).
licensed using the MIT/X license, see [templates/LICENSE](templates/LICENSE).
+36 -4
View File
@@ -1,6 +1,41 @@
To Do List for gLabels 4.0 -- 2018-04-15 To Do List for gLabels 4.0 -- 2018-10-06
======================================== ========================================
Add programmable margin to text objects
---------------------------------------
The current built-in fixed margin seems to confuse people when dealing with
different horizontal and vertical alignments.
Improve print copies UI
-----------------------
As with previous versions of glabels, there should be a way of selecting
the number of sheets to print. Merge printing should be able to be collated
or not, and if printing multiple copies, start on the same first label.
Printer calibration tool
------------------------
There desperately needs to be a printer calibration tool. At a minimum
the tool should allow adjusting horizontal and vertical offsets. The
adjustments should be unique to each printer.
I am thinking of a test page with a cross in the center. It would have a
grid around this cross, indicating how much to adjust x & y. The user
would fold the paper in quaters and use this grid to guestimate the offsets.
There should be warnings about how printers may drift from calibration or
even not have repeatable results.
* A more sophisticated tool, could adjust for scaling and skew, but it would
be very difficult to interact with the user on these.
Write help documentation
------------------------
Completed List for gLabels 4.0 -- 2018-04-15
============================================
Add "User Variables" feature Add "User Variables" feature
---------------------------- ----------------------------
@@ -27,9 +62,6 @@ Add support for "Continuous Roll" labels
* Add option to Properties page to adjust this value * Add option to Properties page to adjust this value
Write help documentation
------------------------
To Do List for gLabels 4.1 -- 2019-03-17 To Do List for gLabels 4.1 -- 2019-03-17
======================================== ========================================