-
Notifications
You must be signed in to change notification settings - Fork 10
137 lines (133 loc) · 5.38 KB
/
github-actions.yml
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
name: Monopacker Tests
on: [push, pull_request]
env:
PACKER_VERSION: "1.8.6" # or: "latest"
PYTHON_VERSION: "3.11"
POETRY_VERSION: "1.5.1"
POETRY_URL: https://install.python-poetry.org
# poetry install steps from:
# https://gist.github.com/gh640/233a6daf68e9e937115371c0ecd39c61
jobs:
pytest:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
id: setup_python
# Poetry cache depends on OS, Python version and Poetry version.
- name: Cache Poetry cache
uses: actions/cache@v3
with:
path: ~/.cache/pypoetry
key: poetry-cache-${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ env.POETRY_VERSION }}
# virtualenv cache should depends on OS, Python version and `poetry.lock` (and optionally workflow files).
- name: Cache Packages
uses: actions/cache@v3
with:
path: ~/.local
key: poetry-local-${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-${{ hashFiles('.github/workflows/*.yml') }}
- name: Install Poetry ${{ env.POETRY_VERSION }}
run: |
curl -sSL ${{ env.POETRY_URL }} | python - --version ${{ env.POETRY_VERSION }}
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Install Dependencies
run: poetry install
- name: pip list
run: |
poetry run pip list
- name: Run tests
run: |
poetry run python -m pytest -sxv
# poetry-update-check:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout
# uses: actions/checkout@v3
# - name: Set up Python ${{ env.PYTHON_VERSION }}
# uses: actions/setup-python@v4
# with:
# python-version: ${{ env.PYTHON_VERSION }}
# id: setup_python
# # Poetry cache depends on OS, Python version and Poetry version.
# - name: Cache Poetry cache
# uses: actions/cache@v3
# with:
# path: ~/.cache/pypoetry
# key: poetry-cache-${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ env.POETRY_VERSION }}
# # virtualenv cache should depends on OS, Python version and `poetry.lock` (and optionally workflow files).
# - name: Cache Packages
# uses: actions/cache@v3
# with:
# path: ~/.local
# key: poetry-local-${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-${{ hashFiles('.github/workflows/*.yml') }}
# - name: Install Poetry ${{ env.POETRY_VERSION }}
# run: |
# curl -sSL ${{ env.POETRY_URL }} | python - --version ${{ env.POETRY_VERSION }}
# echo "$HOME/.local/bin" >> $GITHUB_PATH
# - name: Install Dependencies
# run: poetry install
# - name: pip list
# run: |
# poetry run pip list
# - name: Run tests
# run: |
# poetry run python -m pytest -sxv
# - name: poetry update
# run: |
# poetry update
# - name: check if changes
# run: |
# git status --porcelain
# if ! output=$(git status --porcelain) || [ -n "$output" ]; then
# echo "*** 'poetry update' produced changes to the repository; these changes should be checked in ***";
# git --no-pager diff;
# exit 1;
# fi
monopacker-validate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup `packer`
uses: hashicorp/setup-packer@main
id: setup
with:
version: ${{ env.PACKER_VERSION }}
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
id: setup_python
# Poetry cache depends on OS, Python version and Poetry version.
- name: Cache Poetry cache
uses: actions/cache@v3
with:
path: ~/.cache/pypoetry
key: poetry-cache-${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ env.POETRY_VERSION }}
# virtualenv cache should depends on OS, Python version and `poetry.lock` (and optionally workflow files).
- name: Cache Packages
uses: actions/cache@v3
with:
path: ~/.local
key: poetry-local-${{ runner.os }}-${{ steps.setup_python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-${{ hashFiles('.github/workflows/*.yml') }}
- name: Install Poetry ${{ env.POETRY_VERSION }}
run: |
curl -sSL ${{ env.POETRY_URL }} | python - --version ${{ env.POETRY_VERSION }}
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Install Dependencies
run: poetry install
- name: monopacker validate
run: |
#set -x
set -e
for file in builders/*.yaml; do
builder_instance=$(echo "$file" | sed 's/.yaml//g' | sed 's/builders\///g')
echo -n "$builder_instance: "
poetry run monopacker validate "$builder_instance"
done
echo ""
echo "ALL VALIDATED"