summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/ci.yml2
-rwxr-xr-xtools/scripts/rewrite-awx-operator-requirements.py40
2 files changed, 42 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c60d28f803..08479c3946 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -187,6 +187,8 @@ jobs:
working-directory: awx-operator
run: |
python3 -m pip install -r molecule/requirements.txt
+ python3 -m pip install PyYAML # for awx/tools/scripts/rewrite-awx-operator-requirements.py
+ $(realpath ../awx/tools/scripts/rewrite-awx-operator-requirements.py) molecule/requirements.yml $(realpath ../awx)
ansible-galaxy collection install -r molecule/requirements.yml
sudo rm -f $(which kustomize)
make kustomize
diff --git a/tools/scripts/rewrite-awx-operator-requirements.py b/tools/scripts/rewrite-awx-operator-requirements.py
new file mode 100755
index 0000000000..376764b0bc
--- /dev/null
+++ b/tools/scripts/rewrite-awx-operator-requirements.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python3
+
+import yaml
+import sys
+
+
+AWX_ENTRY = 'https://github.com/ansible/awx.git#/awx_collection/'
+
+
+def load_yaml_file(fname):
+ with open(fname, 'r') as file:
+ data = yaml.safe_load(file)
+ return data
+
+
+def write_yaml_file(fname, data):
+ with open(fname, 'w') as file:
+ yaml.dump(data, file)
+
+
+def replace_awx(data, path):
+ for entry in data['collections']:
+ if entry['name'] == AWX_ENTRY or entry['name'] == 'awx.awx':
+ entry['name'] = f'file://{path}#/awx_collection/'
+ entry['type'] = 'git'
+ entry.pop('version', None)
+ return data
+
+ raise ValueError(f"Failed to find {AWX_ENTRY} in {data}")
+
+
+def run(fname, awx_path):
+ write_yaml_file(fname, replace_awx(load_yaml_file(fname), awx_path))
+
+
+if __name__ == "__main__":
+ if len(sys.argv) == 3:
+ run(sys.argv[1], sys.argv[2])
+ else:
+ print(f"Usage: {sys.argv[0]} <awx-operator-molecule-requirements.yml> <awx-git-path>", file=sys.stderr)