From 93baa69b1308b62c4113e3634820982d2d38ae19 Mon Sep 17 00:00:00 2001 From: James Harton Date: Sat, 16 May 2026 17:17:24 +1200 Subject: [PATCH] chore: CI setup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mirrors the standard beam-bots CI scaffolding from bb_servo_feetech / bb_liveview / etc.: - `.github/workflows/ci.yml` — delegates to the `beam-bots/.github/.github/workflows/elixir-ci.yml` reusable workflow, pinned to the same commit (61ed48a) the rest of the ecosystem uses. Enables docs deploy and hex release on tagged versions. - `.github/dependabot.yml` — weekly Mix and GitHub Actions updates, with dev-dependencies grouped into a single PR. - `renovate.json` + `.license` sidecar — asdf-managed tool version updates on a monthly schedule. - `.tool-versions` — pins erlang 28.2, elixir 1.19.4, pipx 1.8.0. --- .github/dependabot.yml | 24 ++++++++++++++++++++++++ .github/workflows/ci.yml | 27 +++++++++++++++++++++++++++ .tool-versions | 3 +++ .tool-versions.license | 3 +++ renovate.json | 15 +++++++++++++++ renovate.json.license | 3 +++ 6 files changed, 75 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .tool-versions create mode 100644 .tool-versions.license create mode 100644 renovate.json create mode 100644 renovate.json.license diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..434d621 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,24 @@ +# SPDX-FileCopyrightText: 2026 James Harton +# +# SPDX-License-Identifier: Apache-2.0 + +version: 2 +updates: + - package-ecosystem: "mix" + directory: "/" + schedule: + interval: "weekly" + groups: + dev-dependencies: + patterns: + - "credo" + - "dialyxir" + - "ex_check" + - "ex_doc" + - "git_ops" + - "mix_audit" + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..37b2072 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,27 @@ +# SPDX-FileCopyrightText: 2026 James Harton +# +# SPDX-License-Identifier: Apache-2.0 + +name: CI + +on: + push: + branches: [main] + tags: ["v*"] + pull_request: + branches: [main] + +permissions: + contents: write + security-events: write + pages: write + id-token: write + +jobs: + CI: + uses: beam-bots/.github/.github/workflows/elixir-ci.yml@61ed48adfb0acec3baa9a32114d377546ee70478 # main + with: + enable-docs-deploy: true + enable-release: true + secrets: + HEX_API_KEY: ${{ secrets.HEX_API_KEY }} diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..c4edd9e --- /dev/null +++ b/.tool-versions @@ -0,0 +1,3 @@ +erlang 28.2 +elixir 1.19.4 +pipx 1.8.0 diff --git a/.tool-versions.license b/.tool-versions.license new file mode 100644 index 0000000..e228c5b --- /dev/null +++ b/.tool-versions.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 James Harton + +SPDX-License-Identifier: Apache-2.0 diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..f018afe --- /dev/null +++ b/renovate.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended", + ":semanticCommits", + ":semanticPrefixChore", + "schedule:monthly", + ":assignee(jimsynz)", + ":rebaseStalePrs", + ":enableVulnerabilityAlerts", + ":disableDependencyDashboard" + ], + "rebaseWhen": "behind-base-branch", + "enabledManagers": ["asdf"] +} diff --git a/renovate.json.license b/renovate.json.license new file mode 100644 index 0000000..e228c5b --- /dev/null +++ b/renovate.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 James Harton + +SPDX-License-Identifier: Apache-2.0