calamares/.github/workflows/ci.yml
2021-01-25 02:07:01 +01:00

118 lines
No EOL
3.5 KiB
YAML

name: ci
on:
push:
branches:
- calamares
pull_request:
types:
- opened
- reopened
- synchronize
workflow_dispatch:
env:
BUILDDIR: /build
SRCDIR: ${{ github.workspace }}
DESTDIR: /INSTALL_ROOT
CMAKE_ARGS: |
-DCMAKE_BUILD_TYPE=Release
-DWEBVIEW_FORCE_WEBKIT=1
-DKDE_INSTALL_USE_QT_SYS_PATHS=ON
-DWITH_PYTHONQT=OFF"
-DCMAKE_BUILD_TYPE=Debug
jobs:
build:
runs-on: ubuntu-latest
container:
image: docker://kdeneon/plasma:user
options: --tmpfs /build:rw,size=512M --user 0:0
steps:
-
name: prepare
env:
COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
run: |
sudo apt-get update
sudo apt-get -y install git-core
if [ -n "$COVERITY_SCAN_TOKEN" ]; then
curl -k -o coverity_tool.tar.gz \
-d "token=$COVERITY_SCAN_TOKEN&project=calamares%2Fcalamares" \
https://scan.coverity.com/download/cxx/linux64
mkdir "$BUILDDIR/coveritytool"
tar xvf coverity_tool.tar.gz -C "$BUILDDIR/coveritytool" --strip-components 2
fi
-
name: checkout
uses: actions/checkout@v2
-
name: install dependencies
run: |
sudo apt-get -y install \
build-essential \
cmake \
extra-cmake-modules \
gettext \
kio-dev \
libatasmart-dev \
libboost-python-dev \
libkf5config-dev \
libkf5coreaddons-dev \
libkf5i18n-dev \
libkf5iconthemes-dev \
libkf5parts-dev \
libkf5service-dev \
libkf5solid-dev \
libkpmcore-dev \
libparted-dev \
libpolkit-qt5-1-dev \
libqt5svg5-dev \
libqt5webkit5-dev \
libyaml-cpp-dev \
os-prober \
pkg-config \
python3-dev \
qtbase5-dev \
qtdeclarative5-dev \
qttools5-dev \
qttools5-dev-tools
-
name: check environment
run: |
test -f $SRCDIR/CMakeLists.txt || { echo "! Missing $SRCDIR/CMakeLists.txt" ; exit 1 ; }
test -n "$BUILDDIR" || { echo "! \$BUILDDIR not set" ; exit 1 ; }
test -n "$SRCDIR" || { echo "! \$SRCDIR not set" ; exit 1 ; }
mkdir -p $BUILDDIR $SRCDIR $DESTDIR
-
name: cmake
run: cmake $CMAKE_ARGS $SRCDIR
-
name: generate coverage report
env:
COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
run: |
if [ -n "$COVERITY_SCAN_TOKEN" ]; then
$BUILDDIR/coveritytool/bin/cov-build --dir cov-int make -j2
tar caf calamares-ci.tar.xz cov-int
curl -k --form token=$COVERITY_SCAN_TOKEN \
--form email=groot@kde.org \
--form file=@calamares-ci.tar.xz \
--form version="calamares-`date -u +%Y%m%d`" \
--form description="calamares on `date -u`" \
https://scan.coverity.com/builds?project=calamares%2Fcalamares
fi
-
name: make
run: make -j2 VERBOSE=1
-
name: build results
run: ls -la $( find "$BUILDDIR" -type f -name '*.so' )
-
name: install
id: install
run: make install VERBOSE=1
-
name: debug install
if: ${{ failure() && steps.install.outcome == 'failure' }}
run: ls -la $( find "$DESTDIR" -type f -name '*.so' )