Skip to content

Show selector level instead of index #1611

Show selector level instead of index

Show selector level instead of index #1611

name: Domoticz PR Check
on:
pull_request:
branches:
- development
- master
paths-ignore:
- 'msbuild/**'
- '.github/**'
- 'tools/**'
- '**.md'
- '**.txt'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
PR_NR: ${{ github.event.pull_request.number }}
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
#runs-on: ubuntu-20.04
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
with:
fetch-depth: 0
# Prepare environment
- name: prepare environment
run: |
sudo timedatectl set-timezone Europe/Amsterdam
buildnr=$(git rev-list HEAD --count)
echo "BUILDNR=$(($buildnr + 2107))" >> $GITHUB_ENV
if [ "${GITHUB_EVENT_NAME}" == 'pull_request' ]; then
echo "BRANCH_NAME=$(echo ${GITHUB_HEAD_REF} | tr / -)" >> $GITHUB_ENV
echo "PRNUMBER=$(echo ${PR_NR})" >> $GITHUB_ENV
echo "Domoticz build for PR ${PR_NR}! Building version $(($buildnr + 2107)) from branch ${GITHUB_HEAD_REF}"
else
echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/} | tr / -)" >> $GITHUB_ENV
echo "PRNUMBER=$(echo ${GITHUB_SHA})" >> $GITHUB_ENV
fi
# install dependencies
- name: dependencies
run: |
echo 'APT::Get::Always-Include-Phased-Updates "false";' | sudo tee /etc/apt/apt.conf.d/99-phased-updates
sudo apt-mark hold grub-efi-amd64-signed
sudo apt-get update --fix-missing
sudo apt-get upgrade
sudo apt-get install make gcc g++ libssl-dev git libcurl4-gnutls-dev libusb-dev python3-dev zlib1g-dev liblua5.3-dev uthash-dev
sudo apt-get install python3-pytest python3-pytest-bdd
# sudo apt-get install lua5.3 luarocks
# sudo luarocks install busted
# sudo luarocks install luacov
# Disabled March 2022 - sudo luarocks install lodash
# get CMake
- name: cmake-compile
run: |
curl -sSL https://github.com/Kitware/CMake/releases/download/v3.28.1/cmake-3.28.1-Linux-x86_64.tar.gz -o cmake.tar.gz;
sudo tar xf cmake.tar.gz --strip 1 -C /usr/local;
export PATH=/usr/local/bin:$PATH;
# Boost
- name: build boost libraries
run: |
wget https://github.com/boostorg/boost/releases/download/boost-1.84.0/boost-1.84.0.tar.gz >> /dev/null 2>&1
tar xfz boost-1.84.0.tar.gz
cd boost-1.84.0/
./bootstrap.sh
./b2 stage threading=multi link=static --with-thread --with-system --with-chrono >> /dev/null 2>&1
sudo ./b2 install threading=multi link=static --with-thread --with-system --with-chrono >> /dev/null 2>&1
# OpenZWave
- name: openzwave
run: |
cd $GITHUB_WORKSPACE
cd ..
git clone https://github.com/domoticz/open-zwave.git open-zwave-read-only
cd open-zwave-read-only
make
sudo make install >> /dev/null 2>&1
# Domoticz
- name: build domoticz
run: |
cd $GITHUB_WORKSPACE
cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt
make
# Run automated tests (disabled March 2022)
#- name: unit-tests domoticz-dzVents
# run: |
# cd $GITHUB_WORKSPACE/dzVents/runtime/tests
# busted --coverage -o TAP *
# luacov
# tail -19 luacov.report.out
# continue-on-error: true
- name: functional-tests domoticz
run: |
cd $GITHUB_WORKSPACE
ln -s ../test/gherkin/resources/testwebcontent www/test
sudo ./domoticz -sslwww 0 -wwwroot www -pidfile /var/run/domoticz.pid -daemon
pytest-3 -rA --tb=no test/gherkin/
sudo kill -s TERM `sudo cat /var/run/domoticz.pid`
continue-on-error: true
# Packaging
- name: package domoticz
# if: ${{ false }}
run: |
cd $GITHUB_WORKSPACE
mkdir package
tar czf package/domoticz_linux_x86_64.tgz domoticz History.txt License.txt domoticz.sh server_cert.pem updatebeta updaterelease www/ scripts/ dzVents/
shasum -a 256 package/domoticz_linux_x86_64.tgz > package/domoticz_linux_x86_64.tgz.sha256sum
cp appversion.h.txt package/version_linux_x86_64.h
cp History.txt package/history_linux_x86_64.txt
# Artifact upload
- name: Upload artifacts
# if: ${{ false }}
uses: actions/upload-artifact@v3
with:
name: domoticz_linux_x86_64-${{ github.event.pull_request.number }}-${{ github.run_number }}
path: package/domoticz_linux_x86_64.tgz
retention-days: 7