Skip to content

Commit 0d5b95f

Browse files
committed
chore: add CI, build tooling, and dependency updates
Add ex_check, credo, dialyxir, ex_doc, mix_audit, git_ops for consistent CI checks. Add GitHub Actions workflow and Renovate configuration. Add direct feetech dependency for mix tasks that use the library without the full application started.
1 parent 6e304e9 commit 0d5b95f

10 files changed

Lines changed: 172 additions & 33 deletions

File tree

.check.exs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# SPDX-FileCopyrightText: 2026 James Harton
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
[
6+
tools: [
7+
{:credo, "mix credo --strict"},
8+
{:reuse, command: ["pipx", "run", "reuse", "lint", "-q"]}
9+
]
10+
]

.github/dependabot.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# SPDX-FileCopyrightText: 2026 James Harton
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
version: 2
6+
updates:
7+
- package-ecosystem: "mix"
8+
directory: "/"
9+
schedule:
10+
interval: "weekly"
11+
groups:
12+
dev-dependencies:
13+
patterns:
14+
- "credo"
15+
- "dialyxir"
16+
- "ex_check"
17+
- "ex_doc"
18+
- "git_ops"
19+
- "mix_audit"
20+
21+
- package-ecosystem: "github-actions"
22+
directory: "/"
23+
schedule:
24+
interval: "weekly"

.github/workflows/ci.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# SPDX-FileCopyrightText: 2026 James Harton
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
name: CI
6+
7+
on:
8+
push:
9+
branches: [main]
10+
tags: ["v*"]
11+
pull_request:
12+
branches: [main]
13+
14+
permissions:
15+
contents: write
16+
security-events: write
17+
pages: write
18+
id-token: write
19+
20+
jobs:
21+
CI:
22+
uses: beam-bots/.github/.github/workflows/elixir-ci.yml@61ed48adfb0acec3baa9a32114d377546ee70478 # main

mix.exs

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ defmodule BB.Example.SO101.MixProject do
1414
start_permanent: Mix.env() == :prod,
1515
aliases: aliases(),
1616
deps: deps(),
17+
dialyzer: [plt_add_apps: [:mix, :bb_ik_dls]],
1718
compilers: [:phoenix_live_view] ++ Mix.compilers(),
1819
listeners: [Phoenix.CodeReloader]
1920
]
@@ -49,16 +50,11 @@ defmodule BB.Example.SO101.MixProject do
4950
{:bb_liveview, bb_dep("~> 0.2", :bb_liveview)},
5051
{:bb_reactor, bb_dep("~> 0.2", :bb_reactor)},
5152
{:bb_servo_feetech, bb_dep("~> 0.2", :bb_servo_feetech)},
53+
{:feetech, bb_dep("~> 0.2", :feetech)},
5254
{:phoenix, "~> 1.8.3"},
5355
{:phoenix_html, "~> 4.1"},
54-
{:igniter, "~> 0.6", only: [:dev, :test]},
55-
{:tidewave, "~> 0.5", only: [:dev]},
56-
{:phoenix_live_reload, "~> 1.2", only: :dev},
5756
{:phoenix_live_view, "~> 1.1.0"},
58-
{:lazy_html, ">= 0.1.0", only: :test},
5957
{:phoenix_live_dashboard, "~> 0.8.3"},
60-
{:esbuild, "~> 0.10", runtime: Mix.env() == :dev},
61-
{:tailwind, "~> 0.3", runtime: Mix.env() == :dev},
6258
{:heroicons,
6359
github: "tailwindlabs/heroicons",
6460
tag: "v2.2.0",
@@ -71,7 +67,21 @@ defmodule BB.Example.SO101.MixProject do
7167
{:gettext, "~> 1.0"},
7268
{:jason, "~> 1.2"},
7369
{:dns_cluster, "~> 0.2.0"},
74-
{:bandit, "~> 1.5"}
70+
{:bandit, "~> 1.5"},
71+
72+
# dev/test
73+
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
74+
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
75+
{:esbuild, "~> 0.10", runtime: Mix.env() == :dev},
76+
{:ex_check, "~> 0.16", only: [:dev, :test], runtime: false},
77+
{:ex_doc, ">= 0.0.0", only: [:dev, :test], runtime: false},
78+
{:git_ops, "~> 2.9", only: [:dev, :test], runtime: false},
79+
{:igniter, "~> 0.6", only: [:dev, :test], runtime: false},
80+
{:lazy_html, ">= 0.1.0", only: :test},
81+
{:mix_audit, "~> 2.1", only: [:dev, :test], runtime: false},
82+
{:phoenix_live_reload, "~> 1.2", only: :dev},
83+
{:tailwind, "~> 0.3", runtime: Mix.env() == :dev},
84+
{:tidewave, "~> 0.5", only: [:dev]}
7585
]
7686
end
7787

