Skip to content

Commit 68f3cc2

Browse files
ci: create composite actions to avoid code repetition (#23)
1 parent 9769729 commit 68f3cc2

File tree

1 file changed

+51
-0
lines changed
  • .github/actions/prepare-env-composite-action

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: 'Prepare Environment'
2+
description: 'Ensure venv exists with necessary Python and Ansible dependencies'
3+
4+
runs:
5+
using: "composite"
6+
7+
steps:
8+
- name: Checkout repository
9+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # SHA for version 5.0.0
10+
11+
- name: Set up Python
12+
id: set_up_python
13+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # SHA for version 5.6.0
14+
with:
15+
python-version: "3.12"
16+
17+
- name: Get environment info
18+
id: env_info
19+
run: |
20+
venv_dir=$(make print-venv-dir)
21+
collections_dir=$(make print-ansible-collections-dir)
22+
python_reqs_file=$(make print-python-requirements-file)
23+
ansible_reqs_file=$(make print-ansible-requirements-file)
24+
25+
echo "venv_dir=$venv_dir" >> $GITHUB_OUTPUT
26+
echo "collections_dir=$collections_dir" >> $GITHUB_OUTPUT
27+
echo "python_reqs_file=$python_reqs_file" >> $GITHUB_OUTPUT
28+
echo "ansible_reqs_file=$ansible_reqs_file" >> $GITHUB_OUTPUT
29+
30+
# GitHub’s hashFiles isn’t available here, so use sha256sum
31+
echo "python_hash=$(sha256sum $python_reqs_file | cut -d ' ' -f1)" >> $GITHUB_OUTPUT
32+
echo "ansible_hash=$(sha256sum $ansible_reqs_file | cut -d ' ' -f1)" >> $GITHUB_OUTPUT
33+
shell: bash
34+
35+
- name: Cache venv
36+
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # SHA for version 4.2.4
37+
with:
38+
key: venv-${{ runner.os }}-${{ steps.set_up_python.outputs.python-version }}-${{ steps.env_info.outputs.python_hash }}
39+
path: ${{ steps.env_info.outputs.venv_dir }}
40+
41+
- name: Cache Ansible collections
42+
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # SHA for version 4.2.4
43+
with:
44+
key: collections-${{ runner.os }}-${{ steps.env_info.outputs.ansible_hash }}
45+
path: ${{ steps.env_info.outputs.collections_dir }}
46+
47+
- name: Install dependencies according to requirements files
48+
run: |
49+
touch ${{ steps.env_info.outputs.ansible_reqs_file }}
50+
make venv
51+
shell: bash

0 commit comments

Comments
 (0)