feat(cre): source tree skeleton with empty module dirs and CI workflow

- src/cre.cr entry point + version.cr
- Empty module dirs: cli, tui, engine, events, rotators, policy, audit, crypto, persistence, notifiers, compliance, config, domain, aws, vault, github, demo
- spec/ unit + integration + fixtures structure mirroring src/
- spec_helper.cr with stdlib spec + cre require
- GitHub Actions CI: format, unit matrix (Crystal 1.19/1.20/nightly x ubuntu/macos), integration with PG service, build job
This commit is contained in:
CarterPerez-dev 2026-04-28 23:54:59 -04:00
parent e69cc301cf
commit 8ebdd3fee7
51 changed files with 104 additions and 0 deletions

View File

@ -0,0 +1,73 @@
# ©AngelaMos | 2026
# ci.yml
name: CI - Credential Rotation Enforcer
on:
push:
paths:
- 'PROJECTS/intermediate/credential-rotation-enforcer/**'
- '.github/workflows/cre-*.yml'
pull_request:
paths:
- 'PROJECTS/intermediate/credential-rotation-enforcer/**'
defaults:
run:
working-directory: PROJECTS/intermediate/credential-rotation-enforcer
jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: crystal-lang/install-crystal@v1
with:
crystal: 1.20.0
- run: crystal tool format --check
unit:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
crystal: ["1.19.0", "1.20.0", "nightly"]
steps:
- uses: actions/checkout@v4
- uses: crystal-lang/install-crystal@v1
with:
crystal: ${{ matrix.crystal }}
- run: shards install
- run: crystal spec spec/unit --order=random
integration:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16
env:
POSTGRES_USER: cre_test
POSTGRES_PASSWORD: cre_test
POSTGRES_DB: cre_test
ports: [5432:5432]
options: --health-cmd "pg_isready -U cre_test" --health-interval 10s
env:
DATABASE_URL: postgres://cre_test:cre_test@localhost:5432/cre_test
steps:
- uses: actions/checkout@v4
- uses: crystal-lang/install-crystal@v1
with:
crystal: 1.20.0
- run: shards install
- run: crystal spec spec/integration --order=random
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: crystal-lang/install-crystal@v1
with:
crystal: 1.20.0
- run: shards install
- run: shards build cre --release

View File

@ -0,0 +1,7 @@
# ===================
# ©AngelaMos | 2026
# spec_helper.cr
# ===================
require "spec"
require "../src/cre"

View File

@ -0,0 +1,16 @@
# ===================
# ©AngelaMos | 2026
# cre.cr
# ===================
require "./cre/version"
module CRE
def self.main(argv : Array(String)) : Int32
0
end
end
if PROGRAM_NAME.includes?("cre")
exit CRE.main(ARGV)
end

View File

@ -0,0 +1,8 @@
# ===================
# ©AngelaMos | 2026
# version.cr
# ===================
module CRE
VERSION = "0.1.0"
end