• Mark Tyneway's avatar
    chain-mon: migrate fault detector · 1d09a6a9
    Mark Tyneway authored
    This commit migrates the fault-detector service to the chain-mon
    package. This is useful because it moves towards standardizing all
    of the offchain monitoring services into a single typescript package,
    following the pattern that is already used in the repo.
    
    This simplifies all of the linting and removes boilerplate, as the
    services in chain-mon are all very similar and use the same
    dependencies.
    
    This also ports the tests from fault-detector to chain-mon, making
    it the first tests in the repo. Longer term we could likely remove
    the need to test using hardhat, but no need to do that for now.
    This will make it easier to upgrade to a newer version of hardhat
    as the version we are currently on only supports up to node v16
    which is no longer LTS.
    
    This change will save a bit of build time and a bit of time before
    each commit because it will be one less package that needs to be
    built or linted.
    1d09a6a9
ci-docker-tag-op-stack-release.sh 1.5 KB
#!/usr/bin/env bash

set -euo pipefail

DOCKER_REPO=$1
GIT_TAG=$2
GIT_SHA=$3

IMAGE_NAME=$(echo "$GIT_TAG" | grep -Eow '^(ci-builder|proxyd|indexer|op-[a-z0-9\-]*)' || true)
if [ -z "$IMAGE_NAME" ]; then
  echo "image name could not be parsed from git tag '$GIT_TAG'"
  exit 1
fi
IMAGE_TAG=$(echo "$GIT_TAG" | grep -Eow 'v.*' || true)
if [ -z "$IMAGE_TAG" ]; then
  echo "image tag could not be parsed from git tag '$GIT_TAG'"
  exit 1
fi

SOURCE_IMAGE_TAG="$DOCKER_REPO/$IMAGE_NAME:$GIT_SHA"
TARGET_IMAGE_TAG="$DOCKER_REPO/$IMAGE_NAME:$IMAGE_TAG"
TARGET_IMAGE_TAG_LATEST="$DOCKER_REPO/$IMAGE_NAME:latest"

echo "Checking if docker images exist for '$IMAGE_NAME'"
echo ""
tags=$(gcloud container images list-tags "$DOCKER_REPO/$IMAGE_NAME" --limit 1 --format json)
if [ "$tags" = "[]" ]; then
  echo "No existing docker images were found for '$IMAGE_NAME'. The code tagged with '$GIT_TAG' may not have an associated dockerfile or docker build job."
  echo "If this service has a dockerfile, add a docker-publish job for it in the circleci config."
  echo ""
  echo "Exiting"
  exit 0
fi

echo "Tagging $SOURCE_IMAGE_TAG with '$IMAGE_TAG'"
gcloud container images add-tag -q "$SOURCE_IMAGE_TAG" "$TARGET_IMAGE_TAG"

# Do not tag with latest if the release is a release candidate.
if [[ "$IMAGE_TAG" == *"rc"* ]]; then
  echo "Not tagging with 'latest' because the release is a release candidate."
  exit 0
fi

echo "Tagging $SOURCE_IMAGE_TAG with 'latest'"
gcloud container images add-tag -q "$SOURCE_IMAGE_TAG" "$TARGET_IMAGE_TAG_LATEST"