Merge pull request 'dev' (#6) from dev into patch-CoolTux
Reviewed-on: #6
This commit is contained in:
commit
1cc677d1e2
14
.gitattributes
vendored
14
.gitattributes
vendored
@ -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
|
|
7
.github/dependabot.yml
vendored
7
.github/dependabot.yml
vendored
@ -1,7 +0,0 @@
|
|||||||
version: 2
|
|
||||||
updates:
|
|
||||||
# Maintain dependencies for GitHub Actions
|
|
||||||
- package-ecosystem: "github-actions"
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: "weekly"
|
|
97
.github/workflows/fhem_test.yml
vendored
97
.github/workflows/fhem_test.yml
vendored
@ -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 }}
|
|
||||||
|
|
34
.github/workflows/perlCritic.yml
vendored
34
.github/workflows/perlCritic.yml
vendored
@ -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
37
.gitignore
vendored
@ -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
|
|
@ -1,2 +0,0 @@
|
|||||||
severity = 5
|
|
||||||
color = 1
|
|
@ -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"
|
||||||
],
|
],
|
||||||
|
49
README.md
49
README.md
@ -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
2
controls_Matrix.txt
Normal 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
|
@ -1 +0,0 @@
|
|||||||
UPD 2022-11-24_23:21:11 16031 FHEM/98_Matrix.pm
|
|
@ -1 +0,0 @@
|
|||||||
UPD 2022-01-07_00:05:45 4688 FHEM/98_Matrix.pm
|
|
4
cpanfile
4
cpanfile
@ -1,4 +0,0 @@
|
|||||||
requires 'Test2::Suite';
|
|
||||||
requires 'Devel::Cover';
|
|
||||||
requires 'Devel::Cover::Report::Clover';
|
|
||||||
recommends 'Pod::Usage';
|
|
@ -1,11 +1,11 @@
|
|||||||
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';
|
||||||
|
@ -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;
|
|
@ -1 +0,0 @@
|
|||||||
define dummyMatrix Matrix matrix.web05.de
|
|
Loading…
Reference in New Issue
Block a user