-
Notifications
You must be signed in to change notification settings - Fork 0
158 lines (139 loc) · 4.77 KB
/
ci.yaml
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
---
# run setting up dotfiles using ansible in a CI server.
# This is to check if the dotfiles are being setup properly without issues.
#
# Obtained from https://github.com/geerlingguy/mac-dev-playbook/blob/master/.github/workflows/ci.yml
name: CI
'on':
pull_request:
push:
branches:
- master
schedule:
- cron: "0 5 * * 4"
env:
FORCE_COLOR: true # display terminal colors
ANSIBLE_FORCE_COLOR: '1'
jobs:
integration:
name: Integration
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
playbook: macos
# - os: macos-12
# playbook: macos
# - os: ubuntu-latest
# playbook: wsl-ubuntu
- os: ubuntu-22.04
playbook: wsl-ubuntu
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
# - name: Uninstall GitHub Actions' built-in Homebrew.
# if: startsWith(matrix.os, 'macos')
# run: |
# # Download and run the uninstall script.
# curl -sLO https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh ;
# chmod +x ./uninstall.sh ;
# sudo ./uninstall.sh --force ;
# # Clean up Homebrew directories.
# sudo rm -rf /usr/local/Homebrew ;
# sudo rm -rf /usr/local/Caskroom ;
# sudo rm -rf /usr/local/bin/brew ;
#
# - name: Uninstall GitHub Actions' built-in browser installs.
# if: startsWith(matrix.os, 'macos')
# run: |
# sudo rm -rf /Applications/Firefox.app
# sudo rm -rf /Applications/Google\ Chrome.app
# sudo rm -rf /usr/local/bin/firefox
- name: Setup locales
if: startsWith(matrix.os, 'ubuntu')
run: |
export LANG=en_CA.UTF-8
export LC_ALL=en_CA.UTF-8
sudo locale-gen "en_CA.UTF-8"
sudo dpkg-reconfigure locales
- name: Install python build tools
if: startsWith(matrix.os, 'ubuntu')
shell: bash
# Ref: https://github.com/pyenv/pyenv/wiki#suggested-build-environment
run: |
sudo apt-get update -qq -y ;
sudo apt-get install -qq -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev ffmpeg
- name: Setup pyenv ENV variables
shell: bash
run: |
PYENV_ROOT="$HOME/.pyenv" ;
PYENV_BIN="$PYENV_ROOT/bin" ;
PYENV_SHIMS="$PYENV_ROOT/shims" ;
echo "$PYENV_BIN" >> "$GITHUB_PATH" ;
echo "$PYENV_SHIMS" >> "$GITHUB_PATH" ;
echo "PYENV_ROOT=$PYENV_ROOT" >> "$GITHUB_ENV" ;
# env ;
- name: Install pyenv
shell: bash
run: curl https://pyenv.run | bash
- name: Install latest python version
shell: bash
run: |
# trim whitespace. https://unix.stackexchange.com/a/205854
pythonVersion=$(pyenv install --list | grep --extended-regexp "^\s*[0-9][0-9.]*[0-9]\s*$" | tail -1 | awk '{$1=$1;print}')
pyenv install --skip-existing "$pythonVersion"
pyenv global "$pythonVersion"
python --version
- name: Install ansible
shell: bash
run: |
pip3 install ansible
pyenv rehash
- name: which ansible
shell: bash
run: |
which ansible ;
which ansible-galaxy ;
which ansible-playbook ;
ansible --version
- name: Install ansible-galaxy requirements
shell: bash
run: ansible-galaxy install -r requirements.yaml
- name: print env
shell: bash
run: env
- name: print pyenv shims
run: |
pyenv doctor
pyenv shims
- name: which ansible-playbook after source
shell: bash
run: |
which ansible ;
which ansible-galaxy
which ansible-playbook ;
source tools/zsh/.zshenv
echo "PYENV_ROOT: $PYENV_ROOT"
PYENV_ROOT=$HOME/.pyenv
echo "PYENV_ROOT: $PYENV_ROOT"
echo "GITHUB_ENV: $GITHUB_ENV"
echo "GITHUB_PATH: $GITHUB_PATH"
which ansible ;
which ansible-galaxy
which ansible-playbook ;
- name: Run playbook '${{ matrix.playbook }}'
shell: bash
run: |
which ansible ;
which ansible-playbook ;
source tools/zsh/.zshenv ;
# source tools/zsh/exports.zsh ;
PYENV_ROOT=$HOME/.pyenv
unset ANSIBLE_HOME ;
unset ANSIBLE_CONFIG ;
unset ANSIBLE_GALAXY_CACHE_DIR ;
ANSIBLE_CONFIG=./ansible.cfg ansible-playbook playbooks/${{ matrix.playbook }}.yaml