From cf739ed29548e8aa9e67ab7dbbee2bd1b8efb017 Mon Sep 17 00:00:00 2001
From: patrick96
Date: Fri, 11 Dec 2020 21:37:54 +0100
Subject: [PATCH] ci: Use github actions
---
.github/workflows/ci.yml | 88 ++++++++++++++++++++++++++++++++++++++
.travis.yml | 8 ++--
README.md | 1 +
common/ci/configure.sh | 46 ++++++++++++++++++++
common/ci/summary.sh | 19 ++++++++
common/travis/build.sh | 3 --
common/travis/configure.sh | 32 --------------
common/travis/summary.sh | 13 ------
8 files changed, 158 insertions(+), 52 deletions(-)
create mode 100644 .github/workflows/ci.yml
create mode 100755 common/ci/configure.sh
create mode 100755 common/ci/summary.sh
delete mode 100755 common/travis/build.sh
delete mode 100755 common/travis/configure.sh
delete mode 100755 common/travis/summary.sh
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 00000000..8d853338
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,88 @@
+name: CI
+on: [push, pull_request]
+
+jobs:
+ docs:
+ runs-on: ubuntu-20.04
+ env:
+ COLOR: "ON"
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install Dependencies
+ run: sudo apt-get install -y python3-sphinx
+ - name: Build Documentation
+ run: |
+ mkdir -p doc/build
+ cd doc/build
+ cmake ..
+ make doc
+
+ build:
+ runs-on: ubuntu-20.04
+ strategy:
+ matrix:
+ cxx: [g++, clang++]
+ polybar_build_type: ["full"]
+ build_type: ["Release"]
+ include:
+ - cxx: g++
+ polybar_build_type: "tests"
+ build_type: "Coverage"
+ - cxx: g++
+ polybar_build_type: "minimal"
+ build_type: "Release"
+ env:
+ CXX: ${{ matrix.cxx }}
+ BUILD_TYPE: ${{ matrix.build_type }}
+ POLYBAR_BUILD_TYPE: ${{ matrix.polybar_build_type }}
+ POLYBAR_DIR: ${{ github.workspace }}
+ BUILD_DIR: "${{ github.workspace}}/build"
+ MAKEFLAGS: "-j4"
+ COLOR: "ON"
+ steps:
+ - name: Install Dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y \
+ libxcb-composite0-dev \
+ libxcb-ewmh-dev \
+ libxcb-icccm4-dev \
+ libxcb-image0-dev \
+ libxcb-randr0-dev \
+ libxcb-util0-dev \
+ libxcb1-dev \
+ libcairo2-dev \
+ python3-xcbgen \
+ xcb-proto
+
+ if [ "$POLYBAR_BUILD_TYPE" != "minimal" ]; then
+ sudo apt-get install -y \
+ libxcb-xkb-dev \
+ libxcb-cursor-dev \
+ libxcb-xrm-dev \
+ i3-wm \
+ libcurl4-openssl-dev \
+ libjsoncpp-dev \
+ libasound2-dev \
+ libpulse-dev \
+ libiw-dev \
+ libmpdclient-dev
+ fi
+ - uses: actions/checkout@v2
+ with:
+ submodules: true
+ - name: Summary
+ run: ./common/ci/summary.sh
+ - name: Configure
+ run: ./common/ci/configure.sh
+ - name: Build
+ run: |
+ cd $BUILD_DIR
+ make
+ - name: Tests
+ if: ${{ matrix.polybar_build_type == 'tests' }}
+ run: |
+ cd $BUILD_DIR
+ make check
+ cd $POLYBAR_DIR
+ bash <(curl -s https://codecov.io/bash) -F unittests -a "-ap" -Z
diff --git a/.travis.yml b/.travis.yml
index 5c4fd79c..6fc0927a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -37,7 +37,7 @@ addons:
- libiw-dev
- libmpdclient-dev
-script: source ${TRAVIS_BUILD_DIR}/common/travis/build.sh
+script: source ${TRAVIS_BUILD_DIR}/common/ci/build.sh
matrix:
include:
@@ -59,7 +59,7 @@ matrix:
addons: {apt: {packages: [*base_deps, *optional_deps]}}
- compiler: gcc
- env: BUILD_TYPE=Coverage POLYBAR_BUILD_TYPE=tests BUILD_TESTS=ON
+ env: BUILD_TYPE=Coverage POLYBAR_BUILD_TYPE=tests
addons: {apt: {packages: [*base_deps, *optional_deps]}}
script: make check
after_success:
@@ -82,8 +82,8 @@ cache:
apt: true
before_script:
- - source ${TRAVIS_BUILD_DIR}/common/travis/summary.sh
- - source ${TRAVIS_BUILD_DIR}/common/travis/configure.sh
+ - source ${TRAVIS_BUILD_DIR}/common/ci/summary.sh
+ - source ${TRAVIS_BUILD_DIR}/common/ci/configure.sh
# Only fetch the newest 5 commits instead of 50
git:
diff --git a/README.md b/README.md
index 0ff03acc..1f36a658 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,7 @@ A fast and easy-to-use tool for creating status bars.
+
diff --git a/common/ci/configure.sh b/common/ci/configure.sh
new file mode 100755
index 00000000..90718748
--- /dev/null
+++ b/common/ci/configure.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+set -eo pipefail
+
+if [ -d "$BUILD_DIR" ]; then
+ rm -Rf "$BUILD_DIR"
+fi
+
+mkdir -p "${BUILD_DIR}"
+cd "${BUILD_DIR}"
+
+if [ "$POLYBAR_BUILD_TYPE" != "minimal" ]; then
+ ENABLE_PULSEAUDIO=ON
+ ENABLE_NETWORK=ON
+ ENABLE_MPD=ON
+ ENABLE_CURL=ON
+ ENABLE_ALSA=ON
+ ENABLE_I3=ON
+ WITH_XRM=ON
+ WITH_XKB=ON
+ WITH_XRANDR_MONITORS=ON
+ WITH_XCURSOR=ON
+fi
+
+if [ "$POLYBAR_BUILD_TYPE" = "tests" ]; then
+ BUILD_TESTS=ON
+fi
+
+cmake \
+ -DCMAKE_CXX_COMPILER="${CXX}" \
+ -DCMAKE_CXX_FLAGS="${CXXFLAGS} -Werror" \
+ -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \
+ -DBUILD_TESTS:BOOL="${BUILD_TESTS:-OFF}" \
+ -DBUILD_DOC:BOOL="${BUILD_DOC:-OFF}" \
+ -DWITH_XRANDR=ON \
+ -DENABLE_PULSEAUDIO="${ENABLE_PULSEAUDIO:-OFF}" \
+ -DENABLE_NETWORK="${ENABLE_NETWORK:-OFF}" \
+ -DENABLE_MPD="${ENABLE_MPD:-OFF}" \
+ -DENABLE_CURL="${ENABLE_CURL:-OFF}" \
+ -DENABLE_ALSA="${ENABLE_ALSA:-OFF}" \
+ -DENABLE_I3="${ENABLE_I3:-OFF}" \
+ -DWITH_XRM="${WITH_XRM:-OFF}" \
+ -DWITH_XKB="${WITH_XKB:-OFF}" \
+ -DWITH_XRANDR_MONITORS="${WITH_XRANDR_MONITORS:-OFF}" \
+ -DWITH_XCURSOR="${WITH_XCURSOR:-OFF}" \
+ ..
diff --git a/common/ci/summary.sh b/common/ci/summary.sh
new file mode 100755
index 00000000..a6bfcf82
--- /dev/null
+++ b/common/ci/summary.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+set -eo pipefail
+
+set -x
+
+"${CXX}" --version
+cmake --version
+
+set +x
+
+echo "PATH=${PATH}"
+echo "CXX=${CXX}"
+echo "CXXFLAGS=${CXXFLAGS}"
+echo "LDFLAGS=${LDFLAGS}"
+echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}"
+echo "MAKEFLAGS=${MAKEFLAGS}"
+echo "POLYBAR_BUILD_TYPE=${POLYBAR_BUILD_TYPE}"
+echo "CMAKE_BUILD_TYPE=${BUILD_TYPE}"
diff --git a/common/travis/build.sh b/common/travis/build.sh
deleted file mode 100755
index 9e376049..00000000
--- a/common/travis/build.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-cd "${TRAVIS_BUILD_DIR}/build" || false
-make || exit $?
diff --git a/common/travis/configure.sh b/common/travis/configure.sh
deleted file mode 100755
index b67d78bd..00000000
--- a/common/travis/configure.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-mkdir -p "${TRAVIS_BUILD_DIR}/build"
-cd "${TRAVIS_BUILD_DIR}/build" || false
-
-FLAGS=""
-
-# Disable all extra modules and X extensions for minimal builds
-# Most of these should already be turned off because their libraries are not
-# installed, but some may not be
-if [ "$POLYBAR_BUILD_TYPE" == "minimal" ]; then
- FLAGS=(
- "-DENABLE_PULSEAUDIO=OFF"
- "-DENABLE_NETWORK=OFF"
- "-DENABLE_MPD=OFF"
- "-DENABLE_CURL=OFF"
- "-DENABLE_ALSA=OFF"
- "-DENABLE_I3=OFF"
- "-DWITH_XRM=OFF"
- "-DWITH_XKB=OFF"
- "-DWITH_XRANDR_MONITORS=OFF"
- "-DWITH_XCURSOR=OFF"
- "-DWITH_XRANDR=ON"
- )
-fi
-
-cmake \
- -DCMAKE_CXX_COMPILER="${CXX}" \
- -DCMAKE_CXX_FLAGS="${CXXFLAGS} -Werror" \
- -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \
- -DBUILD_TESTS:BOOL="${BUILD_TESTS:-OFF}" \
- -DBUILD_DOC:BOOL="${BUILD_DOC:-OFF}" \
- "${FLAGS[@]}" ..
diff --git a/common/travis/summary.sh b/common/travis/summary.sh
deleted file mode 100755
index 708d6f7b..00000000
--- a/common/travis/summary.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-echo "${CXX} --version"
-eval "${CXX} --version"
-
-echo "cmake --version"
-cmake --version
-
-echo "PATH=${PATH}"
-echo "CXX=${CXX}"
-echo "CXXFLAGS=${CXXFLAGS}"
-echo "LDFLAGS=${LDFLAGS}"
-echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}"
-echo "JOBS=${JOBS}"