Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
task:
name: hello
macos_instance:
# can be a remote or a local virtual machine
image: ghcr.io/cirruslabs/macos-tahoe-base:latest
hello_script:
- echo "Hello from within a Tart VM!"
- echo "Here is my CPU info:"
- sysctl -n machdep.cpu.brand_string
- sleep 15
23 changes: 23 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
name: Lint

<<<<<<< HEAD
<<<<<<< HEAD
on: # yamllint disable-line rule:truthy
workflow_dispatch:
pull_request:
types: [ready_for_review, reopened] # synchronize makes CI too chatt
pull_request_review:
types: [submitted]
<<<<<<< HEAD
=======
on:
=======
on: # yamllint disable-line rule:truthy
>>>>>>> 2439371 (Updated configs)
workflow_dispatch:
pull_request:
types: [opened, synchronize, reopened]
>>>>>>> 37ec88c (Disable IT tests (for now))
=======
>>>>>>> 509c33f (Disable CI on synchronize PR)

jobs:
lint:
Expand All @@ -28,9 +42,18 @@ jobs:
- name: Sync dependencies
run: uv sync --dev

<<<<<<< HEAD
<<<<<<< HEAD
- name: Install Ansible Galaxy collections
run: ansible-galaxy install -r requirements.yml

=======
>>>>>>> 37ec88c (Disable IT tests (for now))
=======
- name: Install Ansible Galaxy collections
run: ansible-galaxy install -r requirements.yml

>>>>>>> 5283b6c (fix ci)
- name: YAML lint
run: yamllint .

Expand Down
15 changes: 15 additions & 0 deletions .sops.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,25 @@
---
creation_rules:
- path_regex: "config.sops.yml"
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
encrypted_regex: ^(dotfiles_auth_home|dotfiles_repo|dotfiles_secrets_src|dotfiles_secrets)$
key_groups:
- age: [age1n2g0g2z9jdgnqx826e8d0d78y8z0lc7ngdadm3jw9gzpxj2nf5rs0hm6p6]
- path_regex: "config.work.sops.yml"
=======
encrypted_regex: ^(dotfiles_repo)$
>>>>>>> adb52b6 (Installed pre-commit, sops and updated linters)
=======
encrypted_regex: ^(dotfiles_repo|dotfiles_secrets_src|dotfiles_secrets)$
>>>>>>> c57576d (Merged dotfiles from afonsoc12/dotfiles)
=======
encrypted_regex: ^(dotfiles_auth_home|dotfiles_repo|dotfiles_secrets_src|dotfiles_secrets)$
>>>>>>> 4dc2d0a (Dotfiles installation for gnupg)
key_groups:
- age: [age1n2g0g2z9jdgnqx826e8d0d78y8z0lc7ngdadm3jw9gzpxj2nf5rs0hm6p6]
- path_regex: "config.work.sops.yml"
key_groups:
- age: [age1n2g0g2z9jdgnqx826e8d0d78y8z0lc7ngdadm3jw9gzpxj2nf5rs0hm6p6]
- age: age1n2g0g2z9jdgnqx826e8d0d78y8z0lc7ngdadm3jw9gzpxj2nf5rs0hm6p6
8 changes: 8 additions & 0 deletions .yamllint
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,15 @@ extends: default
ignore:
- .venv/
- .ansible/
<<<<<<< HEAD
<<<<<<< HEAD
- "*.sops.y*ml"
=======
- '*.sops.y*ml'
>>>>>>> adb52b6 (Installed pre-commit, sops and updated linters)
=======
- "*.sops.y*ml"
>>>>>>> 16f169a (SOPS role to provision and load sops secrets)

rules:
comments:
Expand Down
117 changes: 112 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ This repository codifies workstation setup with version-controlled configuration
- **Git** configuration and repository cloning
- **Zsh** shell setup with Oh My Zsh
- **Editor / IDE / terminal** configuration
<<<<<<< HEAD
=======

### 📁 Dotfiles Management
Dotfiles are now **first-class citizens** of this project.
Expand All @@ -51,7 +53,38 @@ Dotfiles are now **first-class citizens** of this project.
- macOS 12 or later (tested only on 26+)
- Approximately 30 minutes
- Internet connection
>>>>>>> a7efc97 (Add bootstrap script, license and updated readme)

<<<<<<< HEAD
### 📁 Dotfiles Management
Dotfiles are now **first-class citizens** of this project.

