@@ -27,83 +27,26 @@ jobs:
2727 runs-on : ubuntu-latest
2828 strategy :
2929 fail-fast : ${{ inputs.fail-fast }}
30- # If you add a new repository here, also add it to config/repositories.yaml
3130 matrix :
31+ # This should be the list of repository names from config/repositories.yaml:
32+ # yq '.repositories | map(.name)' config/repositories.yaml
3233 repository :
33- - name : airflow-operator
34- pretty_string : Apache Airflow
35- product_string : airflow
36- url : stackabletech/airflow-operator.git
37- - name : commons-operator
38- include_productconfig : false
39- has_product : false
40- pretty_string : Stackable Commons
41- product_string : commons
42- url : stackabletech/commons-operator.git
43- - name : druid-operator
44- pretty_string : Apache Druid
45- product_string : druid
46- url : stackabletech/druid-operator.git
47- - name : hbase-operator
48- pretty_string : Apache HBase
49- product_string : hbase
50- url : stackabletech/hbase-operator.git
51- - name : hdfs-operator
52- pretty_string : Apache HDFS
53- product_string : hdfs
54- url : stackabletech/hdfs-operator.git
55- - name : hive-operator
56- pretty_string : Apache Hive
57- product_string : hive
58- url : stackabletech/hive-operator.git
59- - name : kafka-operator
60- pretty_string : Apache Kafka
61- product_string : kafka
62- url : stackabletech/kafka-operator.git
63- - name : nifi-operator
64- pretty_string : Apache NiFi
65- product_string : nifi
66- url : stackabletech/nifi-operator.git
67- - name : listener-operator
68- include_productconfig : false
69- has_product : false
70- pretty_string : Stackable Listener Operator
71- product_string : listener-operator
72- run_as : custom
73- url : stackabletech/listener-operator.git
74- - name : opa-operator
75- extra_crates :
76- - stackable-opa-bundle-builder
77- pretty_string : OpenPolicyAgent
78- product_string : opa
79- url : stackabletech/opa-operator.git
80- - name : opensearch-operator
81- pretty_string : OpenSearch
82- product_string : opensearch
83- url : stackabletech/opensearch-operator.git
84- - name : secret-operator
85- include_productconfig : false
86- has_product : false
87- pretty_string : Stackable Secret Operator
88- product_string : secret-operator
89- run_as : custom
90- url : stackabletech/secret-operator.git
91- - name : spark-k8s-operator
92- pretty_string : Apache Spark-on-Kubernetes
93- product_string : spark-k8s
94- url : stackabletech/spark-k8s-operator.git
95- - name : superset-operator
96- pretty_string : Apache Superset
97- product_string : superset
98- url : stackabletech/superset-operator.git
99- - name : trino-operator
100- pretty_string : Trino
101- product_string : trino
102- url : stackabletech/trino-operator.git
103- - name : zookeeper-operator
104- pretty_string : Apache ZooKeeper
105- product_string : zookeeper
106- url : stackabletech/zookeeper-operator.git
34+ - airflow-operator
35+ - commons-operator
36+ - druid-operator
37+ - hbase-operator
38+ - hdfs-operator
39+ - hive-operator
40+ - kafka-operator
41+ - nifi-operator
42+ - listener-operator
43+ - opa-operator
44+ - opensearch-operator
45+ - secret-operator
46+ - spark-k8s-operator
47+ - superset-operator
48+ - trino-operator
49+ - zookeeper-operator
10750 steps :
10851 - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
10952 with :
@@ -113,10 +56,10 @@ jobs:
11356 env :
11457 DEBIAN_FRONTEND : noninteractive
11558 run : |
116- sudo apt update && \
117- sudo apt install -y software-properties-common && \
118- sudo apt-add-repository ppa:ansible/ansible -y && \
119- sudo apt install -y ansible
59+ sudo apt update && \
60+ sudo apt install -y software-properties-common && \
61+ sudo apt-add-repository ppa:ansible/ansible -y && \
62+ sudo apt install -y ansible
12063
12164 # NOTE (@NickLarsenNZ): This could be removed in favor of nix-shell and rrbutani/use-nix-shell-action
12265 - name : Install deps for operators
@@ -148,36 +91,18 @@ jobs:
14891 echo "AUTHOR=stackabletech/developers"
14992 echo "REASON=Daily run triggered" >> "$GITHUB_ENV"
15093
151- - name : Overwrite repositories.yaml for ${{ matrix.repository.name }}
152- run : |
153- cat >config/repositories.yaml <<CONFIG
154- ---
155- repositories:
156- - ${{ toJSON(matrix.repository) }}
157- CONFIG
158-
159- # For debugging
160- cat config/repositories.yaml
161-
162- # Generate PRs
16394 - name : Run playbook
164- if : ${{ !inputs.dry-run }}
16595 env :
16696 CUSTOM_PR_TITLE : ${{ inputs.custom-pr-title }}
16797 GH_ACCESS_TOKEN : ${{ secrets.gh_access_token }}
98+ REPOSITORY : ${{ matrix.repository }}
99+ # tags local excludes all actions that actually generate PRs
100+ DRY_RUN_FLAGS : ${{ inputs.dry-run && '--tags=local' || '' }}
101+ # shellsheck disable=SC2086
168102 run : |
169- # Funnel via JSON to ensure that values are escaped properly
170- # Check if custom PR title is set. If so, insert it into the extra vars
171- if [ -n "$CUSTOM_PR_TITLE" ]; then
172- echo '{}' | jq '{commit_hash: $ENV.GITHUB_SHA, author: $ENV.AUTHOR, reason: $ENV.REASON, custom_pr_title: $ENV.CUSTOM_PR_TITLE, base_dir: $pwd, gh_access_token: $ENV.GH_ACCESS_TOKEN}' --arg pwd "$(pwd)" > vars.json
173- else
174- echo '{}' | jq '{commit_hash: $ENV.GITHUB_SHA, author: $ENV.AUTHOR, reason: $ENV.REASON, base_dir: $pwd, gh_access_token: $ENV.GH_ACCESS_TOKEN}' --arg pwd "$(pwd)" > vars.json
175- fi
176- ansible-playbook playbook/playbook.yaml --extra-vars "@vars.json"
177-
178- # Do Not Generate PRs
179- - name : Run playbook (dry-run)
180- if : ${{ inputs.dry-run }}
181- run : ./test.sh
182- env :
183- GH_ACCESS_TOKEN : " "
103+ echo '{}' | jq '{commit_hash: $ENV.GITHUB_SHA, author: $ENV.AUTHOR, reason: $ENV.REASON, custom_pr_title: $ENV.CUSTOM_PR_TITLE, base_dir: $pwd, gh_access_token: $ENV.GH_ACCESS_TOKEN, shard_repositories: [$ENV.REPOSITORY]} | with_entries(select(.value != null and .value != ""))' --arg pwd "$(pwd)" > vars.json
104+ # $DRY_RUN_FLAGS is intentionally not quoted, since we need to avoid
105+ # passing an argument if we're not in dry mode.
106+ # This is safe, since it always has one of two hard-coded values.
107+ # shellcheck disable=SC2086
108+ ansible-playbook playbook/playbook.yaml --extra-vars "@vars.json" $DRY_RUN_FLAGS
0 commit comments