Test Docker images build #60
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test Docker images build | |
on: | |
workflow_dispatch: | |
inputs: | |
distribution_code: | |
description: | | |
Specific code to identify the new distribution. The distribution package will be named with the following nomenclature: `test-{{distribution_code}}-{{sha}}` | |
required: true | |
type: string | |
commit_sha: | |
description: | | |
SHA of the commit on which the mithril binaries should be obtained, a "ci.yml" workflow must have run | |
on it otherwise no binary would be available leading to the failure of this workflow. | |
required: true | |
type: string | |
embed_cardano_cli: | |
description: | | |
Embed Cardano-cli in the Docker image. | |
Only needed if you want to use cardano-cli chain observer. | |
required: true | |
type: boolean | |
default: false | |
cardano_bin_url: | |
description: The url of the archive of the Cardano binaries | |
required: true | |
type: string | |
default: https://github.com/IntersectMBO/cardano-node/releases/download/9.0.0/cardano-node-9.0.0-linux.tar.gz | |
dry_run: | |
description: Dry run will not push the Docker images to the registry | |
required: true | |
type: boolean | |
default: true | |
jobs: | |
build-push-docker: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
project: | |
[ | |
mithril-aggregator, | |
mithril-client-cli, | |
mithril-signer, | |
mithril-relay, | |
] | |
include: | |
- project: mithril-client-cli | |
package: mithril-client | |
permissions: | |
contents: read | |
packages: write | |
env: | |
REGISTRY: ghcr.io | |
PACKAGE: ${{ github.repository_owner }}/${{ matrix.package != '' && matrix.package || matrix.project }} | |
DOCKER_FILE: ./${{ matrix.project }}/Dockerfile.ci | |
CONTEXT: . | |
GITHUB_REF: ${{ github.ref}} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Get short SHA | |
id: slug | |
run: echo "sha8=$(echo ${{ inputs.commit_sha }} | cut -c1-7)" >> $GITHUB_OUTPUT | |
- name: Checkout commit | |
run: | | |
git checkout ${{ inputs.commit_sha }} | |
- name: Download built artifacts (Linux-x64) | |
uses: dawidd6/action-download-artifact@v3 | |
with: | |
name: mithril-distribution-Linux-X64 | |
path: ${{ matrix.project }} | |
commit: ${{ inputs.commit_sha }} | |
workflow: ci.yml | |
workflow_conclusion: completed | |
- name: Log in to the Container registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.PACKAGE }} | |
tags: | | |
test | |
type=raw,value=test-${{ inputs.distribution_code }}-${{ steps.slug.outputs.sha8 }} | |
- name: Build and push Docker image | |
uses: docker/build-push-action@v5 | |
with: | |
context: ${{ env.CONTEXT }} | |
file: ${{ env.DOCKER_FILE }} | |
build-args: | | |
EMBED-CARDANO-CLI=${{ inputs.embed_cardano_cli && 1 || 0 }} | |
CARDANO_BIN_URL=${{ inputs.cardano_bin_url }} | |
push: ${{ inputs.dry_run == false }} | |
tags: ${{ steps.meta.outputs.tags }} |