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" - "qemu-metadata-api" - "filebeat-debugd" - "logstash-debugd" 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@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 with: ref: ${{ !github.event.pull_request.head.repo.fork && github.head_ref || '' }} - name: Setup Go environment uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # v3.5.0 with: go-version: "1.19.4" # 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" ;; "qemu-metadata-api" ) echo "microServiceDockerfile=hack/qemu-metadata-api/Dockerfile" >> "$GITHUB_ENV" ;; "filebeat-debugd" ) echo "microServiceDockerfile=debugd/internal/debugd/logcollector/filebeat/Dockerfile" >> "$GITHUB_ENV" ;; "logstash-debugd" ) echo "microServiceDockerfile=debugd/internal/debugd/logcollector/logstash/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 }}