Skip to content

Test acceptance workflow #2

Test acceptance workflow

Test acceptance workflow #2

Workflow file for this run

name: Acceptance
on:
pull_request:
branches:
- "main"
- "release/**"
push:
branches:
- "main"
- "release/**"
tags:
- "v*"
defaults:
run:
shell: bash
working-directory: ./hedera-mirror-test
permissions:
contents: read
jobs:
validate:
runs-on: [self-hosted, Linux, large, ephemeral]
timeout-minutes: 30
steps:
- name: Harden Runner
uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Setup Node
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: 21
- name: Install JDK
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
with:
distribution: temurin
java-version: 21
- name: Setup Kind
run: |
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.23.0/kind-linux-amd64
[ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.23.0/kind-linux-arm64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
- name: Setup Solo Cluster
run: |
SOLO_CLUSTER=solo-e2e
SOLO_NAMESPACE=solo
SOLO_IMAGE_LIST=( \
docker.io/bitnami/postgresql-repmgr:14.11.0-debian-12-r8 \
docker.io/envoyproxy/envoy:v1.21.1 \
docker.io/grafana/grafana:10.1.5 \
docker.io/haproxytech/haproxy-alpine:2.4.25 \
quay.io/prometheus-operator/prometheus-config-reloader:v0.68.0 \
docker.io/otel/opentelemetry-collector-contrib:0.72.0 \
gcr.io/hedera-registry/hedera-mirror-node-explorer:24.4.0 \
gcr.io/hedera-registry/uploader-mirror:1.3.0 \
gcr.io/mirrornode/hedera-mirror-grpc:0.103.0 \
quay.io/prometheus-operator/prometheus-operator:v0.68.0 \
gcr.io/mirrornode/hedera-mirror-importer:0.103.0 \
gcr.io/mirrornode/hedera-mirror-monitor:0.103.0 \
gcr.io/mirrornode/hedera-mirror-rest:0.103.0 \
quay.io/prometheus/alertmanager:v0.26.0 \
gcr.io/mirrornode/hedera-mirror-web3:0.103.0 \
ghcr.io/hashgraph/full-stack-testing/ubi8-init-java21:0.24.5 \
quay.io/prometheus/node-exporter:v1.6.1 \
ghcr.io/hashgraph/hedera-json-rpc-relay:0.46.0 \
quay.io/kiwigrid/k8s-sidecar:1.25.1 \
quay.io/minio/minio:RELEASE.2024-02-09T21-25-16Z \
quay.io/minio/operator:v5.0.7 \
quay.io/prometheus/prometheus:v2.47.1 \
registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.0 \
)
function download_images() {
for im in "${SOLO_IMAGE_LIST[@]}"; do
echo "Pulling image: ${im}"
docker pull --quiet "${im}"
sleep 1
done
}
function load_images() {
for im in "${SOLO_IMAGE_LIST[@]}"; do
echo "Loading image: ${im}"
kind load docker-image "${im}" -n $SOLO_CLUSTER
done
}
download_images;
kind create cluster -n $SOLO_CLUSTER;
load_images;
npm i -g @hashgraph/[email protected];
solo init -n $SOLO_NAMESPACE -i node0,node1,node2;
solo cluster setup --prometheus-stack
solo network deploy --prometheus-svc-monitor
solo node keys --gossip-keys --tls-keys --key-format pem
solo node setup
solo node start
solo mirror-node deploy
solo relay deploy -i node0,node1,node2
- name: Show Container Log
if: ${{ failure() }}
run: |
echo "Logs for online container ${ONLINE_CONTAINER_ID}"
[[ -n "${ONLINE_CONTAINER_ID}" ]] && docker logs ${ONLINE_CONTAINER_ID} || true