Skip to content

Commit

Permalink
feat(iroha2-ledger): add Iroha V2 test ledger image and setup class
Browse files Browse the repository at this point in the history
- Add a new test image for Iroha V2 (iroha2-all-in-one). It start a test ledger in single container,
  and also contains a proxy script for running iroha_client_cli.
- Add the new image to the CI.
- Add a new class for starting and interacting with Iroha V2 test ledger
  from typescript test - Iroha2TestLedger.
- Add test for test setup class to ensure basic functions are working correctly.

Relates to hyperledger-cacti#2138

Signed-off-by: Michal Bajer <[email protected]>
  • Loading branch information
outSH committed Oct 19, 2022
1 parent cc8deb8 commit 8f0c5e3
Show file tree
Hide file tree
Showing 16 changed files with 1,067 additions and 0 deletions.
56 changes: 56 additions & 0 deletions .github/workflows/iroha2-all-in-one-publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: iroha2-all-in-one-publish

on:
push:
# Publish `main` as Docker `latest` image.
branches:
- main

# Publish `v1.2.3` tags as releases.
tags:
- v*

env:
IMAGE_NAME: cactus-iroha2-all-in-one

jobs:
# Push image to GitHub Packages.
# See also https://docs.docker.com/docker-hub/builds/
build-tag-push-container:
runs-on: ubuntu-20.04
env:
DOCKER_BUILDKIT: 1
DOCKERFILE_PATH: ./tools/docker/iroha2-all-in-one/Dockerfile
DOCKER_BUILD_DIR: ./tools/docker/iroha2-all-in-one/
permissions:
packages: write
contents: read

steps:
- uses: actions/[email protected]

- name: Build image
run: docker build $DOCKER_BUILD_DIR --file $DOCKERFILE_PATH --tag $IMAGE_NAME --label "runnumber=${GITHUB_RUN_ID}"

- name: Log in to registry
# This is where you will update the PAT to GITHUB_TOKEN
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin

- name: Push image
run: |
SHORTHASH=$(git rev-parse --short "$GITHUB_SHA")
TODAYS_DATE="$(date +%F)"
DOCKER_TAG="$TODAYS_DATE-$SHORTHASH"
IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME
# Change all uppercase to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
# Strip "v" prefix from tag name
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
# Do not use the `latest` tag at all, tag with date + git short hash if there is no git tag
[ "$VERSION" == "main" ] && VERSION=$DOCKER_TAG
echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION
docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION
Original file line number Diff line number Diff line change
Expand Up @@ -653,6 +653,25 @@ export class Containers {
}
});
}

/**
* Get all environment variables defined in container provided in argument.
*
* @param container Running dockerode container instance
* @returns Map between environment variable name and it's value.
*/
public static async getEnvVars(
container: Container,
): Promise<Map<string, string>> {
Checks.truthy(container);

const inspectInfo = await container.inspect();
return new Map(
inspectInfo.Config.Env.map(
(entry) => entry.split("=") as [string, string],
),
);
}
}

export interface IStreamLogsRequest {
Expand Down
Loading

0 comments on commit 8f0c5e3

Please sign in to comment.