Skip to content

Commit

Permalink
Add CI for macOS
Browse files Browse the repository at this point in the history
  • Loading branch information
thombashi committed Jun 17, 2018
1 parent 523161a commit 2a0b8f5
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 21 deletions.
50 changes: 33 additions & 17 deletions .travis.yml
Expand Up @@ -2,21 +2,39 @@ language: python

matrix:
include:
- python: 2.7
env: TOXENV=python2.7
- python: 3.4
env: TOXENV=python3.4
- python: 3.5
env: TOXENV=python3.5
- python: 3.6
env: TOXENV=python3.6

os:
- linux
- os: linux
python: 2.7
sudo: required
env:
- TOXENV=python2.7

- os: linux
python: 3.4
sudo: required
env:
- TOXENV=python3.4

- os: linux
python: 3.5
sudo: required
env:
- TOXENV=python3.5

- os: linux
python: 3.6
sudo: required
env:
- TOXENV=python3.6
- DEPLOY_FILE='dist/sqlitebiter_*.deb'

- os: osx
language: generic
env:
- TOXENV=python3.6
- DEPLOY_FILE='dist/sqlitebiter_macos_*'

install:
- pip install setuptools --upgrade
- pip install tox
- bash .travis/install.sh

script:
- tox
Expand All @@ -26,9 +44,7 @@ notifications:
secure: EHpNEhPxWbvByJouszVg5JIU9BBURFQnHlMEJDudWnK8i0hF37OYKkC8oSbvi2Hz+/bCW4eFStwuTu17RA9diUI6F4ZQ+H0OygI5NqlGSlty0sQpfpxOTSVlqGupKJtZRG5yeqzCVEdXYLZOQH8q54yUADxpjaPkdvCoOrcPB/xBe8vxpUc4uPtYQVeCJCOij0y+3nEwOOu/A8JBk0Uhx9690qKHzYwv3V93M4OjYeWntEcmcbJaLj+BCVV+DT3rPoUeweoZHwd/0euyKR/NmjR/y0uIsIkcjKpwDACaPIzzoQUD7VMf+91yebqI42t5ukg4fDArGE8jkQrRPsTKBdBP7n32n8PShWVypXR/CN/qYZvWwoVkuyYp2KudJIXm9SzWuW0sYjL4BaI9/sQs8iZfXOW2UJfErwNn5gybkxc/59hgtR955ceYWjKSm++KzG9AYb3c7MqY2HHWGdGxNHD6dv2tnTQJ1FUNC5wuOwmOsg0EjHD+o67zYuvOOsjA2EfgjFVqsWLBy7Uh9fQVBOUpb3NCFA0ZDK02xaBtuZSzhT2vCviUkRsvgIy51yzPt6ldeadKtogCUKrQU3U9M0R3ZkoJSZaN74ZHA33IFtCKfnIkZaoJ1w+DRGPLw8D31CI/dxIoeVUjsCYhDuPLxcF/L1x5GS/8tJHXcZEGK/c=

before_deploy:
- sudo apt -qq update
- sudo apt install -y fakeroot
- bash build_deb_package.sh
- bash -x build_package.sh

deploy:
provider: releases
Expand All @@ -40,4 +56,4 @@ deploy:
on:
tags: true
branch: master
python: 3.6
condition: "$TOXENV = python3.6"
7 changes: 7 additions & 0 deletions .travis/install.sh
@@ -0,0 +1,7 @@
if [ "$TRAVIS_OS_NAME" = "osx" ] && ! python3; then
# Install Python3 on osx
brew upgrade python
pip3 install tox
else
pip install tox
fi
1 change: 1 addition & 0 deletions build_deb_package.sh
Expand Up @@ -13,6 +13,7 @@ mkdir -p "${DIST_DIR_NAME}/DEBIAN"

pip install --upgrade pip
pip install --upgrade .[build]

PKG_VERSION=$(python -c "import ${PKG_NAME}; print(${PKG_NAME}.__version__)")

if [ "$PKG_VERSION" = "" ]; then
Expand Down
21 changes: 17 additions & 4 deletions build_macos_binary.sh
Expand Up @@ -6,12 +6,23 @@ DIST_DIR_NAME="dist"
DIST_DIR_PATH="./${DIST_DIR_NAME}"
PKG_NAME="sqlitebiter"

python --version
echo $(python -c "from __future__ import print_function; import sys; print(sys.version_info[0])")

if type python3 > /dev/null 2>&1; then
PYTHON=python3
PIP=pip3
else
PYTHON=python
PIP=pip
fi

# initialize
rm -rf $DIST_DIR_NAME

pip install --upgrade pip
pip install --upgrade .[build]
PKG_VERSION=$(python -c "import ${PKG_NAME}; print(${PKG_NAME}.__version__)")
$PIP install --upgrade pip
$PIP install --upgrade .[build]
PKG_VERSION=$(${PYTHON} -c "import ${PKG_NAME}; print(${PKG_NAME}.__version__)")

if [ "$PKG_VERSION" = "" ]; then
echo 'failed to get the package version' 1>&2
Expand All @@ -25,4 +36,6 @@ pyinstaller cli.py --clean --onefile --distpath $DIST_DIR_PATH --name $PKG_NAME

# generate an archive file
cd $DIST_DIR_PATH
tar -zcvf "sqlitebiter_macos_amd64.tar.gz" .
ARCHIVE_FILE=sqlitebiter_macos_amd64.tar.gz
tar -zcvf "$ARCHIVE_FILE" "$PKG_NAME"
shasum -a 256 "$ARCHIVE_FILE" > "${PKG_NAME}_macos_sha256.txt"
10 changes: 10 additions & 0 deletions build_package.sh
@@ -0,0 +1,10 @@
#!/usr/bin/env bash

if [ "$TRAVIS_OS_NAME" = "osx" ] ; then
bash -x build_macos_binary.sh
elif [ "$TRAVIS_OS_NAME" = "linux" ] ; then
sudo apt -qq update
sudo apt install -y fakeroot

bash -x build_deb_package.sh
fi

0 comments on commit 2a0b8f5

Please sign in to comment.