<<<<<<< HEAD
- 📂 XDG Base Directory compliant (where possible)
- 🏠 Minimal `$HOME` clutter
- 🔗 Deploy via symlink or copy
- ⚙️ Templated with Ansible
- 🔐 Secrets management via SOPS

**Pre-configured for:**
- zsh, Git, GnuPG, VS Code, rclone, rsync, k9s, and more

### 🎨 macOS Customization
- 🔧 System defaults
- 📌 Dock layout and ordering
- 💡 Developer-focused tweaks

---
## Getting Started

### Prerequisites

- macOS 12 or later (tested only on 26+)
- Approximately 30 minutes
- Internet connection

=======
>>>>>>> 6e9a1ea (Improve docs)
## Environment Variables

| Variable | Default | Description |
Expand Down Expand Up @@ -80,6 +113,79 @@ This method is ideal if you want a **fully automated setup**. It will:

**Run:**

```zsh
# Default values
SOPS_AGE_KEY_FILE=<SOPS_AGE_KEY_FILE>zsh -i <(curl -fsSL https://raw.githubusercontent.com/afonsoc12/ready-set-develop/master/bootstrap.sh )

```zsh
# With sops encrypted config
SOPS_AGE_KEY_FILE=<SOPS_AGE_KEY_FILE> RSD_SOPS_FILE=config.sops.yml zsh -i <(curl -fsSL https://raw.githubusercontent.com/afonsoc12/ready-set-develop/master/bootstrap.sh )
```

### Step-by-step Installation

#### 1️⃣ Install Command Line Tools

```zsh
xcode-select --install
```

Accept the license when prompted.

#### 2️⃣ Set Environment Variables

```zsh
export PATH="$HOME/Library/Python/3.9/bin:/opt/homebrew/bin:$PATH"
export ANSIBLE_HOME="$HOME/.local/share/ansible"
```

#### 3️⃣ Install Ansible

```zsh
/usr/bin/pip3 install --upgrade pip
/usr/bin/pip3 install ansible
```

#### 4️⃣ Clone Repository

```zsh
git clone https://github.com/afonsoc12/ready-set-develop.git
cd ready-set-develop
```

#### 5️⃣ Install Ansible Requirements

```zsh
ansible-galaxy install -r requirements.yml
```

#### 6️⃣ Run Playbook

```zsh
export SOPS_AGE_KEY_FILE=<PATH AGE KEY FILE>
ansible-playbook main.yml --ask-become-pass

# If passing a sops encrypted vars
ansible-playbook main.yml -e sops_file=<PATH SOPS FILE> --ask-become-pass
```

---

=======
## Installation Options

### ⚡ One-Command Bootstrap

This method is ideal if you want a **fully automated setup**. It will:

- Install XCode Command Line Tools
- Clone this repository to `~/.local/share/ready-set-develop` (XDG-compliant)
- Install Python packages and Ansible with system python
- Install Ansible Galaxy packages
- Run the full playbook

**Run:**

```bash
curl -sSL https://raw.githubusercontent.com/afonsoc12/ready-set-develop/main/bootstrap.sh | SOPS_AGE_KEY_FILE=<SOPS_AGE_KEY_FILE> zsh -s --

Expand Down Expand Up @@ -136,13 +242,14 @@ ansible-playbook main.yml -e sops_file=<PATH SOPS FILE> --ask-become-pass

---

>>>>>>> a7efc97 (Add bootstrap script, license and updated readme)
## Running

### Standard Execution

Run the full playbook:

```bash
```zsh
ansible-playbook main.yml --ask-become-pass
```

Expand All @@ -152,7 +259,7 @@ ansible-playbook main.yml --ask-become-pass

Override default settings:

```bash
```zsh
ansible-playbook main.yml -e @myconfig.yml --ask-become-pass
```

Expand All @@ -172,22 +279,22 @@ Or replace `config.yml` with your own configuration file.

This project uses [uv](https://docs.astral.sh/uv/) to manage Python dev dependencies and sync them.

```bash
```zsh
uv sync --dev
pre-commit install
```

#### 2️⃣ Activate virtual environment

```bash
```zsh
source .venv/bin/activate
```

#### 3️⃣ Linting & syntax checks

Before committing changes, run the following checks:

```bash
```zsh
pre-commit run --all-files

# OR
Expand Down
Loading