mix.lock

Lines changed: 27 additions & 13 deletions
Large diffs are not rendered by default.

priv/gettext/default.pot

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
## This file is a PO Template file.
2+
##
3+
## "msgid"s here are often extracted from source code.
4+
## Add new messages manually only if they're dynamic
5+
## messages that can't be statically extracted.
6+
##
7+
## Run "mix gettext.extract" to bring this file up to
8+
## date. Leave "msgstr"s empty as changing them here has no
9+
## effect: edit them in PO (.po) files instead.
10+
#
11+
msgid ""
12+
msgstr ""
13+
14+
#: lib/bb_example_so101_web/components/core_components.ex:372
15+
#, elixir-autogen, elixir-format
16+
msgid "Actions"
17+
msgstr ""
18+
19+
#: lib/bb_example_so101_web/components/layouts.ex:103
20+
#: lib/bb_example_so101_web/components/layouts.ex:115
21+
#, elixir-autogen, elixir-format
22+
msgid "Attempting to reconnect"
23+
msgstr ""
24+
25+
#: lib/bb_example_so101_web/components/layouts.ex:110
26+
#, elixir-autogen, elixir-format
27+
msgid "Something went wrong!"
28+
msgstr ""
29+
30+
#: lib/bb_example_so101_web/components/layouts.ex:98
31+
#, elixir-autogen, elixir-format
32+
msgid "We can't find the internet"
33+
msgstr ""
34+
35+
#: lib/bb_example_so101_web/components/core_components.ex:78
36+
#, elixir-autogen, elixir-format
37+
msgid "close"
38+
msgstr ""

priv/gettext/default.pot.license

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
SPDX-FileCopyrightText: 2026 James Harton
2+
3+
SPDX-License-Identifier: Apache-2.0

priv/gettext/errors.pot

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
# SPDX-FileCopyrightText: 2026 James Harton
2-
#
3-
# SPDX-License-Identifier: Apache-2.0
4-
5-
## This is a PO Template file.
1+
## SPDX-FileCopyrightText: 2026 James Harton
62
##
7-
## `msgid`s here are often extracted from source code.
8-
## Add new translations manually only if they're dynamic
9-
## translations that can't be statically extracted.
10-
##
11-
## Run `mix gettext.extract` to bring this file up to
12-
## date. Leave `msgstr`s empty as changing them here has no
13-
## effect: edit them in PO (`.po`) files instead.
14-
3+
## SPDX-License-Identifier: Apache-2.0
4+
### This is a PO Template file.
5+
###
6+
### `msgid`s here are often extracted from source code.
7+
### Add new translations manually only if they're dynamic
8+
### translations that can't be statically extracted.
9+
###
10+
### Run `mix gettext.extract` to bring this file up to
11+
### date. Leave `msgstr`s empty as changing them here has no
12+
### effect: edit them in PO (`.po`) files instead.
13+
msgid ""
14+
msgstr ""

renovate.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
3+
"extends": [
4+
"config:recommended",
5+
":semanticCommits",
6+
":semanticPrefixChore",
7+
"schedule:monthly",
8+
":assignee(jimsynz)",
9+
":rebaseStalePrs",
10+
":enableVulnerabilityAlerts",
11+
":disableDependencyDashboard"
12+
],
13+
"rebaseWhen": "behind-base-branch",
14+
"enabledManagers": ["asdf"]
15+
}

renovate.json.license

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
SPDX-FileCopyrightText: 2026 James Harton
2+
3+
SPDX-License-Identifier: Apache-2.0

0 commit comments

Comments
 (0)