Skip to content

Merge pull request #12 from PermanentOrg/optimize_dashboard_queries #22

Merge pull request #12 from PermanentOrg/optimize_dashboard_queries

Merge pull request #12 from PermanentOrg/optimize_dashboard_queries #22

Workflow file for this run

on:
workflow_call:
outputs:
ARCHIVEMATICA_DASHBOARD_IMAGE_TAG:
value: ${{ jobs.generate_image_tags.outputs.ARCHIVEMATICA_DASHBOARD_IMAGE_TAG}}
ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG:
value: ${{ jobs.generate_image_tags.outputs.ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG}}
ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG:
value: ${{ jobs.generate_image_tags.outputs.ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG}}
inputs:
target_repo:
type: string
required: false
default: PermanentOrg/archivematica
workflow_dispatch:
inputs:
target_repo:
type: string
required: false
default: PermanentOrg/archivematica
push:
inputs:
target_repo:
type: string
required: false
default: PermanentOrg/archivematica
branches:
- main
jobs:
generate_image_tags:
runs-on: ubuntu-24.04
outputs:
ARCHIVEMATICA_DASHBOARD_IMAGE_TAG: ${{ steps.generate_dashboard_image_tag.outputs.ARCHIVEMATICA_DASHBOARD_IMAGE_TAG}}
ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG: ${{ steps.generate_mcp_server_image_tag.outputs.ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG}}
ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG: ${{ steps.generate_mcp_client_image_tag.outputs.ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG}}
steps:
- uses: actions/checkout@v5
- name: Set ECR domain env var
id: set_ecr_domain
run: echo "ECR_DOMAIN=364159549467.dkr.ecr.$AWS_REGION.amazonaws.com" >> "$GITHUB_ENV"
env:
AWS_REGION: ${{ vars.AWS_DEFAULT_REGION }}
- name: Set branch type env var
id: set_branch_type
run: echo "BRANCH_TYPE=$([[ ${GITHUB_REF##*/} = main ]] && echo main || echo feature)" >> "$GITHUB_ENV"
- name: Set abbreviated commit hash env var
id: set_abbreviated_commit_hash
run: echo "ABBREVIATED_COMMIT_HASH=$(git rev-parse --short $GITHUB_SHA)" >> "$GITHUB_ENV"
- name: Generate Dashboard Image Tag
id: generate_dashboard_image_tag
run: echo "ARCHIVEMATICA_DASHBOARD_IMAGE_TAG=$ECR_DOMAIN/archivematica:dashboard-$BRANCH_TYPE-$ABBREVIATED_COMMIT_HASH" >> "$GITHUB_OUTPUT"
- name: Generate MCP Server Image Tag
id: generate_mcp_server_image_tag
run: echo "ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG=$ECR_DOMAIN/archivematica:mcp-server-$BRANCH_TYPE-$ABBREVIATED_COMMIT_HASH" >> "$GITHUB_OUTPUT"
- name: Generate MCP Client Image Tag
id: generate_mcp_client_image_tag
run: echo "ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG=$ECR_DOMAIN/archivematica:mcp-client-$BRANCH_TYPE-$ABBREVIATED_COMMIT_HASH" >> "$GITHUB_OUTPUT"
build_dashboard:
needs:
- generate_image_tags
runs-on: ubuntu-24.04
env:
ARCHIVEMATICA_DASHBOARD_IMAGE_TAG: ${{ needs.generate_image_tags.outputs.ARCHIVEMATICA_DASHBOARD_IMAGE_TAG}}
steps:
- uses: actions/checkout@v5
with:
repository: ${{ inputs.target_repo }}
- run: docker build -t $ARCHIVEMATICA_DASHBOARD_IMAGE_TAG --target archivematica-dashboard -f hack/Dockerfile .
- name: AWS Login
run: aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin 364159549467.dkr.ecr.$AWS_REGION.amazonaws.com
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Publish Image to ECR
run: docker push $ARCHIVEMATICA_DASHBOARD_IMAGE_TAG
build_mcp_server:
needs:
- generate_image_tags
runs-on: ubuntu-24.04
env:
ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG: ${{ needs.generate_image_tags.outputs.ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG}}
steps:
- uses: actions/checkout@v5
with:
repository: ${{ inputs.target_repo }}
- run: docker build -t $ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG --target archivematica-mcp-server -f hack/Dockerfile .
- name: AWS Login
run: aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin 364159549467.dkr.ecr.$AWS_REGION.amazonaws.com
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Publish Image to ECR
run: docker push $ARCHIVEMATICA_MCP_SERVER_IMAGE_TAG
build_mcp_client:
needs:
- generate_image_tags
runs-on: ubuntu-24.04
env:
ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG: ${{ needs.generate_image_tags.outputs.ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG}}
steps:
- uses: actions/checkout@v5
with:
repository: ${{ inputs.target_repo }}
- run: docker build -t $ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG --target archivematica-mcp-client -f hack/Dockerfile .
- name: AWS Login
run: aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin 364159549467.dkr.ecr.$AWS_REGION.amazonaws.com
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Publish Image to ECR
run: docker push $ARCHIVEMATICA_MCP_CLIENT_IMAGE_TAG