diff --git a/.circleci/config.yml b/.circleci/config.yml index 228ac79e0..6ac0b76de 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -28,20 +28,6 @@ jobs: - run: mkdir -p /root/debs && mv /root/project/*.deb /root/debs/ - store_artifacts: path: /root/debs/ - build_ubuntu_groovy: - docker: - - image: ubuntu:groovy - steps: - - run: apt-get update - - run: DEBIAN_FRONTEND="noninteractive" TZ="America/Los_Angeles" apt-get install -y git ssh sshpass build-essential clang cmake libboost-thread1.71-dev libboost-system1.71-dev libboost-filesystem1.71-dev libboost-date-time1.71-dev libboost-atomic1.71-dev libboost-chrono1.71-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 - - checkout - - run: cmake -DENABLE_PCH=true -DGENERATE_DEB=1 -DDEB_ARCHITECTURE=amd64 -DDEB_PLATFORM=ubuntu -DDEB_DISTRO=groovy -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release . - - run: make -j2 - - run: make package - - run: ./script/copy-artifacts-to-host.sh /root/project/*.deb - - run: mkdir -p /root/debs && mv /root/project/*.deb /root/debs/ - - store_artifacts: - path: /root/debs/ build_ubuntu_hirsute: docker: - image: ubuntu:hirsute @@ -56,19 +42,20 @@ jobs: - run: mkdir -p /root/debs && mv /root/project/*.deb /root/debs/ - store_artifacts: path: /root/debs/ - build_fedora_31: + build_ubuntu_impish: docker: - - image: fedora:31 + - image: ubuntu:impish steps: - - 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 git openssh-clients sshpass rpm-build rpmdevtools 'dnf-command(builddep)' + - run: apt-get update + - run: DEBIAN_FRONTEND="noninteractive" TZ="America/Los_Angeles" apt-get install -y git ssh sshpass build-essential clang cmake libboost-thread1.74-dev libboost-system1.74-dev libboost-filesystem1.74-dev libboost-date-time1.74-dev libboost-atomic1.74-dev libboost-chrono1.74-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 libpipewire-0.3-dev libspa-0.2-dev - checkout - - run: ENABLE_PIPEWIRE=true dnf builddep -y musikcube.spec - - run: mkdir -p /root/rpmbuild/SOURCES && spectool -g -R musikcube.spec - - run: ./script/run-rpm-build.sh - - run: ./script/copy-artifacts-to-host.sh /root/rpmbuild/RPMS/x86_64/*.rpm - - run: mkdir -p /root/rpms && mv /root/rpmbuild/RPMS/x86_64/*.rpm /root/rpms/ + - run: cmake -DENABLE_PCH=true -DENABLE_PIPEWIRE=true -DGENERATE_DEB=1 -DDEB_ARCHITECTURE=amd64 -DDEB_PLATFORM=ubuntu -DDEB_DISTRO=impish -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release . + - run: make -j2 + - run: make package + - run: ./script/copy-artifacts-to-host.sh /root/project/*.deb + - run: mkdir -p /root/debs && mv /root/project/*.deb /root/debs/ - store_artifacts: - path: /root/rpms/ + path: /root/debs/ build_fedora_32: docker: - image: fedora:32 @@ -108,14 +95,27 @@ jobs: - run: mkdir -p /root/rpms && mv /root/rpmbuild/RPMS/x86_64/*.rpm /root/rpms/ - store_artifacts: path: /root/rpms/ - build_mint_ulyssa: # based on ubuntu focal + build_fedora_35: docker: - - image: linuxmintd/mint20.1-amd64 + - image: fedora:35 + steps: + - 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 git openssh-clients sshpass rpm-build rpmdevtools 'dnf-command(builddep)' + - checkout + - run: dnf builddep -y musikcube.spec + - run: mkdir -p /root/rpmbuild/SOURCES && spectool -g -R musikcube.spec + - run: ./script/run-rpm-build.sh + - run: ./script/copy-artifacts-to-host.sh /root/rpmbuild/RPMS/x86_64/*.rpm + - run: mkdir -p /root/rpms && mv /root/rpmbuild/RPMS/x86_64/*.rpm /root/rpms/ + - store_artifacts: + path: /root/rpms/ + build_mint_uma: # based on ubuntu focal + docker: + - image: linuxmintd/mint20.2-amd64 steps: - run: apt-get update - run: DEBIAN_FRONTEND="noninteractive" TZ="America/Los_Angeles" apt-get install -y git ssh sshpass build-essential clang cmake libboost-thread1.71-dev libboost-system1.71-dev libboost-filesystem1.71-dev libboost-date-time1.71-dev libboost-atomic1.71-dev libboost-chrono1.71-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 - checkout - - run: cmake -DENABLE_PCH=true -DGENERATE_DEB=1 -DDEB_ARCHITECTURE=amd64 -DDEB_PLATFORM=mint -DDEB_DISTRO=ulyssa -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release . + - run: cmake -DENABLE_PCH=true -DGENERATE_DEB=1 -DDEB_ARCHITECTURE=amd64 -DDEB_PLATFORM=mint -DDEB_DISTRO=uma -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release . - run: make -j2 - run: make package - run: ./script/copy-artifacts-to-host.sh /root/project/*.deb @@ -148,11 +148,11 @@ workflows: jobs: - build_ubuntu_bionic: *workflow_filters - build_ubuntu_focal: *workflow_filters - - build_ubuntu_groovy: *workflow_filters - build_ubuntu_hirsute: *workflow_filters - - build_fedora_31: *workflow_filters + - build_ubuntu_impish: *workflow_filters - build_fedora_32: *workflow_filters - build_fedora_33: *workflow_filters - build_fedora_34: *workflow_filters - - build_mint_ulyssa: *workflow_filters + - build_fedora_35: *workflow_filters + - build_mint_uma: *workflow_filters - build_debian_buster: *workflow_filters diff --git a/script/install-deps.sh b/script/install-deps.sh index ac2c17d88..355d740c5 100755 --- a/script/install-deps.sh +++ b/script/install-deps.sh @@ -6,9 +6,12 @@ if [ $OS == "Linux" ]; then DISTRO=`lsb_release -cs` echo "detected ${DISTRO}" case $DISTRO in + "impish") + sudo apt-get install build-essential clang cmake libboost-thread1.74-dev libboost-system1.74-dev libboost-filesystem1.74-dev libboost-date-time1.74-dev libboost-atomic1.74-dev libboost-chrono1.74-dev libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev libncurses-dev libasound2-dev libpulse-dev pulseaudio libmicrohttpd-dev libmp3lame-dev libcurl4-openssl-dev libev-dev libtag1-dev libsystemd-dev libavcodec-extra libopenmpt-dev libssl-dev libspa-0.2-dev libpipewire-0.3-dev pipewire pipewire-bin pipewire-audio-client-libraries + ;; "hirsute") - sudo apt-get install build-essential clang cmake libboost-thread1.71-dev libboost-system1.71-dev libboost-filesystem1.71-dev libboost-date-time1.71-dev libboost-atomic1.71-dev libboost-chrono1.71-dev libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev libncurses-dev libasound2-dev libpulse-dev pulseaudio libmicrohttpd-dev libmp3lame-dev libcurl4-openssl-dev libev-dev libtag1-dev libsystemd-dev libavcodec-extra libopenmpt-dev libssl-dev libspa-0.2-dev libpipewire-0.3-dev pipewire pipewire-bin pipewire-audio-client-libraries - ;; + sudo apt-get install build-essential clang cmake libboost-thread1.74-dev libboost-system1.71-dev libboost-filesystem1.71-dev libboost-date-time1.71-dev libboost-atomic1.71-dev libboost-chrono1.71-dev libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev libncurses-dev libasound2-dev libpulse-dev pulseaudio libmicrohttpd-dev libmp3lame-dev libcurl4-openssl-dev libev-dev libtag1-dev libsystemd-dev libavcodec-extra libopenmpt-dev libssl-dev libspa-0.2-dev libpipewire-0.3-dev pipewire pipewire-bin pipewire-audio-client-libraries + ;; "focal" | "groovy" | "ulyssa") sudo apt-get install build-essential clang cmake libboost-thread1.71-dev libboost-system1.71-dev libboost-filesystem1.71-dev libboost-date-time1.71-dev libboost-atomic1.71-dev libboost-chrono1.71-dev libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev libncurses-dev libasound2-dev libpulse-dev pulseaudio libmicrohttpd-dev libmp3lame-dev libcurl4-openssl-dev libev-dev libtag1-dev libsystemd-dev libavcodec-extra libopenmpt-dev libssl-dev ;; @@ -36,7 +39,7 @@ if [ $OS == "Linux" ]; then sudo 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)' sudo dnf install gcc-c++ make cmake boost-devel libogg-devel libvorbis-devel ffmpeg-devel ncurses-devel zlib-devel alsa-lib-devel pulseaudio-libs-devel libcurl-devel libmicrohttpd-devel lame-devel libev-devel openssl-devel taglib-devel systemd-devel libopenmpt-devel case $VERSION in - "34") + "34" | "35") sudo dnf install pipewire-devel pipewire-utils pipewire-libs ;; esac diff --git a/script/run-circle-ci.sh b/script/run-circle-ci.sh index d97ff85e2..7cc3bb71f 100755 --- a/script/run-circle-ci.sh +++ b/script/run-circle-ci.sh @@ -36,12 +36,12 @@ sed -i "s/-j2/-j${JOB_COUNT}/g" local-circle-ci.yml ALL_JOBS=( "build_ubuntu_bionic" "build_ubuntu_focal" - "build_ubuntu_groovy" "build_ubuntu_hirsute" - "build_fedora_31" + "build_ubuntu_impish" "build_fedora_32" "build_fedora_33" "build_fedora_34" + "build_fedora_35" "build_mint_ulyssa" "build_debian_buster" )