Skip to content

Commit 7a98ae2

Browse files
committed
ci: add collect-modules action
fix t
1 parent 81c7022 commit 7a98ae2

File tree

3 files changed

+52
-2
lines changed

3 files changed

+52
-2
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Find modules in the repository
2+
description: >
3+
Looks for modules in the repository and outputs their paths.
4+
5+
outputs:
6+
tf-modules:
7+
description: Paths to the Terraform modules found in the repository
8+
value: ${{ steps.find-modules.outputs.tf-modules }}
9+
10+
runs:
11+
using: composite
12+
steps:
13+
- name: Find modules
14+
id: find-modules
15+
run: |
16+
set -eu
17+
18+
tf_modules=()
19+
for module_cfg in $(find . -name .module.toml); do
20+
case $(yq -o y .module.type $module_cfg) in
21+
null)
22+
echo "Warning: module type not found in $module_cfg"
23+
continue
24+
;;
25+
terraform)
26+
echo "Found Terraform module in $module_cfg"
27+
tf_modules+=($(dirname $module_cfg))
28+
;;
29+
esac
30+
done
31+
32+
echo tf-modules=$(printf '%s\n' "${tf_modules[@]}" | jq -cnR '[inputs]') > $GITHUB_OUTPUT
33+
shell: bash

.github/workflows/ci.yml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@ on:
66
pull_request:
77

88
jobs:
9+
collect-modules:
10+
runs-on: ubuntu-latest
11+
outputs:
12+
tf-modules: ${{ steps.collect-modules.outputs.tf-modules }}
13+
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- uses: ./.github/actions/collect-modules
18+
id: collect-modules
19+
920
typos:
1021
runs-on: ubuntu-latest
1122
steps:
@@ -49,11 +60,12 @@ jobs:
4960

5061
terraform-docs:
5162
runs-on: ubuntu-latest
63+
needs:
64+
- collect-modules
5265

5366
strategy:
5467
matrix:
55-
terraform_module:
56-
- asset-account/terraform/stack-set
68+
terraform_module: ${{fromJson(needs.collect-modules.outputs.tf-modules)}}
5769

5870
steps:
5971
- uses: actions/checkout@v4
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[module]
2+
name = "aws-elastio-asset-account-stack-set"
3+
description = "Terraform module for creating an asset account stack"
4+
type = "terraform"
5+
version = "0.33.0"

0 commit comments

Comments
 (0)