name: Build and Push Price Pusher Image
on:
  push:
    tags:
      - pyth-price-pusher-v*
  workflow_dispatch:
    inputs:
      dispatch_description:
        description: "Dispatch description"
        required: true
        type: string
permissions:
  contents: read
  id-token: write
jobs:
  price-pusher-image:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set image tag to version of the git tag
        if: ${{ startsWith(github.ref, 'refs/tags/pyth-price-pusher-v') }}
        run: |
          PREFIX="refs/tags/pyth-price-pusher-"
          VERSION="${GITHUB_REF:${#PREFIX}}"
          echo "IMAGE_TAG=${VERSION}" >> "${GITHUB_ENV}"
      - name: Set image tag to the git commit hash
        if: ${{ !startsWith(github.ref, 'refs/tags/pyth-price-pusher-v') }}
        run: |
          echo "IMAGE_TAG=${{ github.sha }}" >> "${GITHUB_ENV}"
      - uses: aws-actions/configure-aws-credentials@8a84b07f2009032ade05a88a28750d733cc30db1
        with:
          role-to-assume: arn:aws:iam::192824654885:role/github-actions-ecr
          aws-region: eu-west-2
      - uses: docker/login-action@v2
        with:
          registry: public.ecr.aws
        env:
          AWS_REGION: us-east-1
      - uses: aws-actions/amazon-ecr-login@v1
        id: ecr_login
      - run: |
          DOCKER_BUILDKIT=1 docker build -t lerna -f Dockerfile.lerna .
          DOCKER_BUILDKIT=1 docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG -f price_pusher/Dockerfile .
          docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
        env:
          ECR_REGISTRY: public.ecr.aws
          ECR_REPOSITORY: pyth-network/xc-price-pusher
