version: 2.0
jobs:
  build_ubuntu_bionic:
    docker:
      - image: ubuntu:bionic
    steps:
      - checkout
      - run: apt-get update
      - run: apt-get install -y build-essential clang cmake libboost-thread1.65-dev libboost-system1.65-dev libboost-filesystem1.65-dev libboost-date-time1.65-dev libboost-atomic1.65-dev libboost-chrono1.65-dev libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev libncursesw5-dev libasound2-dev libpulse-dev pulseaudio libmicrohttpd-dev libmp3lame-dev libcurl4-openssl-dev libev-dev libssl-dev libtag1-dev libsystemd-dev
      - run: cmake -DGENERATE_DEB=1 -DDEB_ARCHITECTURE=amd64 -DDEB_PLATFORM=ubuntu -DDEB_DISTRO=bionic -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .
      - run: make -j2
      - run: make package
      - run: mkdir -p /root/debs && mv /root/project/*.deb /root/debs/
      - store_artifacts:
          path: /root/debs/
  build_ubuntu_cosmic:
    docker:
      - image: ubuntu:cosmic
    steps:
      - checkout
      - run: apt-get update
      - run: apt-get install -y build-essential clang cmake libboost-thread1.67-dev libboost-system1.67-dev libboost-filesystem1.67-dev libboost-date-time1.67-dev libboost-atomic1.67-dev libboost-chrono1.67-dev libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev libncursesw5-dev libasound2-dev libpulse-dev pulseaudio libmicrohttpd-dev libmp3lame-dev libcurl4-openssl-dev libev-dev libssl-dev libtag1-dev libsystemd-dev
      - run: cmake -DGENERATE_DEB=1 -DDEB_ARCHITECTURE=amd64 -DDEB_PLATFORM=ubuntu -DDEB_DISTRO=cosmic -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .
      - run: make -j2
      - run: make package
      - run: mkdir -p /root/debs && mv /root/project/*.deb /root/debs/
      - store_artifacts:
          path: /root/debs/
  build_ubuntu_disco:
    docker:
      - image: ubuntu:disco
    steps:
      - checkout
      - run: apt-get update
      - run: apt-get install -y build-essential clang cmake libboost-thread1.67-dev libboost-system1.67-dev libboost-filesystem1.67-dev libboost-date-time1.67-dev libboost-atomic1.67-dev libboost-chrono1.67-dev libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev libncursesw5-dev libasound2-dev libpulse-dev pulseaudio libmicrohttpd-dev libmp3lame-dev libcurl4-openssl-dev libev-dev libssl-dev libtag1-dev libsystemd-dev
      - run: cmake -DGENERATE_DEB=1 -DDEB_ARCHITECTURE=amd64 -DDEB_PLATFORM=ubuntu -DDEB_DISTRO=disco -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .
      - run: make -j2
      - run: make package
      - run: mkdir -p /root/debs && mv /root/project/*.deb /root/debs/
      - store_artifacts:
          path: /root/debs/
  build_ubuntu_eoan:
    docker:
      - image: ubuntu:eoan
    steps:
      - checkout
      - run: apt-get update
      - run: apt-get install -y build-essential clang cmake libboost-thread1.67-dev libboost-system1.67-dev libboost-filesystem1.67-dev libboost-date-time1.67-dev libboost-atomic1.67-dev libboost-chrono1.67-dev libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev libncursesw5-dev libasound2-dev libpulse-dev pulseaudio libmicrohttpd-dev libmp3lame-dev libcurl4-openssl-dev libev-dev libssl-dev libtag1-dev
      - run: cmake -DGENERATE_DEB=1 -DDEB_ARCHITECTURE=amd64 -DDEB_PLATFORM=ubuntu -DDEB_DISTRO=eoan -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .
      - run: make -j2
      - run: make package
      - run: mkdir -p /root/debs && mv /root/project/*.deb /root/debs/
      - store_artifacts:
          path: /root/debs/
  build_fedora_26:
    docker:
      - image: fedora:26
    steps:
      - checkout
      - run: dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm rpm-build rpmdevtools 'dnf-command(builddep)'
      - run: dnf builddep -y musikcube.spec
      - run: mkdir -p /root/rpmbuild/SOURCES && spectool -g -R musikcube.spec
      - run: rpmbuild -ba -vv musikcube.spec
      - run: mkdir -p /root/rpms && mv /root/rpmbuild/RPMS/x86_64/*.rpm /root/rpms/
      - store_artifacts:
          path: /root/rpms/
  build_fedora_27:
    docker:
      - image: fedora:27
    steps:
      - checkout
      - run: dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm rpm-build rpmdevtools 'dnf-command(builddep)'
      - run: dnf builddep -y musikcube.spec
      - run: mkdir -p /root/rpmbuild/SOURCES && spectool -g -R musikcube.spec
      - run: rpmbuild -ba -vv musikcube.spec
      - run: mkdir -p /root/rpms && mv /root/rpmbuild/RPMS/x86_64/*.rpm /root/rpms/
      - store_artifacts:
          path: /root/rpms/
  build_fedora_28:
    docker:
      - image: fedora:28
    steps:
      - checkout
      - run: dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm rpm-build rpmdevtools 'dnf-command(builddep)'
      - run: dnf builddep -y musikcube.spec
      - run: mkdir -p /root/rpmbuild/SOURCES && spectool -g -R musikcube.spec
      - run: rpmbuild -ba -vv musikcube.spec
      - run: mkdir -p /root/rpms && mv /root/rpmbuild/RPMS/x86_64/*.rpm /root/rpms/
      - store_artifacts:
          path: /root/rpms/
  build_fedora_29:
    docker:
      - image: fedora:29
    steps:
      - checkout
      - run: dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm rpm-build rpmdevtools 'dnf-command(builddep)'
      - run: dnf builddep -y musikcube.spec
      - run: mkdir -p /root/rpmbuild/SOURCES && spectool -g -R musikcube.spec
      - run: rpmbuild -ba -vv musikcube.spec
      - run: mkdir -p /root/rpms && mv /root/rpmbuild/RPMS/x86_64/*.rpm /root/rpms/
      - store_artifacts:
          path: /root/rpms/
  build_fedora_30:
    docker:
      - image: fedora:30
    steps:
      - checkout
      - run: dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm rpm-build rpmdevtools 'dnf-command(builddep)'
      - run: dnf builddep -y musikcube.spec
      - run: mkdir -p /root/rpmbuild/SOURCES && spectool -g -R musikcube.spec
      - run: rpmbuild -ba -vv musikcube.spec
      - run: mkdir -p /root/rpms && mv /root/rpmbuild/RPMS/x86_64/*.rpm /root/rpms/
      - store_artifacts:
          path: /root/rpms/
workflow_filters: &workflow_filters
  filters:
    branches:
      only:
        - build

workflows:
  version: 2
  build_and_package:
    jobs:
      - build_ubuntu_bionic: *workflow_filters
      - build_ubuntu_cosmic: *workflow_filters
      - build_ubuntu_disco: *workflow_filters
      - build_ubuntu_eoan: *workflow_filters
      - build_fedora_26: *workflow_filters
      - build_fedora_27: *workflow_filters
      - build_fedora_28: *workflow_filters
      - build_fedora_29: *workflow_filters
      - build_fedora_30: *workflow_filters