name: Build micro-service Manual on: workflow_dispatch: inputs: microService: description: "Name of the micro-service image to build" type: choice options: - "join-service" - "kmsserver" - "verification-service" required: true default: "join-service" imageTag: description: "Container image tag" required: true default: "manual-build" version: description: "Version of the image to build" required: true default: "0.0.0" jobs: build-micro-service: runs-on: ubuntu-22.04 permissions: contents: read packages: write steps: - name: Check out repository id: checkout uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0 with: ref: ${{ github.head_ref }} - name: Setup Go environment uses: actions/setup-go@c4a742cab115ed795e34d4513e2cf7d472deb55f # tag=v3.3.1 with: go-version: "1.19.3" # choose the correct Dockerfile depending on what micro-service is being build - name: Set Dockerfile variable id: set-variable run: | case "${{ inputs.microService }}" in "join-service" ) echo "microServiceDockerfile=joinservice/Dockerfile" >> "$GITHUB_ENV" ;; "kmsserver" ) echo "microServiceDockerfile=kms/Dockerfile" >> "$GITHUB_ENV" ;; "verification-service" ) echo "microServiceDockerfile=verify/Dockerfile" >> "$GITHUB_ENV" ;; esac - name: Build and upload container image id: build-and-upload uses: ./.github/actions/build_micro_service with: name: ${{ inputs.microService }} projectVersion: ${{ inputs.version }} dockerfile: ${{ env.microServiceDockerfile }} pushTag: ${{ inputs.imageTag }} githubToken: ${{ secrets.GITHUB_TOKEN }} cosignPublicKey: ${{ startsWith(github.ref, 'refs/heads/release/v') && secrets.COSIGN_PUBLIC_KEY || secrets.COSIGN_DEV_PUBLIC_KEY }} cosignPrivateKey: ${{ startsWith(github.ref, 'refs/heads/release/v') && secrets.COSIGN_PRIVATE_KEY || secrets.COSIGN_DEV_PRIVATE_KEY }} cosignPassword: ${{ startsWith(github.ref, 'refs/heads/release/v') && secrets.COSIGN_PASSWORD || secrets.COSIGN_DEV_PASSWORD }}