Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
e2da170
Change exported python path to 3.9 (#174)
ladyrassilon Feb 21, 2023
9fab0a2
Some lint fixes.
geerlingguy Feb 21, 2023
634dddd
Add Apple formatting/erasure guide (#179)
rainyskye Apr 7, 2023
f41e923
Delete Firefox binary in CI (#180)
kauffinger Apr 9, 2023
57798ab
Update README.md (#170)
danielmcfarland Apr 9, 2023
9dd5141
Update stale workflow.
geerlingguy Jul 10, 2023
e3d0cb7
Fix linting.
geerlingguy Jul 10, 2023
f885708
Changes to new gh package (#187)
peterramsing Sep 30, 2023
c99ff5d
Fixes #190: Don't tap homebrew cask or core anymore.
geerlingguy Jan 5, 2024
c5c92c1
Fixes #195: Remove disabled mcrypt package.
geerlingguy Feb 4, 2024
358f663
chore(config): Remove obsolete downloads config (#203)
Anticom Jun 26, 2024
b660bf1
Add a few notes from new Sonoma install.
geerlingguy Nov 12, 2024
3e46828
Run tests on Mac OS 14 and 15 (#209)
webflo Nov 12, 2024
bf5662c
A few more tweaks for my ultimate setup guide.
geerlingguy Nov 12, 2024
347ea7a
Add pngpaste to default set of packages.
geerlingguy Nov 16, 2024
6e028c0
Remove cowsay, since it's sadly not available in homebrew now.
geerlingguy Nov 28, 2024
4fe7e8b
Update link to GitHub Actions CI.
geerlingguy Jan 26, 2025
ea8c71e
Skip ansible-lint yamllint since we already yamllint.
geerlingguy Jan 31, 2025
58f46d9
Fix linting errors.
geerlingguy Jan 31, 2025
caa4b99
Issue #210: Fix up my own mac setup guide.
geerlingguy Mar 12, 2025
ae64a2f
Issue #210: A couple more tweaks for my full mac setup.
geerlingguy Mar 12, 2025
51bea27
Add in FCPX actions.
geerlingguy Mar 14, 2025
8a63cb5
docs: typo and improve default config (#217)
skmpf Mar 22, 2025
372da21
Update to use Cobalt2 Color Scheme for Sublime Text.
geerlingguy Mar 24, 2025
269ce48
Update default config with new Sublime defaults.
geerlingguy Mar 26, 2025
4dc3352
Fix path for ansible collections on my computers.
geerlingguy Mar 26, 2025
5e60540
add dependabot.yml (#218)
bsadashi Apr 19, 2025
79a49c7
Bump the updates group with 3 updates (#219)
dependabot[bot] Apr 19, 2025
e2a1168
Bump actions/checkout from 4 to 5 in the updates group (#225)
dependabot[bot] Aug 19, 2025
9e5feb9
Update instructions re: "System Preferences" (#228)
techieshark Sep 2, 2025
2672449
Bump the updates group with 2 updates (#230)
dependabot[bot] Sep 8, 2025
91b0915
do not run github actions if only markdown changes (#229)
techieshark Sep 8, 2025
2f5dc88
Issue #186: Fix capitalization of become parameter in ansible.cfg.
geerlingguy Oct 7, 2025
719de35
Issue #232: Properly set conditionals for mas when condition.
geerlingguy Oct 7, 2025
29901ff
Bump actions/checkout from 5 to 6 in the updates group (#235)
dependabot[bot] Nov 24, 2025
be45b8f
Fixes #236: Use yaml result format instead of callback plugin.
geerlingguy Nov 28, 2025
56a5794
Fix result format in YAML.
geerlingguy Nov 29, 2025
b775be2
Issue #232: Fix install of Mac Apps list emptiness check.
geerlingguy Feb 3, 2026
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
11 changes: 10 additions & 1 deletion .ansible-lint
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
---
exclude_paths:
- roles/elliotweiser.osx-command-line-tools

skip_list:
- schema[meta]
- role-name
- experimental
- fqcn-builtins
- fqcn
- name[missing]
- no-changed-when
- risky-file-permissions
- yaml
16 changes: 16 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
groups:
updates:
applies-to: version-updates
patterns:
- "*"
security-updates:
applies-to: security-updates
patterns:
- "*"
56 changes: 0 additions & 56 deletions .github/stale.yml

This file was deleted.

15 changes: 10 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@
name: CI
'on':
pull_request:
paths-ignore:
- '*.md' # Markdown docs need no linting/testing etc.
push:
paths-ignore:
- '*.md'
branches:
- master
schedule:
Expand All @@ -15,10 +19,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out the codebase.
uses: actions/checkout@v2
uses: actions/checkout@v6

- name: Set up Python 3.
uses: actions/setup-python@v2
uses: actions/setup-python@v6
with:
python-version: '3.x'

Expand All @@ -36,12 +40,12 @@ jobs:
strategy:
matrix:
os:
- macos-12
- macos-11
- macos-15
- macos-14

steps:
- name: Check out the codebase.
uses: actions/checkout@v2
uses: actions/checkout@v6

- name: Uninstall GitHub Actions' built-in Homebrew.
run: tests/uninstall-homebrew.sh
Expand All @@ -50,6 +54,7 @@ jobs:
run: |
sudo rm -rf /Applications/Firefox.app
sudo rm -rf /Applications/Google\ Chrome.app
sudo rm -rf /usr/local/bin/firefox

- name: Install test dependencies.
run: |
Expand Down
34 changes: 34 additions & 0 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: Close inactive issues
'on':
schedule:
- cron: "55 18 * * 4" # semi-random time

jobs:
close-issues:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v10
with:
days-before-stale: 120
days-before-close: 60
exempt-issue-labels: bug,pinned,security,planned
exempt-pr-labels: bug,pinned,security,planned
stale-issue-label: "stale"
stale-pr-label: "stale"
stale-issue-message: |
This issue has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution!

Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark issues as stale.
close-issue-message: |
This issue has been closed due to inactivity. If you feel this is in error, please reopen the issue or file a new issue with the relevant details.
stale-pr-message: |
This pr has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution!

Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark issues as stale.
close-pr-message: |
This pr has been closed due to inactivity. If you feel this is in error, please reopen the issue or file a new issue with the relevant details.
repo-token: ${{ secrets.GITHUB_TOKEN }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
*.vagrant
.DS_Store
.ansible
*.retry
roles*
config.yml
2 changes: 1 addition & 1 deletion .yamllint
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ rules:
level: warning

ignore: |
.github/stale.yml
.github/workflows/stale.yml
13 changes: 5 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ This playbook installs and configures most of the software I use on my Mac for w
1. Ensure Apple's command line tools are installed (`xcode-select --install` to launch the installer).
2. [Install Ansible](https://docs.ansible.com/ansible/latest/installation_guide/index.html):

1. Run the following command to add Python 3 to your $PATH: `export PATH="$HOME/Library/Python/3.8/bin:/opt/homebrew/bin:$PATH"`
1. Run the following command to add Python 3 to your $PATH: `export PATH="$HOME/Library/Python/3.9/bin:/opt/homebrew/bin:$PATH"`
2. Upgrade Pip: `sudo pip3 install --upgrade pip`
3. Install Ansible: `pip3 install ansible`

Expand All @@ -25,7 +25,7 @@ This playbook installs and configures most of the software I use on my Mac for w

You can use this playbook to manage other Macs as well; the playbook doesn't even need to be run from a Mac at all! If you want to manage a remote Mac, either another Mac on your network, or a hosted Mac like the ones from [MacStadium](https://www.macstadium.com), you just need to make sure you can connect to it with SSH:

1. (On the Mac you want to connect to:) Go to System Preferences > Sharing.
1. (On the Mac you want to connect to:) Go to System Settings > Sharing.
2. Enable 'Remote Login'.

> You can also enable remote login on the command line:
Expand Down Expand Up @@ -54,7 +54,6 @@ You can override any of the defaults configured in `default.config.yml` by creat

```yaml
homebrew_installed_packages:
- cowsay
- git
- go

Expand Down Expand Up @@ -117,20 +116,18 @@ Packages (installed with Homebrew):
- gettext
- gifsicle
- git
- github/gh/gh
- gh
- go
- gpg
- httpie
- iperf
- libevent
- sqlite
- mcrypt
- nmap
- node
- nvm
- php
- ssh-copy-id
- cowsay
- readline
- openssl
- pv
Expand Down Expand Up @@ -165,5 +162,5 @@ Check out [Ansible for DevOps](https://www.ansiblefordevops.com/), which teaches

This project was created by [Jeff Geerling](https://www.jeffgeerling.com/) (originally inspired by [MWGriffin/ansible-playbooks](https://github.com/MWGriffin/ansible-playbooks)).

[badge-gh-actions]: https://github.com/geerlingguy/mac-dev-playbook/workflows/CI/badge.svg?event=push
[link-gh-actions]: https://github.com/geerlingguy/mac-dev-playbook/actions?query=workflow%3ACI
[badge-gh-actions]: https://github.com/geerlingguy/mac-dev-playbook/actions/workflows/ci.yml/badge.svg
[link-gh-actions]: https://github.com/geerlingguy/mac-dev-playbook/actions/workflows/ci.yml
4 changes: 2 additions & 2 deletions ansible.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
nocows = True
roles_path = ./roles:/etc/ansible/roles
inventory = inventory
become = true
stdout_callback = yaml
become = True
callback_result_format = yaml
22 changes: 9 additions & 13 deletions default.config.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
---
downloads: ~/.ansible-downloads/

configure_dotfiles: true
configure_terminal: true
configure_osx: true
Expand All @@ -18,7 +16,7 @@ dockitems_persist: []
# pos: 5

configure_sudoers: false
sudoers_custom_config: ''
sudoers_custom_config: ""
# Example:
# sudoers_custom_config: |
# # Allow users in admin group to use sudo with no password.
Expand All @@ -27,6 +25,7 @@ sudoers_custom_config: ''
dotfiles_repo: https://github.com/geerlingguy/dotfiles.git
dotfiles_repo_accept_hostkey: true
dotfiles_repo_local_destination: ~/Development/GitHub/dotfiles
dotfiles_repo_version: master # Replace with your default branch
dotfiles_files:
- .zshrc
- .gitignore
Expand All @@ -42,30 +41,27 @@ homebrew_installed_packages:
- gettext
- gifsicle
- git
- github/gh/gh
- gh
- go
- gpg
- httpie
- iperf
- libevent
- sqlite
- mcrypt
- nmap
- node
- nvm
- php
- pngpaste
- ssh-copy-id
- cowsay
- readline
- openssl
- pv
- wget
- wrk
- zsh-history-substring-search

homebrew_taps:
- homebrew/core
- homebrew/cask
homebrew_taps: []

homebrew_cask_appdir: /Applications
homebrew_cask_apps:
Expand All @@ -81,7 +77,7 @@ homebrew_cask_apps:
- sublime-text
- transmit

# See `geerlingguy.mas` role documentation for usage instructions.
# See `geerlingguy.mac.mas` role documentation for usage instructions.
mas_installed_apps: []
mas_email: ""
mas_password: ""
Expand Down Expand Up @@ -110,7 +106,7 @@ pip_packages: []

# Set to 'true' to configure Sublime Text.
configure_sublime: false
sublime_base_path: '~/Library/Application Support/Sublime Text'
sublime_base_path: "~/Library/Application Support/Sublime Text"
sublime_config_path: "Packages/User"
sublime_package_control:
- "DocBlockr"
Expand All @@ -119,12 +115,12 @@ sublime_package_control:
- "GitHub Flavored Markdown Preview"
- "Jinja2"
- "Package Control"
- "PHP-Twig"
- "Pretty JSON"
- "SublimeLinter"
- "SublimeLinter-contrib-yamllint"
- "Theme - Cobalt2"
- "TrailingSpaces"
- "WordCount"
- "WordingStatus"

# Glob pattern to ansible task files to run after all other tasks are finished.
post_provision_tasks: []
Loading