-
Notifications
You must be signed in to change notification settings - Fork 0
100 lines (81 loc) · 3.04 KB
/
Copy pathinstall-script.yml
File metadata and controls
100 lines (81 loc) · 3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
name: Install Script
on:
push:
paths:
- ".github/workflows/install-script.yml"
- "Dockerfile.arch-bootstrap-test"
- "Dockerfile.arch-bootstrap-test-ci"
- "Dockerfile.arch-test"
- "Dockerfile.arch-test-ci"
- "justfile"
- "run_once_install-packages.sh.tmpl"
- "dot_config/fish/config.fish.tmpl"
- "installer/**"
pull_request:
paths:
- ".github/workflows/install-script.yml"
- "Dockerfile.arch-bootstrap-test"
- "Dockerfile.arch-bootstrap-test-ci"
- "Dockerfile.arch-test"
- "Dockerfile.arch-test-ci"
- "justfile"
- "run_once_install-packages.sh.tmpl"
- "dot_config/fish/config.fish.tmpl"
- "installer/**"
workflow_dispatch:
jobs:
arch:
name: Arch install
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Build Arch bootstrap test image
run: docker build -f Dockerfile.arch-bootstrap-test-ci -t dotfiles-arch-bootstrap-test-ci .
- name: Run Arch bootstrap integration
run: docker run --rm -v "$PWD:/work:ro" dotfiles-arch-bootstrap-test-ci
- name: Build Arch test image
run: docker build -f Dockerfile.arch-test-ci -t dotfiles-arch-test-ci .
- name: Run Arch installer dry-run
run: docker run --rm -v "$PWD:/work:ro" dotfiles-arch-test-ci
apple-silicon:
name: Apple Silicon install
runs-on: macos-15
timeout-minutes: 60
env:
CI: "1"
DRY_RUN: "1"
INSTALL_CASKS: "0"
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Check shell template syntax
run: bash -n run_once_install-packages.sh.tmpl
- name: Repair Xcode developer path
run: |
set -euo pipefail
developer_dir="$(xcode-select -p || true)"
if [ ! -d "$developer_dir" ] && [ -d /Applications/Xcode.app/Contents/Developer ]; then
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
fi
xcode-select -p
- name: Run installer dry-run on Apple Silicon
run: |
set -euo pipefail
cd installer
cargo build --release
./target/release/dotsetup install
- name: Verify installed commands
run: |
set -euo pipefail
export PATH="$HOME/.cargo/bin:$HOME/go/bin:$HOME/.local/bin:$HOME/.bun/bin:$HOME/Library/pnpm/bin:$HOME/Library/pnpm:$PATH"
for cmd in git git-lfs fish nvim tree-sitter rg fd fzf lazygit gdu-go btm btop python3 go zellij zoxide lsd yazi ffmpeg unzip 7zz jq actionlint pdftotext resvg magick thefuck fastfetch figlet cowsay fortune tldr topgrade lazydocker harlequin bun pnpm curl; do
if ! command -v "$cmd" >/dev/null; then
echo "missing command: $cmd" >&2
exit 1
fi
done
actionlint
fish -c "functions -q nvm"
fish -c "nvm use default --silent; and node --version; and npm --version; and bw --version"