diff --git a/.github/workflows/terraform.yaml b/.github/workflows/terraform.yaml new file mode 100644 index 0000000..cd75921 --- /dev/null +++ b/.github/workflows/terraform.yaml @@ -0,0 +1,45 @@ +name: terraform + +on: + pull_request: + paths: + - "**/*.tf" + - ".terraform.lock.hcl" + - "terraform.tfvars.example" + - ".github/workflows/terraform.yaml" + push: + branches: + - main + paths: + - "**/*.tf" + - ".terraform.lock.hcl" + - "terraform.tfvars.example" + - ".github/workflows/terraform.yaml" + +permissions: + contents: read + +concurrency: + group: terraform-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + validate: + runs-on: ubuntu-24.04 + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 + + - name: Set up Terraform + uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3 + with: + terraform_version: 1.15.2 + + - name: Check formatting + run: terraform fmt -check -diff + + - name: Initialize without backend + run: terraform init -backend=false -lockfile=readonly + + - name: Validate + run: terraform validate diff --git a/README.md b/README.md index 25942da..be92c14 100644 --- a/README.md +++ b/README.md @@ -198,7 +198,7 @@ No modules. | [dns\_zone\_name](#input\_dns\_zone\_name) | Cloud DNS managed zone name. | `string` | `"packages-libops-io"` | no | | [github\_actors](#input\_github\_actors) | Optional GitHub actors allowed to use the provider. Leave empty to allow any actor from the approved repositories. | `set(string)` | `[]` | no | | [github\_owner](#input\_github\_owner) | GitHub organization that owns the repositories allowed to publish packages. | `string` | `"libops"` | no | -| [github\_repositories](#input\_github\_repositories) | Full GitHub repository names allowed to impersonate the publishing service account. | `set(string)` |
[
"libops/sitectl",
"libops/sitectl-drupal",
"libops/sitectl-isle",
"libops/sitectl-libops"
]
| no | +| [github\_repositories](#input\_github\_repositories) | Full GitHub repository names allowed to impersonate the publishing service account. | `set(string)` |
[
"libops/sitectl",
"libops/sitectl-app-tmpl",
"libops/sitectl-archivesspace",
"libops/sitectl-drupal",
"libops/sitectl-isle",
"libops/sitectl-libops",
"libops/sitectl-ojs",
"libops/sitectl-omeka-classic",
"libops/sitectl-omeka-s",
"libops/sitectl-wp"
]
| no | | [org\_id](#input\_org\_id) | Google Cloud organization ID. | `string` | n/a | yes | | [package\_domain](#input\_package\_domain) | Fully qualified domain name that will serve the package repository. | `string` | `"packages.libops.io"` | no | | [project\_id](#input\_project\_id) | Google Cloud project ID. | `string` | `"libops-linux-packages"` | no | diff --git a/terraform.tfvars.example b/terraform.tfvars.example index 449cc52..9d09337 100644 --- a/terraform.tfvars.example +++ b/terraform.tfvars.example @@ -1,8 +1,14 @@ github_repositories = [ "libops/sitectl", + "libops/sitectl-app-tmpl", + "libops/sitectl-archivesspace", "libops/sitectl-drupal", "libops/sitectl-isle", "libops/sitectl-libops", + "libops/sitectl-ojs", + "libops/sitectl-omeka-classic", + "libops/sitectl-omeka-s", + "libops/sitectl-wp", ] github_actors = [ diff --git a/variables.tf b/variables.tf index 243e3a6..a9073ab 100644 --- a/variables.tf +++ b/variables.tf @@ -9,9 +9,15 @@ variable "github_repositories" { type = set(string) default = [ "libops/sitectl", + "libops/sitectl-app-tmpl", + "libops/sitectl-archivesspace", "libops/sitectl-drupal", "libops/sitectl-isle", "libops/sitectl-libops", + "libops/sitectl-ojs", + "libops/sitectl-omeka-classic", + "libops/sitectl-omeka-s", + "libops/sitectl-wp", ] }