Skip to content

Commit

Permalink
CI cleanup/updates
Browse files Browse the repository at this point in the history
  - 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.
  • Loading branch information
jimevins committed Oct 6, 2019
1 parent 34efe8d commit 1a900d0
Show file tree
Hide file tree
Showing 4 changed files with 187 additions and 92 deletions.
18 changes: 12 additions & 6 deletions .appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Build glabels windows installer.
#
# Currently, only builds snapshots and is truggered by the travis CI AppImage build, which
# moves the "continuous" release/tag to head. This script deploys into this moved release.
# Currently, only builds snapshots and is triggered by the travis CI build.


version: 3.99.0.{build}
Expand All @@ -23,25 +22,32 @@ init:
- git config --global core.autocrlf true

install:
# Locate Qt installation
- 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:
- git checkout master # re-attach to master to satisfy auto version tooling
- mkdir 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
- ctest -C Release
- cpack -C Release -G NSIS64
- set /P VERSION=<VERSION
- move glabels-3.99.0-win64.exe glabels-%VERSION%-win64.exe

artifacts:
- path: build\glabels-3.99.0-win64.exe
- path: build\glabels-%VERSION%-win64.exe
name: windows-installer

deploy:
- provider: GitHub
release: continuous
release: glabels-%VERSION%
artifact: windows-installer
auth_token:
secure: mPNNgwWP58gu4eA2wVwGkGWNTzJigKj1g/XjsZ9vk03rLMmf5fxC/XNr15fPBCi8
Expand Down
155 changes: 116 additions & 39 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,48 +1,125 @@
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:
except:
- /.*/
- # Do not build tags that we create when we upload to GitHub Releases
- /^(?i:continuous)$/
- /.*/ # Everything

# safelist
branches:
only:
- 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 [email protected]
- 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
66 changes: 23 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,24 +9,17 @@

## 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?

- Based on the Qt5 framework.
- Updated UI based on typical workflows.
- Intended to be a cross-platform application.
* So far, it has been built and tested under Linux, Windows 7, and Windows 10. (Windows testing is still very intermittent.)


## 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
- A complete rewrite, based on the Qt5 framework.
- A new UI layout based on common activities.
- Cross-platform support
- User-defined variables
- Support for continuous-roll labels
- Many new product templates


## Download
Expand All @@ -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
expect compatibility or consistency of features between snapshots.

| Platform | Files | Notes |
|:---------|:------|:------|
| 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) |
| 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) | |
| Source Code ZIP | [continuous.zip](https://github.com/jimevins/glabels-qt/archive/continuous.tar.gz) | |
Pre-release Linux [AppImage](http:appimage.org) and Windows installer binaries are available in
**[Releases](https://github.com/jimevins/glabels-qt/releases)**.

Some third-party packages are also available:

## Build Instructions

- [Linux Build Instructions](docs/BUILD-INSTRUCTIONS-LINUX.md)
- [Windows Build Instructions](docs/BUILD-INSTRUCTIONS-WINDOWS.md)
- Mac Build Instructions (TBD)
| Platform | Files | Notes |
|:----------|:-------------------------------------------------------------------------------------|:--------------------------------------------------------------|
| 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) |


## Help Needed

* Help is needed to add support to build and package glabels for various platforms and packaging systems.
These include

- Windows (VisualStudio)
- Windows (MINGW)
- Mac
- Linux (flatpak)
- Linux (snap)
## Build Instructions

* Help is needed writing online documentation.
- [Linux Build Instructions](docs/BUILD-INSTRUCTIONS-LINUX.md)
- [Windows Build Instructions](docs/BUILD-INSTRUCTIONS-WINDOWS.md)
- [Mac Build Instructions](docs/BUILD-INSTRUCTIONS-MACOS.md)

* Help is needed writing translations.

* Suggestions.
## Help Needed

* For code contributions, see [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md).
Please see [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md).


## License
Expand All @@ -100,12 +81,11 @@ restrictive licensing:
gLabels-qt currently includes a version of the glbarcode++ library, located in
the "glbarcode/" subdirectory. It is licensed under the GNU LESSER GENERAL
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

The XML files in the "templates/" subdirectory constitute the glabels
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
ambiguity, the DTD file that defines the format of these files is
licensed using the MIT/X license, see [templates/LICENSE](templates/LICENSE).
the database and can be used for any purpose. The files themselves are
licensed using the MIT/X license. See [templates/LICENSE](templates/LICENSE).
40 changes: 36 additions & 4 deletions docs/TODO.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,41 @@
To Do List for gLabels 4.0 -- 2018-04-15
To Do List for gLabels 4.0 -- 2018-10-06

This comment has been minimized.

Copy link
@bdcomp

bdcomp Oct 7, 2019

2018 -> 2019

========================================

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
----------------------------

Expand All @@ -27,9 +62,6 @@ Add support for "Continuous Roll" labels
* Add option to Properties page to adjust this value


Write help documentation
------------------------


To Do List for gLabels 4.1 -- 2019-03-17
========================================
Expand Down

0 comments on commit 1a900d0

Please sign in to comment.