Skip to content

Build Indy docker images for Bevel #11

Build Indy docker images for Bevel

Build Indy docker images for Bevel #11

##############################################################################################
# Copyright Accenture. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
##############################################################################################
# Build Indy docker images for Bevel triggered by :
# - push on develop branch for latest tags
# - create tag vx.y.z for release tags
# - Can be triggered manually
name: Build Indy docker images for Bevel
on:
workflow_dispatch:
inputs:
indy-node-version:
description: 'Enter indy-node-Version to build'
required: true
default: '1.12.1'
type: choice
options:
- '1.12.1'
create:
tags:
- v*
push:
branches:
- develop
paths:
- 'platforms/hyperledger-indy/images/**'
- '.github/workflows/img_platform_indy.yml'
env:
REGISTRY: ghcr.io
IMAGE_PATH: ghcr.io/${{ github.repository_owner }}
jobs:
# on push to develop branch, create docker tags latest
indy-latest:
if: ${{ startsWith(github.ref, 'refs/heads/develop') }}
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Login to the container registry
uses: docker/login-action@v1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Lowercase IMAGE_PATH
id: image_path_format
uses: ASzc/change-string-case-action@v2
with:
string: ${{ env.IMAGE_PATH }}
- name: Build and push bevel-indy-ledger-txn:latest
if: github.event.inputs.indy-node-version == ''
id: indy-cli-latest
uses: docker/build-push-action@v2
with:
context: platforms/hyperledger-indy/images/indy-cli
push: true
tags: ${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-ledger-txn:latest
- name: Build and push bevel-indy-ledger-txn:latest
if: github.event.inputs.indy-node-version != ''
id: indy-cli-version
uses: docker/build-push-action@v2
with:
context: platforms/hyperledger-indy/images/indy-cli
push: true
tags: ${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-ledger-txn:latest,${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-ledger-txn:${{ github.event.inputs.indy-node-version }}
- name: Build and push indyOS indy-key-mgmt latest
if: github.event.inputs.indy-node-version == ''
id: indy-key-mgmt_latest
uses: docker/build-push-action@v2
with:
context: platforms/hyperledger-indy/images/indy-key-mgmt
push: true
tags: ${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-key-mgmt:latest
- name: Build and push bevel-indy-node:latest
if: github.event.inputs.indy-node-version == ''
id: indy-node-latest
uses: docker/build-push-action@v2
with:
context: platforms/hyperledger-indy/images/indy-node
push: true
tags: ${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-node:latest
- name: Build and push indy-key-mgmt provided version
if: github.event.inputs.indy-node-version != ''
id: indy-key-mgmt_version
uses: docker/build-push-action@v2
with:
context: platforms/hyperledger-indy/images/indy-key-mgmt
push: true
build-args: |
INDY_NODE_VERSION=${{ github.event.inputs.indy-node-version }}
tags: ${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-key-mgmt:latest,${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-key-mgmt:${{ github.event.inputs.indy-node-version }}
- name: Build and push bevel-indy-node:provided version
if: github.event.inputs.indy-node-version != ''
id: indy-node-version
uses: docker/build-push-action@v2
with:
context: platforms/hyperledger-indy/images/indy-node
push: true
# TODO: Add correct build arguments
#build-args: |
# BUILDTIME-INDY-NODE-VERSION=${{ github.event.inputs.indy-node-version }}
tags: ${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-node:latest,${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-node:${{ github.event.inputs.indy-node-version }}
indy-release:
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set output
id: vars
run: echo ::set-output name=tag::${GITHUB_REF#refs/tags/v}
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to the container registry
uses: docker/login-action@v1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Lowercase IMAGE_PATH
id: image_path_format
uses: ASzc/change-string-case-action@v2
with:
string: ${{ env.IMAGE_PATH }}
- name: Build and push bevel-indy-ledger-txn release tag ${{ steps.vars.outputs.tag }}
id: indy-cli-release
uses: docker/build-push-action@v2
with:
context: platforms/hyperledger-indy/images/indy-cli
push: true
tags: ${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-ledger-txn:${{ steps.vars.outputs.tag }},${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-ledger-txn:stable
- name: Build and push bevel-indy-key-mgmt release tag ${{ steps.vars.outputs.tag }}
id: indy-key-mgmt-release
uses: docker/build-push-action@v2
with:
context: platforms/hyperledger-indy/images/indy-key-mgmt
push: true
tags: ${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-key-mgmt:${{ steps.vars.outputs.tag }},${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-key-mgmt:stable
- name: Build and push bevel-indy-node release and stable tag ${{ steps.vars.outputs.tag }}
id: indy-node-release
uses: docker/build-push-action@v2
with:
context: platforms/hyperledger-indy/images/indy-node
push: true
tags: ${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-node:${{ steps.vars.outputs.tag }},${{ steps.image_path_format.outputs.lowercase }}/bevel-indy-node:stable