Skip to content

Commit efd506c

Browse files
committed
Initial commit
0 parents  commit efd506c

25 files changed

Lines changed: 4651 additions & 0 deletions

.config/actionlint.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# actionlint configuration for this project
2+
# References DocOps Lab base configuration
3+
4+
# Project-specific ignores (add as needed):
5+
ignore:
6+
# Example: Ignore specific workflow patterns
7+
# - 'workflow "deploy.yml"'
8+
# - '"ubuntu-20.04" is deprecated'
9+
10+
# Project-specific overrides:
11+
shellcheck:
12+
enable: true
13+
# shell-options: "-e SC2016" # Add project-specific ShellCheck exclusions

.config/docopslab-dev.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
source:
2+
repo: DocOps/lab
3+
ref: v1
4+
docs:
5+
- source: docs/agent/skills/*.md
6+
target: .agent/docs/skills/
7+
synced: true
8+
- source: docs/agent/topics/*.md
9+
target: .agent/docs/topics/
10+
synced: true
11+
- source: docs/agent/roles/*.md
12+
target: .agent/docs/roles/
13+
synced: true
14+
- source: docs/agent/missions/*.md
15+
target: .agent/docs/missions/
16+
synced: true
17+
18+
templates:
19+
manifest:
20+
- source: templates/AGENTS.markdown
21+
target: ./AGENTS.md
22+
- source: templates/gitignore
23+
target: .gitignore
24+
- source: templates/README.asciidoc
25+
target: README.adoc
26+
27+
tools:
28+
- tool: rubocop
29+
files:
30+
- source: rubocop/base.yml
31+
target: .config/.vendor/docopslab/rubocop.yml
32+
synced: true
33+
- source: rubocop/project.yml
34+
target: .config/rubocop.yml
35+
synced: false
36+
37+
- tool: vale
38+
files:
39+
- source: vale/base.ini
40+
target: .config/.vendor/docopslab/vale.ini
41+
synced: true
42+
- source: vale/project.ini
43+
target: .config/vale.local.ini
44+
synced: false
45+
46+
- tool: htmlproofer
47+
enabled: false # Disabled by default, enable per project
48+
files:
49+
- source: htmlproofer/base.yml
50+
target: .config/.vendor/docopslab/htmlproofer.yml
51+
synced: true
52+
- source: htmlproofer/project.yml
53+
target: .config/htmlproofer.yml
54+
synced: false
55+
paths:
56+
lint: docs/_site
57+
58+
- tool: shellcheck
59+
files:
60+
- source: shellcheck/base.shellcheckrc
61+
target: .config/shellcheckrc
62+
synced: true
63+
64+
- tool: actionlint
65+
files:
66+
- source: actionlint/base.yml
67+
target: .config/.vendor/docopslab/actionlint.yml
68+
synced: true
69+
- source: actionlint/project.yml
70+
target: .config/actionlint.yml
71+
synced: false
72+
73+
library:
74+
enabled: true
75+
source:
76+
repo: DocOps/lab
77+
ref: labdev-library

.config/shellcheckrc

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# ShellCheck configuration for DocOps Lab projects
2+
# This file is synced from docopslab-dev gem
3+
4+
# Disable some overly strict rules for our use cases
5+
disable=SC2034 # Variable appears unused (common in sourced scripts)
6+
disable=SC2086 # Double quote to prevent globbing (sometimes we want globbing)
7+
disable=SC2181 # Check exit code directly with e.g. 'if mycmd;', not indirectly with $?
8+
9+
# Set default shell to bash (most of our scripts are bash)
10+
shell=bash
11+
12+
# Enable additional optional checks
13+
enable=quote-safe-variables
14+
enable=require-variable-braces

.config/vale.local.ini

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# DocOps Lab Vale Configuration
2+
# Combined base and project configuration for consistent Vale linting
3+
4+
MinAlertLevel = warning
5+
StylesPath = .vendor/vale/styles

.dockerignore

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# DocOps Box — Docker build context exclusions
2+
# Keeps the build context fast and prevents development files from leaking into
3+
# the image. Files intentionally included in the build (Gemfile*, package.json,
4+
# requirements.txt, dockerfile-*.sh) are expected in the project root (the
5+
# build context) and are NOT listed here. The repo's own copies live under
6+
# templates/ but users place them at their project root before building.
7+
8+
# Repo-only directories — not needed in user image builds
9+
templates/
10+
bin/
11+
scripts/
12+
13+
# Version control
14+
.git/
15+
.gitignore
16+
17+
# Agent/session scratch directories
18+
.agent/
19+
.agents/
20+
21+
# Documentation source (not needed inside the image)
22+
*.adoc
23+
*.html
24+
LICENSE
25+
26+
# Development tooling configs
27+
.config/
28+
Rakefile
29+
30+
# Editor and IDE
31+
.vscode/
32+
.idea/
33+
34+
# OS artifacts
35+
.DS_Store
36+
37+
# Runtime artifacts
38+
_site/
39+
.jekyll-cache/
40+
tmp/
41+
*.log
42+
*.bak
43+
*~

.github/workflows/build-images.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# .github/workflows/build-images.yml
2+
# Builds and pushes the full DocOps Box image matrix to Docker Hub.
3+
#
4+
# The build logic lives in scripts/build-matrix.sh; this workflow is a thin
5+
# harness that sets up the multi-platform build environment and invokes it.
6+
#
7+
# Triggers:
8+
# - Push to `latest` branch (auto-build on merge)
9+
# - Manual dispatch with optional dry-run flag
10+
#
11+
# Required repository secrets:
12+
# DOCKERHUB_USERNAME — Docker Hub username
13+
# DOCKERHUB_PASSWORD — Docker Hub access token (not your password)
14+
#
15+
# To add a new image to the matrix, edit scripts/build-matrix.sh only.
16+
17+
name: Build and Push Image Matrix
18+
19+
on:
20+
push:
21+
branches:
22+
- latest
23+
# Only trigger when files that affect the built image actually change.
24+
# Docs, README, agent notes, etc. do not need a full 12-image rebuild.
25+
paths:
26+
- 'Dockerfile'
27+
- 'entrypoint.sh'
28+
- 'scripts/build-matrix.sh'
29+
- 'templates/dockerfile-*.sh'
30+
- '.github/workflows/build-images.yml'
31+
- 'Gemfile'
32+
- 'package.json'
33+
- 'requirements.txt'
34+
workflow_dispatch:
35+
inputs:
36+
dry_run:
37+
description: "Dry run — print commands without building or pushing"
38+
required: false
39+
default: "false"
40+
type: boolean
41+
42+
jobs:
43+
build-matrix:
44+
name: Build image matrix
45+
runs-on: ubuntu-latest
46+
47+
steps:
48+
- name: Checkout
49+
uses: actions/checkout@v4
50+
51+
# QEMU adds emulation layers so BuildKit can produce ARM64 images
52+
# on the AMD64 GitHub-hosted runner.
53+
- name: Set up QEMU
54+
uses: docker/setup-qemu-action@v3
55+
56+
# Buildx is the CLI plugin that drives multi-platform builds via BuildKit.
57+
- name: Set up Docker Buildx
58+
uses: docker/setup-buildx-action@v3
59+
60+
- name: Log in to Docker Hub
61+
uses: docker/login-action@v3
62+
with:
63+
username: ${{ secrets.DOCKERHUB_USERNAME }}
64+
password: ${{ secrets.DOCKERHUB_PASSWORD }}
65+
66+
- name: Build and push image matrix
67+
run: |
68+
if [[ "${{ inputs.dry_run }}" == "true" ]]; then
69+
./scripts/build-matrix.sh --dry-run
70+
else
71+
./scripts/build-matrix.sh --push --gha-cache
72+
fi

.gitignore

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# Jekyll build output
2+
_site/
3+
.jekyll-cache/
4+
5+
# Build paths
6+
built/
7+
build/
8+
9+
# Bundler
10+
.bundle/
11+
vendor/
12+
.vendor/
13+
14+
# macOS
15+
.DS_Store
16+
17+
# IDE
18+
.vscode/
19+
.idea/
20+
21+
# DocOps Lab Dev tooling - vendor configs are synced, not tracked
22+
.config/.vendor/
23+
scripts/.vendor/
24+
25+
# Temporary paths
26+
tmp/
27+
*.tmp
28+
*.bak
29+
*~
30+
*.tmp
31+
*.bak
32+
.warp/
33+
.agents/
34+
35+
# Logs
36+
*.log
37+
38+
# tag::universal-docopslab-dev-configs[]
39+
# Generated config files (merged from base + local)
40+
.config/vale.ini
41+
.config/htmlproofer.yml
42+
# end::universal-docopslab-dev-configs[]
43+
# tag::universal-docopslab-agent[]
44+
.agent/*
45+
# !.agent/team/
46+
# end::universal-docopslab-agent[]
47+
48+
# Gem content paths
49+
gems/**/pkg/
50+
*.gem
51+
52+
# Build artifacts - generated by CI/scripts
53+
artifacts/
54+
tmp/
55+
# DocOps Lab vendor files
56+
57+
# RSpec
58+
.rspec_status
59+
specs/tests/results/
60+
61+
# Test coverage
62+
/coverage/
63+
64+
# Environment variable files
65+
# .env contains project settings (PROJECT_SLUG etc.) and is safe to commit in
66+
# downstream projects. We gitignore it here in the box repo because contributors
67+
# use .env.local for local overrides and the root .env is ephemeral/per-machine.
68+
/.env
69+
/.env.local
70+
.env.*.local
71+
72+
# Stale root-level artifacts — canonical copies live in templates/
73+
# Root-anchored (leading /) so templates/docopsbox.yml is NOT ignored.
74+
/docopsbox.yml
75+
/.config/docopsbox.yml
76+
77+
# Root .devcontainer is a contributor convenience file, not a committed artifact.
78+
# Downstream users get .devcontainer/ from `docr init`; box contributors create
79+
# their own locally. See templates/.devcontainer/ for the distributable template.
80+
# Root-anchored so templates/.devcontainer/ is NOT ignored.
81+
/.devcontainer/
82+
83+
# Logs
84+
*.log
85+
86+
# Ruby version managers
87+
.ruby-version
88+
.ruby-gemset

0 commit comments

Comments
 (0)