Skip to content

Commit 6fbed42

Browse files
committed
Add Archivematica instances for dev and staging
This commit adds terraform definitions for Archivematica instances for our dev and staging environments, as well as Github Actions to deploy those instances.
1 parent 82e996b commit 6fbed42

18 files changed

+2682
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
on:
2+
workflow_dispatch:
3+
pull_request:
4+
5+
jobs:
6+
build_archivematica:
7+
uses: PermanentOrg/archivematica/.github/workflows/build.yml@main
8+
secrets: inherit
9+
10+
build_archivematica_storage_service:
11+
uses: PermanentOrg/archivematica-storage-service/.github/workflows/build.yml@main
12+
secrets: inherit
13+
14+
deploy:
15+
runs-on: ubuntu-latest
16+
needs:
17+
- build_archivematica
18+
- build_archivematica_storage_service
19+
env:
20+
ARCHIVEMATICA_DASHBOARD_IMAGE_TAG: ${{ needs.build_archivematica.outputs.ARCHIVEMATICA_DASHBOARD_IMAGE_TAG }}
21+
ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG: ${{ needs.build_archivematica.outputs.ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG }}
22+
ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG: ${{ needs.build_archivematica.outputs.ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG }}
23+
ARCHIVEMATICA_STORAGE_SERVICE_IMAGE_TAG: ${{ needs.build_archivematica_storage_service.outputs.ARCHIVEMATICA_STORAGE_SERVICE_IMAGE_TAG }}
24+
defaults:
25+
run:
26+
working-directory: ./archivematica/test_cluster
27+
steps:
28+
- uses: actions/checkout@v5
29+
- name: Setup Terraform
30+
uses: hashicorp/setup-terraform@v3
31+
with:
32+
cli_config_credentials_token: ${{ secrets.TERRAFORM_API_TOKEN }}
33+
- name: Terraform Init
34+
run: terraform init
35+
- name: Terraform Validate
36+
run: terraform validate -no-color
37+
- name: Terraform Plan
38+
run: |
39+
terraform plan -no-color -input=false \
40+
-var "image_overrides={
41+
\"archivematica-dashboard-dev\" = \"$ARCHIVEMATICA_DASHBOARD_IMAGE_TAG\",
42+
\"archivematica-mcp-client-dev\" = \"$ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG\",
43+
\"archivematica-mcp-server-dev\" = \"$ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG\",
44+
\"archivematica-storage-service-dev\" = \"$ARCHIVEMATICA_STORAGE_SERVICE_IMAGE_TAG\"
45+
}"
46+
- name: Terraform Apply
47+
run: |
48+
terraform apply -auto-approve -input=false \
49+
-var "image_overrides={
50+
\"archivematica-dashboard-dev\" = \"$ARCHIVEMATICA_DASHBOARD_IMAGE_TAG\",
51+
\"archivematica-mcp-client-dev\" = \"$ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG\",
52+
\"archivematica-mcp-server-dev\" = \"$ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG\",
53+
\"archivematica-storage-service-dev\" = \"$ARCHIVEMATICA_STORAGE_SERVICE_IMAGE_TAG\"
54+
}"
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
on:
2+
workflow_dispatch:
3+
pull_request:
4+
5+
jobs:
6+
build_archivematica:
7+
uses: PermanentOrg/archivematica/.github/workflows/build.yml@main
8+
secrets: inherit
9+
10+
build_archivematica_storage_service:
11+
uses: PermanentOrg/archivematica-storage-service/.github/workflows/build.yml@main
12+
secrets: inherit
13+
14+
deploy:
15+
runs-on: ubuntu-latest
16+
needs:
17+
- build_archivematica
18+
- build_archivematica_storage_service
19+
env:
20+
ARCHIVEMATICA_DASHBOARD_IMAGE_TAG: ${{ needs.build_archivematica.outputs.ARCHIVEMATICA_DASHBOARD_IMAGE_TAG }}
21+
ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG: ${{ needs.build_archivematica.outputs.ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG }}
22+
ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG: ${{ needs.build_archivematica.outputs.ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG }}
23+
ARCHIVEMATICA_STORAGE_SERVICE_IMAGE_TAG: ${{ needs.build_archivematica_storage_service.outputs.ARCHIVEMATICA_STORAGE_SERVICE_IMAGE_TAG }}
24+
defaults:
25+
run:
26+
working-directory: ./archivematica/test_cluster
27+
steps:
28+
- uses: actions/checkout@v5
29+
- name: Setup Terraform
30+
uses: hashicorp/setup-terraform@v3
31+
with:
32+
cli_config_credentials_token: ${{ secrets.TERRAFORM_API_TOKEN }}
33+
- name: Terraform Init
34+
run: terraform init
35+
- name: Terraform Validate
36+
run: terraform validate -no-color
37+
- name: Terraform Plan
38+
run: |
39+
terraform plan -no-color -input=false \
40+
-var "image_overrides={
41+
\"archivematica-dashboard-staging\" = \"$ARCHIVEMATICA_DASHBOARD_IMAGE_TAG\",
42+
\"archivematica-mcp-client-staging\" = \"$ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG\",
43+
\"archivematica-mcp-server-staging\" = \"$ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG\",
44+
\"archivematica-storage-service-staging\" = \"$ARCHIVEMATICA_STORAGE_SERVICE_IMAGE_TAG\",
45+
}"
46+
- name: Terraform Apply
47+
run: |
48+
terraform apply -auto-approve -input=false \
49+
-var "image_overrides={
50+
\"archivematica-dashboard-staging\" = \"$ARCHIVEMATICA_DASHBOARD_IMAGE_TAG\",
51+
\"archivematica-mcp-client-staging\" = \"$ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG\",
52+
\"archivematica-mcp-server-staging\" = \"$ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG\",
53+
\"archivematica-storage-service-staging\" = \"$ARCHIVEMATICA_STORAGE_SERVICE_IMAGE_TAG\",
54+
}"

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,4 @@ override.tf.json
2121
# Ignore CLI configuration files
2222
.terraformrc
2323
terraform.rc
24+
.terraform.lock.hcl

0 commit comments

Comments
 (0)