Allowing negative values for managed counters #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Domoticz Development (Beta) | |
on: | |
push: | |
branches: | |
- development | |
paths-ignore: | |
- 'msbuild/**' | |
- '.github/**' | |
- 'tools/**' | |
- '**.md' | |
- '**.txt' | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
# This workflow contains a single job called "build" | |
build: | |
# The type of runner that the job will run on | |
#runs-on: ubuntu-latest # Per Dec 2022 latest = 22.04 with GCC 11, OpenSSL3.0 | |
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 | |
submodules: true | |
# Prepare environment | |
- name: prepare environment | |
run: | | |
sudo timedatectl set-timezone Europe/Amsterdam | |
buildnr=$(git rev-list HEAD --count) | |
echo "BUILDNR=$(($buildnr + 2107))" >> $GITHUB_ENV | |
#- name: Make an error (Enable debug) | |
# run: ./not-exist-file.sh it bloke build | |
# 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 libcereal-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.27.6/cmake-3.27.6-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://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.tar.gz >> /dev/null 2>&1 | |
tar xfz boost_1_83_0.tar.gz | |
cd boost_1_83_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 | |
# 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: false | |
# Packaging | |
- name: package domoticz | |
#if: ${{ false }} | |
run: | | |
cd $GITHUB_WORKSPACE | |
mkdir package | |
tar czf package/domoticz_linux_x86_64-${{ env.BUILDNR }}.tgz domoticz History.txt License.txt domoticz.sh server_cert.pem updatebeta updaterelease www/ scripts/ dzVents/ | |
shasum -a 256 package/domoticz_linux_x86_64-${{ env.BUILDNR }}.tgz > package/domoticz_linux_x86_64-${{ env.BUILDNR }}.tgz.sha256sum | |
# Artifact upload | |
- name: Upload artifacts | |
#if: ${{ false }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: domoticz_linux_x86_64-${{ env.BUILDNR }} | |
path: package/ | |
retention-days: 7 | |
if-no-files-found: error | |
# Deploy | |
# Using WebHooks and 'workflow_run' events on this action, the artifact will be available via other channels as well | |
#- name: Start SSH debug Session | |
# uses: luchihoratiu/debug-via-ssh@main | |
# with: | |
# NGROK_AUTH_TOKEN: ${{ secrets.NGROK_TOKEN }} | |
# SSH_PASS: ${{ secrets.NGROK_PASSWORD }} |