diff --git a/.drone.jsonnet b/.drone.jsonnet
index 6166975..34fb711 100644
--- a/.drone.jsonnet
+++ b/.drone.jsonnet
@@ -1,110 +1,148 @@
-local AnsibleVersions(version="latest", package="ansible") = {
- name: "ansible-" + version,
- image: "python:3.7",
- pull: "always",
- environment: {
- PY_COLORS: 1
- },
- commands: [
- "pip install " + package + " ansible-later~=0.2.0 -qq",
- "git clone https://gitea.rknet.org/ansible/ansible-later-policy.git ~/policy",
- "ansible-later -c ~/policy/config.yml"
- ],
- depends_on: [
- "clone",
- ],
-};
-
local PipelineLinting = {
- kind: "pipeline",
- name: "linting",
- platform: {
- os: "linux",
- arch: "amd64",
- },
- steps: [
- AnsibleVersions(version="latest", package="ansible"),
- AnsibleVersions(version="master", package="git+https://github.com/ansible/ansible.git@devel"),
- ],
- trigger: {
- ref: ["refs/heads/master", "refs/tags/**", "refs/pull/**"],
- },
+ kind: "pipeline",
+ name: "linting",
+ platform: {
+ os: "linux",
+ arch: "amd64",
+ },
+ steps: [
+ {
+ name: "ansible-later",
+ image: "xoxys/ansible-later:latest",
+ environment: {
+ PY_COLORS: 1
+ },
+ commands: [
+ "git clone https://gitea.rknet.org/ansible/ansible-later-policy.git ~/policy",
+ "ansible-later -c ~/policy/config.yml"
+ ],
+ },
+ ],
+ trigger: {
+ ref: ["refs/heads/master", "refs/tags/**", "refs/pull/**"],
+ },
};
local PipelineDeployment = {
- kind: "pipeline",
- name: "deployment",
- platform: {
- os: "linux",
- arch: "amd64",
- },
- workspace: {
- base: "/drone/src",
- path: "xoxys.homeassistant",
- },
- concurrency: {
- limit: 1,
- },
- steps: [
- {
- name: "molecule",
- image: "xoxys/molecule:do-linux-amd64",
- pull: "always",
- environment: {
- DO_API_KEY: { "from_secret": "do_api_key" },
- USER: "root",
- MOLECULE_CUSTOM_MODULES_REPO: "https://gitea.rknet.org/ansible/custom_modules",
- MOLECULE_CUSTOM_FILTERS_REPO: "https://gitea.rknet.org/ansible/custom_filters",
- PY_COLORS: 1
- },
- commands: [
- "/bin/bash /docker-entrypoint.sh",
- "molecule test -s default",
- ],
+ kind: "pipeline",
+ name: "deployment",
+ platform: {
+ os: "linux",
+ arch: "amd64",
+ },
+ concurrency: {
+ limit: 1
+ },
+ workspace: {
+ base: "/drone/src",
+ path: "xoxys.homeassistant"
+ },
+ steps: [
+ {
+ name: "ansible-molecule",
+ image: "xoxys/molecule:do-linux-amd64",
+ environment: {
+ DO_API_KEY: { "from_secret": "do_api_key" },
+ USER: "root",
+ MOLECULE_CUSTOM_MODULES_REPO: "https://gitea.rknet.org/ansible/custom_modules",
+ MOLECULE_CUSTOM_FILTERS_REPO: "https://gitea.rknet.org/ansible/custom_filters",
+ PY_COLORS: 1
+ },
+ commands: [
+ "/bin/bash /docker-entrypoint.sh",
+ "molecule test -s default",
+ ],
+ },
+ ],
+ depends_on: [
+ "linting",
+ ],
+ trigger: {
+ ref: ["refs/heads/master", "refs/tags/**"],
},
- ],
- depends_on: [
- "linting",
- ],
- trigger: {
- ref: ["refs/heads/master", "refs/tags/**"],
- },
};
-local PipelineNotifications = {
- kind: "pipeline",
- name: "notifications",
- platform: {
- os: "linux",
- arch: "amd64",
- },
- clone: {
- disable: true,
- },
- steps: [
- {
- name: "matrix",
- image: "plugins/matrix",
- settings: {
- homeserver: "https://matrix.rknet.org",
- roomid: "MtidqQXWWAtQcByBhH:rknet.org",
- template: "Status: **{{ build.status }}**
Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}
Message: {{ build.message }}",
- username: { "from_secret": "matrix_username" },
- password: { "from_secret": "matrix_password" },
- },
+local PipelineDocumentation = {
+ kind: "pipeline",
+ name: "documentation",
+ platform: {
+ os: "linux",
+ arch: "amd64",
+ },
+ steps: [
+ {
+ name: "ansible-doctor",
+ image: "xoxys/ansible-doctor:latest",
+ environment: {
+ ANSIBLE_DOCTOR_LOG_LEVEL: "INFO",
+ ANSIBLE_DOCTOR_FORCE_OVERWRITE: true,
+ ANSIBLE_DOCTOR_EXCLUDE_FILES: "molecule/",
+ ANSIBLE_DOCTOR_CUSTOM_HEADER: "HEADER.md",
+ PY_COLORS: 1
+ },
+ },
+ {
+ name: "push-to-repo",
+ image: "plugins/git-action:latest",
+ settings: {
+ actions: ["commit", "push"],
+ author_email: "shipper@rknet.org",
+ author_name: "DroneShipper",
+ branch: "master",
+ message: "[SKIP CI] update readme",
+ remote: "https://gitea.rknet.org/ansible/xoxys.homeassistant",
+ netrc_machine: "gitea.rknet.org",
+ netrc_username: {"from_secret": "gitea_username"},
+ netrc_password: {"from_secret": "gitea_token"},
+ },
+ when: {
+ ref: ["refs/heads/master"],
+ },
+ },
+ ],
+ depends_on: [
+ "deployment",
+ ],
+ trigger: {
+ ref: ["refs/heads/master", "refs/tags/**", "refs/pull/**"],
+ },
+};
+
+local PipelineNotification= {
+ kind: "pipeline",
+ name: "notification",
+ platform: {
+ os: "linux",
+ arch: "amd64",
+ },
+ clone: {
+ disable: true,
+ },
+ steps: [
+ {
+ name: "matrix",
+ image: "plugins/matrix",
+ settings: {
+ homeserver: { "from_secret": "matrix_homeserver" },
+ roomid: { "from_secret": "matrix_roomid" },
+ template: "Status: **{{ build.status }}**
Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}
Message: {{ build.message }}",
+ username: { "from_secret": "matrix_username" },
+ password: { "from_secret": "matrix_password" },
+ },
+ },
+ ],
+ depends_on: [
+ "documentation",
+ ],
+ trigger: {
+ status: [ "success", "failure" ],
+ ref: ["refs/heads/master", "refs/tags/**"],
},
- ],
- depends_on: [
- "deployment",
- ],
- trigger: {
- status: [ "success", "failure" ],
- ref: ["refs/heads/master", "refs/tags/**"],
- },
};
[
- PipelineLinting,
- PipelineDeployment,
- PipelineNotifications,
+ PipelineLinting,
+ PipelineDeployment,
+ PipelineDocumentation,
+ PipelineNotification,
]
diff --git a/.drone.yml b/.drone.yml
index 1c5e73c..b62ad2f 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -7,29 +7,13 @@ platform:
arch: amd64
steps:
-- name: ansible-latest
- pull: always
- image: python:3.7
+- name: ansible-later
+ image: xoxys/ansible-later:latest
commands:
- - pip install ansible ansible-later~=0.2.0 -qq
- git clone https://gitea.rknet.org/ansible/ansible-later-policy.git ~/policy
- ansible-later -c ~/policy/config.yml
environment:
PY_COLORS: 1
- depends_on:
- - clone
-
-- name: ansible-master
- pull: always
- image: python:3.7
- commands:
- - "pip install git+https://github.com/ansible/ansible.git@devel ansible-later~=0.2.0 -qq"
- - git clone https://gitea.rknet.org/ansible/ansible-later-policy.git ~/policy
- - ansible-later -c ~/policy/config.yml
- environment:
- PY_COLORS: 1
- depends_on:
- - clone
trigger:
ref:
@@ -53,8 +37,7 @@ workspace:
path: xoxys.homeassistant
steps:
-- name: molecule
- pull: always
+- name: ansible-molecule
image: xoxys/molecule:do-linux-amd64
commands:
- /bin/bash /docker-entrypoint.sh
@@ -77,7 +60,54 @@ depends_on:
---
kind: pipeline
-name: notifications
+name: documentation
+
+platform:
+ os: linux
+ arch: amd64
+
+steps:
+- name: ansible-doctor
+ image: xoxys/ansible-doctor:latest
+ environment:
+ ANSIBLE_DOCTOR_CUSTOM_HEADER: HEADER.md
+ ANSIBLE_DOCTOR_EXCLUDE_FILES: molecule/
+ ANSIBLE_DOCTOR_FORCE_OVERWRITE: true
+ ANSIBLE_DOCTOR_LOG_LEVEL: INFO
+ PY_COLORS: 1
+
+- name: push-to-repo
+ image: plugins/git-action:latest
+ settings:
+ actions:
+ - commit
+ - push
+ author_email: "shipper@rknet.org"
+ author_name: DroneShipper
+ branch: master
+ message: "[SKIP CI] update readme"
+ netrc_machine: gitea.rknet.org
+ netrc_password:
+ from_secret: gitea_token
+ netrc_username:
+ from_secret: gitea_username
+ remote: https://gitea.rknet.org/ansible/xoxys.homeassistant
+ when:
+ ref:
+ - refs/heads/master
+
+trigger:
+ ref:
+ - refs/heads/master
+ - "refs/tags/**"
+ - "refs/pull/**"
+
+depends_on:
+- deployment
+
+---
+kind: pipeline
+name: notification
platform:
os: linux
@@ -90,10 +120,12 @@ steps:
- name: matrix
image: plugins/matrix
settings:
- homeserver: https://matrix.rknet.org
+ homeserver:
+ from_secret: matrix_homeserver
password:
from_secret: matrix_password
- roomid: MtidqQXWWAtQcByBhH:rknet.org
+ roomid:
+ from_secret: matrix_roomid
template: "Status: **{{ build.status }}**
Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}
Message: {{ build.message }}"
username:
from_secret: matrix_username
@@ -107,10 +139,10 @@ trigger:
- failure
depends_on:
-- deployment
+- documentation
---
kind: signature
-hmac: be8a923bf27f1b6781f90c34e1dd06f497ead5db56657e117f7675c03a70c640
+hmac: 85e6b02e681668f091f3aeb24d5761893ddcb6e7da7393827491a7746d7cdc1e
...
diff --git a/.gitignore b/.gitignore
index 20fb979..5becda8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,5 +9,3 @@ __pycache__/
*.py[cod]
*$py.class
-# --> Molecule
-.yamllint
diff --git a/HEADER.md b/HEADER.md
new file mode 100644
index 0000000..a762066
--- /dev/null
+++ b/HEADER.md
@@ -0,0 +1,4 @@
+# xoxys.homeassistant
+
+[![Build Status](https://drone.rknet.org/api/badges/ansible/xoxys.homeassistant/status.svg)](https://drone.rknet.org/ansible/xoxys.homeassistant)
+
diff --git a/defaults/main.yml b/defaults/main.yml
index b3835ba..ffd6b7e 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -3,9 +3,7 @@ homeassistant_version: 0.92.1
homeassistant_user: homeassistant
homeassistant_user_home: "/home/{{ homeassistant_user }}"
-# homeassistant_uid: # defaults to not set
homeassistant_group: "{{ homeassistant_user }}"
-# homeassistant_gid: # defaults to not set
homeassistant_extra_groups:
- tty
- dialout
@@ -36,14 +34,18 @@ homeassistant_open_ports:
-A INPUT -m state --state NEW -p tcp --dport {{ homeassistant_http_bind_port }} -j ACCEPT
state: present
-# override /boot/cmdline.txt with new content
-# this can be necessary if you use searial hardware
-# be careful! wrong config can make your system unusable!
+# @var homeassistant_cmdline_override_enabled:description: >
+# Override `/boot/cmdline.txt` with given conten. This can be necessary
+# if you use searial hardware, but be careful! Wrong configuration
+# may leave your system unusable!
+# @end
homeassistant_cmdline_override_enabled: False
homeassistant_cmdline_content: "console=tty1 root=/dev/mmcblk0p3 rootfstype=ext4 elevator=deadline rootwait"
-# to prevent ModemManger from binding serial devices like CC2531
-# devices can be skipped by an udev rule
+# @var homeassistant_exclude_modemmanager:description: >
+# Prevent ModemManger from binding to serial devices and therefor
+# blocking controllers like a `CC2531`. Devices can be skipped by a udev rule.
+# @end
homeassistant_exclude_modemmanager: False
homeassistant_serial_device:
- vendor_id: "0000"
diff --git a/tasks/prepare.yml b/tasks/prepare.yml
index 910be0d..6f3a4df 100644
--- a/tasks/prepare.yml
+++ b/tasks/prepare.yml
@@ -4,14 +4,12 @@
group:
name: "{{ homeassistant_group }}"
state: present
- gid: "{{ homeassistant_gid | default(omit) }}"
- name: Create user '{{ homeassistant_user }}'
user:
comment: homeassistant
name: "{{ homeassistant_user }}"
home: "{{ homeassistant_user_home }}"
- uid: "{{ homeassistant_uid | default(omit) }}"
group: "{{ homeassistant_group }}"
groups: "{{ homeassistant_extra_groups | join(',') }}"