6 Commits

8 changed files with 361 additions and 815 deletions
+6
View File
@@ -1,2 +1,8 @@
[alias]
xtask = "run --package xtask --"
[registry]
default = "huizinga"
[registries.huizinga]
index = "sparse+https://git.huizinga.dev/api/packages/infra/cargo/"
+23
View File
@@ -0,0 +1,23 @@
name: Audit
on:
push:
paths:
- "**/Cargo.toml"
- "**/Cargo.lock"
schedule:
- cron: "0 0 * * *"
jobs:
audit:
name: cargo audit
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
- uses: rustsec/audit-check@v2.0.0
with:
token: ${{ secrets.GITEA_TOKEN }}
+32
View File
@@ -0,0 +1,32 @@
name: CI
on:
push:
branches:
- "main"
tags:
- "*"
pull_request:
jobs:
prek:
name: prek
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- uses: j178/prek-action@v2
cargo-shear:
name: cargo shear
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@v2
with:
tool: cargo-shear
- run: cargo shear --deny-warnings
+54
View File
@@ -0,0 +1,54 @@
name: Release-plz
on:
push:
branches:
- main
jobs:
# TODO: Uncomment in initial release commit
# release-plz:
# name: Release-plz Release
# runs-on: ubuntu-latest
# permissions:
# contents: write
# pull-requests: read
# steps:
# - &checkout
# uses: actions/checkout@v6
# with:
# fetch-depth: 0
# persist-credentials: false
# - uses: dtolnay/rust-toolchain@nightly
# - uses: Swatinem/rust-cache@v2
# - uses: taiki-e/install-action@v2
# with:
# tool: release-plz
# - &git-setup
# name: Configure git
# run: |
# git config user.name "Release-plz"
# git config user.email "release-plz@noreply.huizinga.dev"
# git config url.https://${{ gitea.actor }}:${{ secrets.GITEA_TOKEN }}@git.huizinga.dev/.insteadOf https://git.huizinga.dev/
# - env:
# CARGO_REGISTRIES_HUIZINGA_TOKEN: "Bearer ${{ secrets.REGISTRY_TOKEN }}"
# run: release-plz release --git-token "${{ secrets.GITEA_TOKEN }}" --forge gitea
release-plz-pr:
name: Release-plz PR
runs-on: ubuntu-latest
concurrency:
group: release-plz-${{ github.ref }}
cancel-in-progress: false
permissions:
contents: write
pull-requests: write
steps:
- *checkout
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@v2
with:
tool: release-plz
- *git-setup
- run: release-plz release-pr --git-token "${{ secrets.GITEA_TOKEN }}" --forge gitea
+3
View File
@@ -0,0 +1,3 @@
[[package]]
name = "xtask"
release = false
Generated
+228 -813
View File
File diff suppressed because it is too large Load Diff
+11 -2
View File
@@ -3,6 +3,7 @@ name = "crete"
version = "0.1.0"
edition = "2024"
default-run = "crete"
publish = ["huizinga"]
[workspace]
members = ["xtask"]
@@ -14,10 +15,14 @@ serde_json = "1.0.149"
[dependencies]
clap = { version = "4.6.0", features = ["derive"] }
clap_complete = "4.6.0"
gix-discover = "0.48.0"
gix-discover = { version = "0.49.0", features = ["sha1"] }
minijinja = { version = "2.18.0", features = ["json", "loader"] }
optional_struct = "0.5.2"
reqwest = { version = "0.13.2", features = ["blocking"] }
reqwest = { version = "0.13.2", default-features = false, features = [
"blocking",
"stream",
"native-tls",
] }
schemars = { workspace = true }
semver = { version = "1.0.27", features = ["serde"] }
serde = { version = "1.0.228", features = ["derive"] }
@@ -25,3 +30,7 @@ serde_json = { workspace = true }
serde_yaml = "0.9.34"
thiserror = "2.0.18"
walkdir = "2.5.0"
[lib]
test = false
doctest = false
+4
View File
@@ -0,0 +1,4 @@
# Crete
A tool that takes node and cluster configs and uses it to generate talos configs
and render jinja templates.