Clementine-audio-player-Mac.../.circleci/config.yml

369 lines
9.4 KiB
YAML
Raw Normal View History

2019-10-02 16:27:54 +02:00
version: 2.1
2019-10-02 16:26:30 +02:00
commands:
cmake_debian:
description: Configure build
parameters:
distribution:
type: string
default: xenial
arch:
type: string
default: amd64
steps:
- run:
name: cmake
command: >
cmake ..
-DWITH_DEBIAN=ON
-DDEB_ARCH=<< parameters.arch >>
-DDEB_DIST=<< parameters.distribution >>
-DFORCE_GIT_VERSION=
-DENABLE_SPOTIFY_BLOB=OFF
working_directory: bin
make_deb:
description: Build deb
steps:
- run:
name: make deb
command: make deb
working_directory: bin
copy_artifacts:
description: Copy build artifacts
2019-10-02 17:56:37 +02:00
parameters:
build:
type: string
default: ubuntu-xenial
steps:
- run:
2019-10-02 18:17:06 +02:00
name: Create artifact output directory
2019-10-02 19:03:49 +02:00
command: mkdir -p /tmp/artifacts/<< parameters.build >>
2019-10-02 17:56:37 +02:00
- run:
2019-10-02 18:17:06 +02:00
name: Copy deb to artifacts directory
command: cp bin/clementine_*.deb /tmp/artifacts/<< parameters.build >>/
- persist_to_workspace:
root: /tmp/artifacts/<< parameters.build >>
paths:
- "*"
- store_artifacts:
path: /tmp/artifacts/<< parameters.build >>
2019-10-02 16:26:30 +02:00
install_xenial_dependencies:
description: Install Xenial dependencies
2019-10-02 15:33:40 +02:00
steps:
2019-10-02 15:50:33 +02:00
- run:
name: Install Dependencies
command: >
2019-10-02 15:52:00 +02:00
apt-get update && apt-get install -y
2019-10-02 15:50:33 +02:00
cmake
fakeroot
gettext
2019-10-02 16:05:12 +02:00
git
2019-10-02 15:50:33 +02:00
libboost-dev
libboost-serialization-dev
libcdio-cdda1
libcdio-dev
libchromaprint-dev
libcrypto++-dev
libfftw3-dev
libglew1.5-dev
libgpod-dev
libgstreamer-plugins-base1.0-dev
libgstreamer1.0-dev
liblastfm-dev
libmtp-dev
libmygpo-qt-dev
libplist-dev
libprotobuf-dev
libpulse-dev
libqca2-dev
libqca2-plugin-ossl
libqjson-dev
libqt4-dev
libqt4-opengl-dev
libqtwebkit-dev
libsparsehash-dev
libsqlite3-dev
libtag1-dev
libusbmuxd-dev
protobuf-compiler
qt4-dev-tools
2019-10-02 16:05:12 +02:00
ssh
2019-10-02 16:56:18 +02:00
install_bionic_dependencies:
description: Install Bionic dependencies
steps:
- run:
name: Install Dependencies
command: >
apt-get update && apt-get install -y
cmake
fakeroot
gettext
git
libboost-dev
libboost-serialization-dev
libcdio-cdda2
libcdio-dev
libchromaprint-dev
libcrypto++-dev
libfftw3-dev
libglew1.5-dev
libgpod-dev
libgstreamer-plugins-base1.0-dev
libgstreamer1.0-dev
liblastfm-dev
libmtp-dev
libmygpo-qt-dev
libplist-dev
libprotobuf-dev
libpulse-dev
libqca2-dev
libqca2-plugins
libqjson-dev
libqt4-dev
libqt4-opengl-dev
libqtwebkit-dev
libsparsehash-dev
libsqlite3-dev
libtag1-dev
libusbmuxd-dev
protobuf-compiler
qt4-dev-tools
ssh
2019-10-02 16:54:52 +02:00
install_disco_dependencies:
description: Install Disco dependencies
steps:
- run:
name: Install Dependencies
command: >
apt-get update && apt-get install -y
cmake
fakeroot
gettext
git
libboost-dev
libboost-serialization-dev
libcdio-cdda2
libcdio-dev
libchromaprint-dev
libcrypto++-dev
libfftw3-dev
libglew1.5-dev
libgpod-dev
libgstreamer-plugins-base1.0-dev
libgstreamer1.0-dev
liblastfm-dev
libmtp-dev
libmygpo-qt-dev
libplist-dev
libprotobuf-dev
libpulse-dev
libqca2-dev
2019-10-02 17:29:44 +02:00
libqca2-plugins
2019-10-02 16:54:52 +02:00
libqjson-dev
libqt4-dev
libqt4-opengl-dev
libqtwebkit-dev
libsparsehash-dev
libsqlite3-dev
libtag1-dev
libusbmuxd-dev
protobuf-compiler
qt4-dev-tools
ssh
2019-10-02 16:26:30 +02:00
jobs:
2019-10-02 16:42:20 +02:00
build_disco_64:
docker:
- image: ubuntu:disco
steps:
2019-10-02 16:54:52 +02:00
- install_disco_dependencies
2019-10-02 16:42:20 +02:00
- checkout
- cmake_debian:
distribution: disco
arch: amd64
- make_deb
- copy_artifacts:
build: ubuntu-disco
2019-10-02 16:42:20 +02:00
build_disco_32:
docker:
- image: i386/ubuntu:disco
steps:
2019-10-02 16:54:52 +02:00
- install_disco_dependencies
2019-10-02 16:42:20 +02:00
- checkout
- cmake_debian:
distribution: disco
arch: i386
- make_deb
- copy_artifacts:
build: ubuntu-disco
2019-10-02 16:42:20 +02:00
build_bionic_64:
docker:
- image: ubuntu:bionic
steps:
2019-10-02 16:56:18 +02:00
- install_bionic_dependencies
2019-10-02 16:42:20 +02:00
- checkout
- cmake_debian:
distribution: bionic
arch: amd64
- make_deb
- copy_artifacts:
build: ubuntu-bionic
2019-10-02 16:42:20 +02:00
build_bionic_32:
docker:
- image: i386/ubuntu:bionic
steps:
2019-10-02 16:56:18 +02:00
- install_bionic_dependencies
2019-10-02 16:42:20 +02:00
- checkout
- cmake_debian:
distribution: bionic
arch: i386
- make_deb
- copy_artifacts:
build: ubuntu-bionic
2019-10-02 16:42:20 +02:00
2019-10-02 16:26:30 +02:00
build_xenial_64:
docker:
- image: ubuntu:xenial
steps:
- install_xenial_dependencies
2019-10-02 15:33:40 +02:00
- checkout
2019-10-02 16:33:28 +02:00
- cmake_debian:
2019-10-02 16:26:30 +02:00
distribution: xenial
arch: amd64
- make_deb
- copy_artifacts:
build: ubuntu-xenial
2019-10-02 16:26:30 +02:00
build_xenial_32:
docker:
- image: i386/ubuntu:xenial
steps:
- install_xenial_dependencies
- checkout
2019-10-02 16:33:28 +02:00
- cmake_debian:
2019-10-02 16:26:30 +02:00
distribution: xenial
arch: i386
- make_deb
- copy_artifacts:
build: ubuntu-xenial
2019-10-02 18:17:06 +02:00
2019-10-03 01:19:45 +02:00
build_mac:
macos:
xcode: "11.0.0"
steps:
- run:
name: Setup PATH
command: |
2019-10-03 01:24:32 +02:00
echo 'export Qt5_DIR=/usr/local/opt/qt5/lib/cmake' >> $BASH_ENV
echo 'export Qt5LinguistTools_DIR=/usr/local/Cellar/qt/5.11.2/lib/cmake/Qt5LinguistTools' >> $BASH_ENV
echo 'export GST_SCANNER_PATH=/usr/local/Cellar/gstreamer/1.14.4/libexec/gstreamer-1.0/gst-plugin-scanner' >> $BASH_ENV
echo 'export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.0' >> $BASH_ENV
2019-10-03 01:19:45 +02:00
echo 'export PATH=/usr/local/opt/gettext/bin:$PATH' >> $BASH_ENV
source $BASH_ENV
- run:
name: Install dependencies from homebrew
command: >
brew install
boost
chromaprint
cmake
cryptopp
gettext
glib
liblastfm
pkgconfig
protobuf
protobuf-c
qt
- run:
name: Install sqlite
command: brew install sqlite --with-fts
- run:
name: Install gstreamer
command: brew install gstreamer gst-plugins-base
- run:
name: Install gst-plugins-good
command: brew install gst-plugins-good --with-flac
- run:
name: Install gst-plugins
command: brew install gst-plugins-bad gst-plugins-ugly
- run:
name: Install other dependencies
command: brew install chromaprint liblastfm
- checkout
- run:
name: Checkout qt5 branch
command: git checkout qt5
- run:
name: cmake
command: cmake .. -DUSE_VISUALISATIONS=OFF
working_directory: bin
- run:
name: make
command: make
working_directory: bin
2019-10-03 01:22:14 +02:00
- run:
name: Copy icon file and resources
command: make install
working_directory: bin
2019-10-03 01:19:45 +02:00
- run:
name: Build DMG
command: make dmg
working_directory: bin
- run:
name: Create artifact output directory
command: mkdir -p /tmp/artifacts/mac
- run:
name: Copy dmg to artifacts directory
command: cp bin/clementine*.dmg /tmp/artifacts/mac
- persist_to_workspace:
root: /tmp/artifacts/mac
paths:
- "*"
- store_artifacts:
path: /tmp/artifacts/mac
2019-10-02 18:17:06 +02:00
upload_artifacts:
docker:
- image: google/cloud-sdk
steps:
- run:
name: Google Cloud Auth
command: |
2019-10-03 01:00:28 +02:00
echo $GCLOUD_SERVICE_KEY | gcloud auth activate-service-account circleci-uploader@clementine-data.iam.gserviceaccount.com --key-file=-
2019-10-02 18:17:06 +02:00
gcloud --quiet config set project clementine-data
- attach_workspace:
at: /tmp/artifacts
2019-10-02 18:17:06 +02:00
- run:
name: Upload Artifact to Google Cloud
command: gsutil rsync -r /tmp/artifacts gs://builds.clementine-player.org/
2019-10-02 16:26:30 +02:00
workflows:
version: 2
build_all:
jobs:
- build_xenial_32
- build_xenial_64
2019-10-02 16:43:31 +02:00
- build_bionic_32
- build_bionic_64
- build_disco_32
- build_disco_64
2019-10-03 01:19:45 +02:00
- build_mac
2019-10-02 18:17:06 +02:00
- upload_artifacts:
requires:
- build_xenial_32
- build_xenial_64
- build_bionic_32
- build_bionic_64
- build_disco_32
- build_disco_64