913 lines
24 KiB
YAML
913 lines
24 KiB
YAML
version: 2.1
|
|
commands:
|
|
cmake:
|
|
description: Configure build
|
|
steps:
|
|
- run:
|
|
name: cmake
|
|
command: cmake ..
|
|
working_directory: bin
|
|
build_source_tarball:
|
|
description: Build source tarball
|
|
steps:
|
|
- run:
|
|
name: Build source tarball
|
|
command: ../dist/maketarball.sh
|
|
working_directory: bin
|
|
|
|
build_rpm:
|
|
description: Build RPM
|
|
steps:
|
|
- run:
|
|
name: Create rpmbuild directory
|
|
command: mkdir -p ~/rpmbuild/SOURCES
|
|
- run:
|
|
name: Move source tarball
|
|
command: mv clementine-*.tar.xz ~/rpmbuild/SOURCES
|
|
working_directory: bin
|
|
- run:
|
|
name: Build RPM
|
|
command: rpmbuild -ba ../dist/clementine.spec
|
|
working_directory: bin
|
|
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 -j2 deb
|
|
working_directory: bin
|
|
copy_artifacts:
|
|
description: Copy build artifacts
|
|
parameters:
|
|
build:
|
|
type: string
|
|
default: ubuntu-xenial
|
|
steps:
|
|
- run:
|
|
name: Create artifact output directory
|
|
command: mkdir -p /tmp/artifacts/<< parameters.build >>
|
|
- run:
|
|
name: Copy deb to artifacts directory
|
|
command: cp bin/clementine_*.deb /tmp/artifacts/<< parameters.build >>/
|
|
- persist_to_workspace:
|
|
root: /tmp/artifacts
|
|
paths:
|
|
- << parameters.build >>/*
|
|
- store_artifacts:
|
|
path: /tmp/artifacts/<< parameters.build >>
|
|
copy_rpm_artifacts:
|
|
description: Copy build artifcats
|
|
parameters:
|
|
build:
|
|
type: string
|
|
default: fedora-29
|
|
steps:
|
|
- run:
|
|
name: Create artifact output directory
|
|
command: mkdir -p /tmp/artifacts/<< parameters.build >>
|
|
- run:
|
|
name: Copy RPM to artifacts directory
|
|
command: cp ~/rpmbuild/RPMS/*/clementine-*.rpm /tmp/artifacts/<< parameters.build >>
|
|
- persist_to_workspace:
|
|
root: /tmp/artifacts
|
|
paths:
|
|
- << parameters.build >>/*
|
|
- store_artifacts:
|
|
path: /tmp/artifacts/<< parameters.build >>
|
|
|
|
copy_windows_artifacts:
|
|
description: Copy build artifacts
|
|
steps:
|
|
- run:
|
|
name: Create artifact output directory
|
|
command: mkdir -p /tmp/artifacts/windows
|
|
- run:
|
|
name: Copy exe to artifacts directory
|
|
command: cp dist/windows/ClementineSetup*.exe /tmp/artifacts/windows
|
|
- persist_to_workspace:
|
|
root: /tmp/artifacts
|
|
paths:
|
|
- windows/*
|
|
- store_artifacts:
|
|
path: /tmp/artifacts/windows
|
|
|
|
install_bionic_dependencies:
|
|
description: Install Bionic dependencies
|
|
steps:
|
|
- run:
|
|
name: Use AWS Ubuntu mirror
|
|
command: >
|
|
sed -i /etc/apt/sources.list
|
|
-e 's#archive.ubuntu.com#us-east-2.ec2.archive.ubuntu.com#'
|
|
- run:
|
|
name: Install Dependencies
|
|
command: >
|
|
apt-get update && apt-get install -y
|
|
build-essential
|
|
cmake
|
|
gettext
|
|
git
|
|
libasound2-dev
|
|
libboost-dev
|
|
libcdio-dev
|
|
libchromaprint-dev
|
|
libdbus-1-dev
|
|
libfftw3-dev
|
|
libglew1.5-dev
|
|
libglib2.0-dev
|
|
libgpod-dev
|
|
libgstreamer-plugins-base1.0-dev
|
|
libgstreamer1.0-dev
|
|
libmtp-dev
|
|
libprotobuf-dev
|
|
libpulse-dev
|
|
libqt5x11extras5-dev
|
|
libsqlite3-dev
|
|
libtag1-dev
|
|
pkg-config
|
|
protobuf-compiler
|
|
qtbase5-dev
|
|
qttools5-dev-tools
|
|
qttools5-dev
|
|
libsparsehash-dev
|
|
ssh
|
|
install_disco_dependencies:
|
|
description: Install Disco dependencies
|
|
steps:
|
|
- run:
|
|
name: Setup ENV
|
|
command: |
|
|
echo 'export DEBIAN_FRONTEND=noninteractive' >> $BASH_ENV
|
|
source $BASH_ENV
|
|
- run:
|
|
name: Use AWS Ubuntu mirror
|
|
command: >
|
|
sed -i /etc/apt/sources.list
|
|
-e 's#archive.ubuntu.com#us-east-2.ec2.archive.ubuntu.com#'
|
|
- run:
|
|
name: Install Dependencies
|
|
command: >
|
|
apt-get update && apt-get install -y
|
|
cmake
|
|
fakeroot
|
|
gettext
|
|
git
|
|
libasound2-dev
|
|
libboost-dev
|
|
libboost-serialization-dev
|
|
libcdio-cdda2
|
|
libcdio-dev
|
|
libchromaprint-dev
|
|
libcrypto++-dev
|
|
libdbus-1-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
|
|
libqt5x11extras5-dev
|
|
libqtwebkit-dev
|
|
libsparsehash-dev
|
|
libsqlite3-dev
|
|
libtag1-dev
|
|
libusbmuxd-dev
|
|
protobuf-compiler
|
|
qtbase5-dev
|
|
qttools5-dev-tools
|
|
qttools5-dev
|
|
ssh
|
|
|
|
install_eoan_dependencies:
|
|
description: Install Eoan dependencies
|
|
steps:
|
|
- run:
|
|
name: Setup ENV
|
|
command: |
|
|
echo 'export DEBIAN_FRONTEND=noninteractive' >> $BASH_ENV
|
|
source $BASH_ENV
|
|
- run:
|
|
name: Use AWS Ubuntu mirror
|
|
command: >
|
|
sed -i /etc/apt/sources.list
|
|
-e 's#archive.ubuntu.com#us-east-2.ec2.archive.ubuntu.com#'
|
|
- run:
|
|
name: Install Dependencies
|
|
command: >
|
|
apt-get update && apt-get install -y
|
|
cmake
|
|
fakeroot
|
|
gettext
|
|
git
|
|
libasound2-dev
|
|
libboost-dev
|
|
libboost-serialization-dev
|
|
libcdio-cdda2
|
|
libcdio-dev
|
|
libchromaprint-dev
|
|
libcrypto++-dev
|
|
libdbus-1-dev
|
|
libfftw3-dev
|
|
libglew1.5-dev
|
|
libgpod-dev
|
|
libgstreamer-plugins-base1.0-dev
|
|
libgstreamer1.0-dev
|
|
liblastfm5-dev
|
|
libmtp-dev
|
|
libmygpo-qt-dev
|
|
libplist-dev
|
|
libprotobuf-dev
|
|
libpulse-dev
|
|
libqca-qt5-2-dev
|
|
libqca-qt5-2-plugins
|
|
libqt5x11extras5-dev
|
|
libsparsehash-dev
|
|
libsqlite3-dev
|
|
libtag1-dev
|
|
libusbmuxd-dev
|
|
protobuf-compiler
|
|
qtbase5-dev
|
|
qttools5-dev-tools
|
|
qttools5-dev
|
|
ssh
|
|
|
|
install_fedora_dependencies:
|
|
description: Install Fedora Dependencies
|
|
steps:
|
|
- run:
|
|
name: Install Dependencies
|
|
command: >
|
|
dnf install --assumeyes
|
|
@development-tools
|
|
alsa-lib-devel
|
|
boost-devel
|
|
cmake
|
|
cryptopp-devel
|
|
dbus-devel
|
|
desktop-file-utils
|
|
fftw-devel
|
|
gcc-c++
|
|
gettext
|
|
git
|
|
glew-devel
|
|
gstreamer1-devel
|
|
gstreamer1-plugins-base-devel
|
|
hicolor-icon-theme
|
|
libappstream-glib
|
|
libcdio-devel
|
|
libchromaprint-devel
|
|
libgpod-devel
|
|
liblastfm-qt5-devel
|
|
libmtp-devel
|
|
libnotify-devel
|
|
openssh
|
|
pkgconfig
|
|
protobuf-compiler
|
|
protobuf-devel
|
|
pulseaudio-libs-devel
|
|
qca-qt5-devel
|
|
qca-qt5-ossl
|
|
qt5-devel
|
|
rpmdevtools
|
|
sha2-devel
|
|
sparsehash-devel
|
|
sqlite-devel
|
|
taglib-devel
|
|
tar
|
|
|
|
install_debian_dependencies:
|
|
description: Install Debian dependencies
|
|
steps:
|
|
- run:
|
|
name: Install Dependencies
|
|
command: >
|
|
apt-get update && apt-get install -y
|
|
build-essential
|
|
cmake
|
|
gettext
|
|
git
|
|
libasound2-dev
|
|
libboost-dev
|
|
libcdio-dev
|
|
libchromaprint-dev
|
|
libcrypto++-dev
|
|
libdbus-1-dev
|
|
libfftw3-dev
|
|
libglew1.5-dev
|
|
libglib2.0-dev
|
|
libgpod-dev
|
|
libgstreamer-plugins-base1.0-dev
|
|
libgstreamer1.0-dev
|
|
liblastfm-dev
|
|
libmtp-dev
|
|
libmygpo-qt-dev
|
|
libprotobuf-dev
|
|
libpulse-dev
|
|
libqt5x11extras5-dev
|
|
libsparsehash-dev
|
|
libsqlite3-dev
|
|
libtag1-dev
|
|
pkg-config
|
|
protobuf-compiler
|
|
qtbase5-dev
|
|
qttools5-dev-tools
|
|
qttools5-dev
|
|
ssh
|
|
|
|
jobs:
|
|
build_disco_64:
|
|
docker:
|
|
- image: ubuntu:disco
|
|
|
|
steps:
|
|
- install_disco_dependencies
|
|
- checkout
|
|
- cmake_debian:
|
|
distribution: disco
|
|
arch: amd64
|
|
- make_deb
|
|
- copy_artifacts:
|
|
build: ubuntu-disco
|
|
|
|
build_disco_32:
|
|
docker:
|
|
- image: i386/ubuntu:disco
|
|
|
|
steps:
|
|
- install_disco_dependencies
|
|
- checkout
|
|
- cmake_debian:
|
|
distribution: disco
|
|
arch: i386
|
|
- make_deb
|
|
- copy_artifacts:
|
|
build: ubuntu-disco
|
|
|
|
build_bionic_64:
|
|
docker:
|
|
- image: ubuntu:bionic
|
|
|
|
steps:
|
|
- install_bionic_dependencies
|
|
- checkout
|
|
- cmake_debian:
|
|
distribution: bionic
|
|
arch: amd64
|
|
- make_deb
|
|
- copy_artifacts:
|
|
build: ubuntu-bionic
|
|
|
|
build_bionic_32:
|
|
docker:
|
|
- image: i386/ubuntu:bionic
|
|
|
|
steps:
|
|
- install_bionic_dependencies
|
|
- checkout
|
|
- cmake_debian:
|
|
distribution: bionic
|
|
arch: i386
|
|
- make_deb
|
|
- copy_artifacts:
|
|
build: ubuntu-bionic
|
|
|
|
build_eoan_64:
|
|
docker:
|
|
- image: ubuntu:eoan
|
|
steps:
|
|
- install_eoan_dependencies
|
|
- checkout
|
|
- cmake_debian:
|
|
distribution: eoan
|
|
arch: amd64
|
|
- make_deb
|
|
- copy_artifacts:
|
|
build: ubuntu-eoan
|
|
|
|
build_eoan_32:
|
|
docker:
|
|
- image: i386/ubuntu:eoan
|
|
steps:
|
|
- install_eoan_dependencies
|
|
- checkout
|
|
- cmake_debian:
|
|
distribution: eoan
|
|
arch: i386
|
|
- make_deb
|
|
- copy_artifacts:
|
|
build: ubuntu-eoan
|
|
|
|
build_buster_64:
|
|
docker:
|
|
- image: debian:buster
|
|
steps:
|
|
- install_debian_dependencies
|
|
- checkout
|
|
- cmake_debian:
|
|
distribution: buster
|
|
arch: amd64
|
|
- make_deb
|
|
- copy_artifacts:
|
|
build: debian-buster
|
|
|
|
build_stretch_64:
|
|
docker:
|
|
- image: debian:stretch
|
|
steps:
|
|
- install_debian_dependencies
|
|
- checkout
|
|
- cmake_debian:
|
|
distribution: stretch
|
|
arch: amd64
|
|
- make_deb
|
|
- copy_artifacts:
|
|
build: debian-stretch
|
|
|
|
build_fedora_29_64:
|
|
docker:
|
|
- image: fedora:29
|
|
environment:
|
|
RPM_BUILD_NCPUS: "2"
|
|
|
|
steps:
|
|
- install_fedora_dependencies
|
|
- checkout
|
|
- cmake
|
|
- build_source_tarball
|
|
- build_rpm
|
|
- copy_rpm_artifacts:
|
|
build: fedora-29
|
|
|
|
build_fedora_30_64:
|
|
docker:
|
|
- image: fedora:30
|
|
environment:
|
|
RPM_BUILD_NCPUS: "2"
|
|
|
|
steps:
|
|
- install_fedora_dependencies
|
|
- checkout
|
|
- cmake
|
|
- build_source_tarball
|
|
- build_rpm
|
|
- copy_rpm_artifacts:
|
|
build: fedora-30
|
|
|
|
build_fedora_31_64:
|
|
docker:
|
|
- image: fedora:31
|
|
environment:
|
|
RPM_BUILD_NCPUS: "2"
|
|
|
|
steps:
|
|
- install_fedora_dependencies
|
|
- checkout
|
|
- cmake
|
|
- build_source_tarball
|
|
- build_rpm
|
|
- copy_rpm_artifacts:
|
|
build: fedora-31
|
|
|
|
build_mingw:
|
|
docker:
|
|
- image: eu.gcr.io/clementine-data/mingw-w64:latest
|
|
environment:
|
|
PKG_CONFIG_PATH: /target/lib/pkgconfig
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: CMake
|
|
working_directory: bin
|
|
command: >
|
|
cmake ..
|
|
-DCMAKE_TOOLCHAIN_FILE=../Toolchain-mingw32.cmake
|
|
-DCMAKE_BUILD_TYPE=Release
|
|
- run:
|
|
name: Make
|
|
working_directory: bin
|
|
command: make -j2
|
|
- run:
|
|
name: Copy output exes
|
|
working_directory: dist/windows
|
|
command: cp ../../bin/*.exe .
|
|
- run:
|
|
name: Copy base runtime DLLs
|
|
command: >
|
|
cp
|
|
/usr/lib/gcc/i686-w64-mingw32/*-posix/libgcc_s_sjlj-1.dll
|
|
/usr/lib/gcc/i686-w64-mingw32/*-posix/libstdc++-6.dll
|
|
/usr/i686-w64-mingw32/lib/libwinpthread-1.dll
|
|
~/project/dist/windows
|
|
- run:
|
|
name: Copy DLL dependencies
|
|
working_directory: /target/bin
|
|
command: >
|
|
cp
|
|
glew32.dll
|
|
libcdio-16.dll
|
|
libchromaprint.dll
|
|
libeay32.dll
|
|
libfaad.dll
|
|
libffi-6.dll
|
|
libfftw3-3.dll
|
|
libFLAC-8.dll
|
|
libgcrypt-20.dll
|
|
libgio-2.0-0.dll
|
|
libglib-2.0-0.dll
|
|
libgmodule-2.0-0.dll
|
|
libgmp-10.dll
|
|
libgnutls-30.dll
|
|
libgobject-2.0-0.dll
|
|
libgpg-error-0.dll
|
|
libgpod.dll
|
|
libgstapp-1.0-0.dll
|
|
libgstaudio-1.0-0.dll
|
|
libgstbase-1.0-0.dll
|
|
libgstcontroller-1.0-0.dll
|
|
libgstfft-1.0-0.dll
|
|
libgstnet-1.0-0.dll
|
|
libgstpbutils-1.0-0.dll
|
|
libgstreamer-1.0-0.dll
|
|
libgstriff-1.0-0.dll
|
|
libgstrtp-1.0-0.dll
|
|
libgstrtsp-1.0-0.dll
|
|
libgstsdp-1.0-0.dll
|
|
libgsttag-1.0-0.dll
|
|
libgstvideo-1.0-0.dll
|
|
libgthread-2.0-0.dll
|
|
libhogweed-4.dll
|
|
libiconv-2.dll
|
|
libid3tag.dll
|
|
libintl-8.dll
|
|
libmad.dll
|
|
libmms-0.dll
|
|
libmp3lame-0.dll
|
|
libnettle-6.dll
|
|
libogg-0.dll
|
|
liboil-0.3-0.dll
|
|
liborc-0.4-0.dll
|
|
liborc-test-0.4-0.dll
|
|
libp11-kit-0.dll
|
|
libplist.dll
|
|
libpsl-5.dll
|
|
libprotobuf-17.dll
|
|
libsoup-2.4-1.dll
|
|
libspeex-1.dll
|
|
libspotify.dll
|
|
libsqlite3-0.dll
|
|
libtag.dll
|
|
libtasn1-6.dll
|
|
libvorbis-0.dll
|
|
libvorbisenc-2.dll
|
|
libxml2-2.dll
|
|
Qt5Concurrent.dll
|
|
Qt5Core.dll
|
|
Qt5Gui.dll
|
|
Qt5Network.dll
|
|
Qt5NetworkAuth.dll
|
|
Qt5OpenGL.dll
|
|
Qt5Sql.dll
|
|
Qt5Svg.dll
|
|
Qt5Widgets.dll
|
|
Qt5WinExtras.dll
|
|
Qt5Xml.dll
|
|
Qt5XmlPatterns.dll
|
|
ssleay32.dll
|
|
zlib1.dll
|
|
~/project/dist/windows
|
|
- run: mkdir dist/windows/imageformats
|
|
- run:
|
|
name: Copy Qt imageformat plugin DLLs
|
|
working_directory: /target/plugins
|
|
command: >
|
|
cp
|
|
imageformats/qgif.dll
|
|
imageformats/qjpeg.dll
|
|
~/project/dist/windows/imageformats
|
|
- run: mkdir dist/windows/platforms
|
|
- run:
|
|
name: Copy Qt platforms plugin DLLs
|
|
working_directory: /target/plugins
|
|
command: >
|
|
cp
|
|
platforms/qwindows.dll
|
|
~/project/dist/windows/platforms
|
|
- run: mkdir dist/windows/gio-modules
|
|
- run:
|
|
name: Copy GIO modules
|
|
command: cp /target/lib/gio/modules/libgiognutls.dll dist/windows/gio-modules
|
|
- run: mkdir dist/windows/gstreamer-plugins
|
|
- run:
|
|
name: Copy gstreamer plugins
|
|
working_directory: /target/lib/gstreamer-1.0
|
|
command: >
|
|
cp
|
|
libgstapetag.dll
|
|
libgstapp.dll
|
|
libgstasf.dll
|
|
libgstaudioconvert.dll
|
|
libgstaudiofx.dll
|
|
libgstaudioparsers.dll
|
|
libgstaudioresample.dll
|
|
libgstaudiotestsrc.dll
|
|
libgstautodetect.dll
|
|
libgstcdio.dll
|
|
libgstcoreelements.dll
|
|
libgstdirectsoundsink.dll
|
|
libgstequalizer.dll
|
|
libgstfaad.dll
|
|
libgstflac.dll
|
|
libgstgdp.dll
|
|
libgstgio.dll
|
|
libgsticydemux.dll
|
|
libgstid3demux.dll
|
|
libgstisomp4.dll
|
|
libgstlame.dll
|
|
libgstlibav.dll
|
|
libgstmad.dll
|
|
libgstmms.dll
|
|
libgstogg.dll
|
|
libgstplayback.dll
|
|
libgstreplaygain.dll
|
|
libgstsouphttpsrc.dll
|
|
libgstspectrum.dll
|
|
libgstspeex.dll
|
|
libgsttaglib.dll
|
|
libgsttcp.dll
|
|
libgsttypefindfunctions.dll
|
|
libgstudp.dll
|
|
libgstvolume.dll
|
|
libgstvorbis.dll
|
|
libgstwavparse.dll
|
|
~/project/dist/windows/gstreamer-plugins
|
|
- run:
|
|
name: Build windows installer
|
|
working_directory: dist/windows
|
|
command: makensis clementine.nsi
|
|
- copy_windows_artifacts
|
|
|
|
build_mac:
|
|
macos:
|
|
xcode: "11.0.0"
|
|
steps:
|
|
- run:
|
|
name: Setup PATH
|
|
command: |
|
|
echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig' >> $BASH_ENV
|
|
echo 'export Qt5_DIR=/usr/local/opt/qt5/lib/cmake/Qt5' >> $BASH_ENV
|
|
echo 'export Qt5LinguistTools_DIR=/usr/local/opt/qt5/lib/cmake/Qt5LinguistTools' >> $BASH_ENV
|
|
echo 'export GST_SCANNER_PATH=/usr/local/opt/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner' >> $BASH_ENV
|
|
echo 'export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.0' >> $BASH_ENV
|
|
source $BASH_ENV
|
|
- run:
|
|
name: Unlink Python 2
|
|
command: brew unlink python@2
|
|
- run:
|
|
name: Install dependencies from homebrew
|
|
command: >
|
|
brew install
|
|
boost
|
|
chromaprint
|
|
cmake
|
|
cryptopp
|
|
fftw
|
|
glew
|
|
glib
|
|
google-sparsehash
|
|
gst-libav
|
|
gst-plugins-bad
|
|
gst-plugins-base
|
|
gst-plugins-good
|
|
gst-plugins-ugly
|
|
gstreamer
|
|
pkgconfig
|
|
protobuf
|
|
protobuf-c
|
|
qt
|
|
- checkout
|
|
- run:
|
|
name: cmake
|
|
command: >
|
|
cmake
|
|
..
|
|
-Wno-dev
|
|
-DCMAKE_BUILD_TYPE=Release
|
|
-DCMAKE_OSX_ARCHITECTURES=x86_64
|
|
-DGETTEXT_MSGMERGE_EXECUTABLE=/usr/local/opt/gettext/bin/msgmerge
|
|
-DGETTEXT_MSGFMT_EXECUTABLE=/usr/local/opt/gettext/bin/msgfmt
|
|
-DGETTEXT_XGETTEXT_EXECUTABLE=/usr/local/opt/gettext/bin/xgettext
|
|
working_directory: bin
|
|
- run:
|
|
name: make
|
|
command: make -j4
|
|
working_directory: bin
|
|
- run:
|
|
name: Copy icon file and resources
|
|
command: make install
|
|
working_directory: bin
|
|
- 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
|
|
paths:
|
|
- mac/*
|
|
- store_artifacts:
|
|
path: bin/CMakeCache.txt
|
|
- store_artifacts:
|
|
path: bin/src/CMakeFiles/clementine.dir
|
|
- store_artifacts:
|
|
path: /tmp/artifacts/mac
|
|
|
|
build_source_tarball:
|
|
docker:
|
|
- image: ubuntu:eoan
|
|
steps:
|
|
- install_eoan_dependencies
|
|
- checkout
|
|
- cmake
|
|
- build_source_tarball
|
|
- run:
|
|
name: Create artifacts directory
|
|
command: mkdir -p /tmp/artifacts/source
|
|
- run:
|
|
name: Copy artifact
|
|
command: cp bin/clementine-*.tar.xz /tmp/artifacts/source
|
|
- persist_to_workspace:
|
|
root: /tmp/artifacts
|
|
paths:
|
|
- source/*
|
|
|
|
upload_artifacts:
|
|
docker:
|
|
- image: google/cloud-sdk
|
|
steps:
|
|
- run:
|
|
name: Google Cloud Auth
|
|
command: |
|
|
echo $GCLOUD_SERVICE_KEY | gcloud auth activate-service-account circleci-uploader@clementine-data.iam.gserviceaccount.com --key-file=-
|
|
gcloud --quiet config set project clementine-data
|
|
- attach_workspace:
|
|
at: /tmp/artifacts
|
|
- run:
|
|
name: Upload Artifact to Google Cloud
|
|
command: gsutil rsync -r /tmp/artifacts gs://builds.clementine-player.org/
|
|
|
|
create_release:
|
|
docker:
|
|
- image: circleci/golang:1.12
|
|
steps:
|
|
- attach_workspace:
|
|
at: /tmp/artifacts
|
|
- run:
|
|
name: Aggregate artifacts
|
|
command: |
|
|
mkdir -p release_artifacts
|
|
cp /tmp/artifacts/**/* release_artifacts/
|
|
- run:
|
|
name: Publish Release on GitHub
|
|
command: |
|
|
go get github.com/tcnksm/ghr
|
|
VERSION=${CIRCLE_TAG}
|
|
ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -delete ${VERSION} release_artifacts/
|
|
workflows:
|
|
version: 2
|
|
build_all:
|
|
jobs:
|
|
- build_eoan_64:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- build_eoan_32:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- build_disco_64:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- build_disco_32:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- build_bionic_64:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- build_bionic_32:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- build_buster_64:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- build_stretch_64:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- build_fedora_29_64:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- build_fedora_30_64:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- build_fedora_31_64:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- build_mingw:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- build_mac:
|
|
filters:
|
|
branches:
|
|
only: master
|
|
tags:
|
|
only: /.*/
|
|
- build_source_tarball:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- create_release:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
branches:
|
|
ignore: /.*/
|
|
context: github
|
|
requires:
|
|
- build_eoan_64
|
|
- build_eoan_32
|
|
- build_disco_64
|
|
- build_disco_32
|
|
- build_bionic_64
|
|
- build_bionic_32
|
|
- build_buster_64
|
|
- build_stretch_64
|
|
- build_fedora_29_64
|
|
- build_fedora_30_64
|
|
- build_fedora_31_64
|
|
- build_mingw
|
|
- build_mac
|
|
- build_source_tarball
|
|
- upload_artifacts:
|
|
context: gcp
|
|
requires:
|
|
- build_eoan_64
|
|
- build_eoan_32
|
|
- build_disco_64
|
|
- build_disco_32
|
|
- build_bionic_64
|
|
- build_bionic_32
|
|
- build_buster_64
|
|
- build_stretch_64
|
|
- build_fedora_29_64
|
|
- build_fedora_30_64
|
|
- build_fedora_31_64
|
|
- build_mingw
|
|
- build_mac
|
|
- build_source_tarball
|
|
filters:
|
|
branches:
|
|
only: master
|
|
tags:
|
|
only: /.*/
|