Merge pull request 'patch-addControlfile' (#5) from patch-addControlfile into dev

Reviewed-on: #5
This commit is contained in:
Marko Oldenburg 2023-01-04 18:36:53 +01:00
commit eb7aa3f011
15 changed files with 11 additions and 285 deletions

14
.gitattributes vendored
View File

@ -1,14 +0,0 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto eol=lf
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.pm text eol=lf
*.pl text eol=lf
*.hash text eol=lf
*.txt text eol=lf
*.sh text eol=lf
# Denote all files that are truly binary and should not be modified.
*.hex binary
*.bin binary

View File

@ -1,7 +0,0 @@
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

View File

@ -1,97 +0,0 @@
name: Fhem UnitTest
on:
push:
branches:
paths:
- 'FHEM/**'
- 'UnitTest/**'
- 't/**'
- '.github/workflows/fhem_test.yml'
schedule:
- cron: '43 17 * * 1'
jobs:
update_controls:
env:
CONTROLS_FILENAME: controls_${{ github.event.repository.name }}.txt
runs-on: ubuntu-latest
steps:
- name: Extract branch name
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/*/})"
id: extract_branch
- name: Checkout Repostory
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: update controls files
uses: fhem/fhem-controls-actions@v2
with:
filename: ${{env.CONTROLS_FILENAME}}
- name: update CHANGED
run: |
LOG=$(date +"%Y-%m-%d")
LOG+=" - $(git log -1 --pretty=%B)"
echo "$LOG" | cat - CHANGED 2>/dev/null >> temp || true && mv temp CHANGED
- name: git commit back
run: |
git config --global user.email "action@github.com"
git config --local user.name "GitHub Action"
git add CHANGED ${{env.CONTROLS_FILENAME}} || true
git log -1 --name-only --pretty=format: | grep -Eo '[0-9]{2}_.*.pm$' && git commit CHANGED ${{env.CONTROLS_FILENAME}} -m "Automatic updated controls and CHANGED" || true
- name: git push
uses: ad-m/github-push-action@v0.6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ steps.extract_branch.outputs.branch }}
# test:
# runs-on: ubuntu-latest
# if: github.event_name == 'push'
# strategy:
# matrix:
# os: ['ubuntu-latest']
# perl: [ '5.22', '5.28', '5.30', '5.32' ]
#
# name: Perl ${{ matrix.perl }} on ${{ matrix.os }}
# steps:
# - uses: actions/checkout@v3
# - uses: shogo82148/actions-setup-perl@v1.18.0
# with:
# perl-version: ${{ matrix.perl }}
# install-modules-with: cpanm
# install-modules-args: --notest
# - name: install fhem via deb package
# run: |
# wget -qO - http://debian.fhem.de/archive.key | sudo apt-key add -
# echo "deb http://debian.fhem.de/nightly/ /" | sudo tee -a /etc/apt/sources.list
# sudo apt-get update -qq
# sudo apt-get install fhem -y
# sudo systemctl stop fhem
# sudo chown -R --reference=README.md /opt/fhem
## - name: run prove on perl modules (testscripts)
## run: prove --exec 'perl -MDevel::Cover=-silent,1 -I FHEM ' -I FHEM -r -vv t/FHEM/<packagename>
## - uses: codecov/codecov-action@v1
## with:
## token: ${{ secrets.CODECOV_TOKEN }}
## file: ./cover_db/clover.xml
## flags: unittests,perl,modules
## name: perl modules (testscripts) ${{ matrix.perl }}
# - name: run prove fhem testsuite ${{ matrix.perl }} on modules
# run: |
# cp -r FHEM/* ${FHEM_DIR}/FHEM/
# cd ${FHEM_DIR}
# prove --exec 'perl -MDevel::Cover=-silent,1 fhem.pl -t' -I FHEM -r -vv ${GITHUB_WORKSPACE}/t/FHEM/98_Matrix/[0-9][0-9]_*/
# sleep 3
# cp -R /opt/fhem/cover_db ${GITHUB_WORKSPACE}/
# ls -l ${GITHUB_WORKSPACE}
# env:
# FHEM_DIR: /opt/fhem
# - name: Create clover report
# run: cover -report clover
## - uses: codecov/codecov-action@v1
## with:
## token: ${{ secrets.CODECOV_TOKEN }}
## file: ./cover_db/clover.xml
## flags: unittests,fhem,modules
## name: fhem (testscripts) ${{ matrix.perl }}

View File

@ -1,34 +0,0 @@
name: Perlcritic check
on:
pull_request:
types: [opened, synchronize]
jobs:
critic:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: shogo82148/actions-setup-perl@v1.18.0
with:
perl-version: 5.32
install-modules-with: cpanm
install-modules: Perl::Critic Task::PerlCriticAllPolicies
install-modules-args: --notest
- uses: reviewdog/action-setup@v1
with:
reviewdog_version: latest # Optional. [latest,nightly,v.X.Y.Z]
- name: run perlcritic and send report via reviewdog
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
(perlcritic --verbose 1 --profile .perlcritic ./FHEM; perlcritic --verbose 1 --profile .perlcritic ./lib; ) | \
reviewdog -efm '%f:%l:%c:%m' \
-name="perlcritic" \
-reporter="github-pr-check" \
-filter-mode="added" \
-fail-on-error="false" \
-level="warning" \

37
.gitignore vendored
View File

@ -1,37 +0,0 @@
!Build/
.last_cover_stats
/META.yml
/META.json
/MYMETA.*
*.o
*.pm.tdy
*.bs
.vscode/
.gitignore
# Devel::Cover
cover_db/
# Devel::NYTProf
nytprof.out
# Dizt::Zilla
/.build/
# Module::Build
_build/
Build
Build.bat
# Module::Install
inc/
# ExtUtils::MakeMaker
/blib/
/_eumm/
/*.gz
/Makefile
/Makefile.old
/MANIFEST.bak
/pm_to_blib
/*.zip

View File

@ -1,2 +0,0 @@
severity = 5
color = 1

View File

@ -370,7 +370,7 @@ __END__
"abstract": "Stellt einen Matrix-Chatbot bereit" "abstract": "Stellt einen Matrix-Chatbot bereit"
} }
}, },
"version": "v0.15.3", "version": "v0.15.4",
"author": [ "author": [
"Manfred Bielemeier" "Manfred Bielemeier"
], ],

View File

@ -1,4 +1,4 @@
# FHEM/98_Matrix.pm # FHEM/70_Matrix.pm
## Vorwort ## Vorwort
Ich habe seit gefühlten Ewigkeiten FHEM im Einsatz und jetzt neu auch Matrix, was bei mir Telegram als Meldungszentrale ablösen soll. Ich bin dabei einen Bot als FHEM-Modul aufzubauen der sowohl Meldungen absetzen kann als auch Befehle empfangen kann. Ich habe seit gefühlten Ewigkeiten FHEM im Einsatz und jetzt neu auch Matrix, was bei mir Telegram als Meldungszentrale ablösen soll. Ich bin dabei einen Bot als FHEM-Modul aufzubauen der sowohl Meldungen absetzen kann als auch Befehle empfangen kann.
@ -33,50 +33,3 @@ https://wiki.fhem.de/wiki/DevelopmentModuleIntro
### lib/ ### lib/
Put any libs(pure perl modules) you provide in a own package (not main) create in here Put any libs(pure perl modules) you provide in a own package (not main) create in here
## automated Testing
### t/FHEM/98_Matrix/*
Unittests for the fhem mdoule run via github actions if needed you have to write them into folder t/FHEM/<modulename>/
### t/FHEM/<packagename>/*
Unittests for the perl mdoule run via github actions if needed you have to write them into folder t/FHEM/<PACKAGENAME>/
Unittests (run prove on perl modules (testscripts)) needs to be enabled in the fhem_test.yml workflow
```
- name: run prove on perl modules (testscripts)
run: prove --exec 'perl -MDevel::Cover=-silent,1 -I FHEM ' -I FHEM -r -vv t/FHEM/<packagename>
```
### cpanfile
Cpan modules needed for running your module and your tests, they will be installed after perl is set up and running
### .github/workflows/update.yml
This is a github action workflow which creates a controls file which is needed for fhem update command.
You are then able to install your new module
`update all https://raw.githubusercontent.com/fhem/<reponame>/<branch>/controls_<reponame>.txt`
### .github/workflows/fhem_test.yml
This is a github action workflow which runs all your tests in t/xx_<Module> folder with different perl versions.
### .github/dependabot.yml
Dependabot will check if there are new versions form used actions you are using in your worflows and inform you.
### Code coverage
You can use codecov (https://about.codecov.io/) to monitor your test code coveage.
Simply enable the coverage action an provide a token vom codecov.io via github secrets
- uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./cover_db/clover.xml
flags: unittests,fhem,modules
name: fhem (testscripts) ${{ matrix.perl }}

2
controls_Matrix.txt Normal file
View File

@ -0,0 +1,2 @@
UPD 2023-01-04_18:24:55 16959 FHEM/70_Matrix.pm
UPD 2023-01-04_17:59:18 51844 lib/FHEM/Devices/Matrix/Client.pm

View File

@ -1 +0,0 @@
UPD 2022-11-24_23:21:11 16031 FHEM/98_Matrix.pm

View File

@ -1 +0,0 @@
UPD 2022-01-07_00:05:45 4688 FHEM/98_Matrix.pm

View File

@ -1,4 +0,0 @@
requires 'Test2::Suite';
requires 'Devel::Cover';
requires 'Devel::Cover::Report::Clover';
recommends 'Pod::Usage';

View File

@ -1,14 +1,14 @@
parseParams#!/usr/bin/perl -w #!/usr/bin/perl -w
use File::Basename; use File::Basename;
use POSIX qw(strftime); use POSIX qw(strftime);
use strict; use strict;
my @filenames = ( 'FHEM/98_Matrix.pm', my @filenames = ( 'FHEM/70_Matrix.pm',
'lib/FHEM/Devices/Matrix.pm' 'lib/FHEM/Devices/Matrix/Client.pm',
); );
my $controlsfile = 'controls_Matrix.txt'; my $controlsfile = 'controls_Matrix.txt';
open(FH, ">$controlsfile") || return("Can't open $controlsfile: $!"); open(FH, ">$controlsfile") || return("Can't open $controlsfile: $!");

View File

@ -1,31 +0,0 @@
use strict;
use warnings;
use Test2::V0;
use Test2::Tools::Compare qw{is U};
InternalTimer(time()+1, sub() {
my %hash;
$hash{TEMPORARY} = 1;
$hash{NAME} = q{dummyMatrix};
$hash{TYPE} = q{Matrix server user};
$hash{STAE} = q{???};
subtest "Matrix Test checking define" => sub {
$hash{DEF} = "pass";
plan(2);
my $ret = Matrix_Define(\%hash,qq{$hash{NAME} $hash{TYPE}});
like ($ret, qr/too few parameters: define <name> Matrix <greet>/, 'check error message Matrix_Define');
$ret = Matrix_Define(\%hash,qq{$hash{NAME} $hash{TYPE} $hash{DEF}});
is ($ret, U(), 'check returnvalue Matrix_Define');
};
done_testing();
exit(0);
}, 0);
1;

View File

@ -1 +0,0 @@
define dummyMatrix Matrix matrix.web05.de