Skip to content

Commit

Permalink
Add latest changes
Browse files Browse the repository at this point in the history
  • Loading branch information
seniakalma committed Jan 30, 2025
1 parent cb88700 commit 6e2338b
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 45 deletions.
47 changes: 24 additions & 23 deletions .github/workflows/push-to-ecr.yaml
Original file line number Diff line number Diff line change
@@ -1,56 +1,57 @@
name: Push to Amazon ECR

name: Push to Amazon Public ECR
on:
workflow_dispatch:

env:
AWS_REGION: ${{ vars.AWS_REGION }} # set this to your preferred AWS region, e.g. us-west-1
ECR_REPOSITORY: ${{ vars.ECR_REPOSITORY }} # set this to your Amazon ECR repository name
AWS_REGION: us-east-1 # Must be us-east-1 for ECR Public
ECR_REPOSITORY: ${{ vars.ECR_REPOSITORY }}
ECR_REGISTRY_ALIAS: ${{ vars.ECR_REGISTRY_ALIAS }}

jobs:
push-deploy:
name: Push and Deploy
runs-on: ubuntu-latest
environment: dev

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@0e613a0980cbf65ed5b322eb7a1e075d28913a83
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@62f4f872db3836360b72999f4b87f1ff13310f3a
- name: Login to Amazon ECR Public
id: login-ecr-public
uses: aws-actions/amazon-ecr-login@v2
with:
registry-type: public
region: us-east-1

- name: Get last Git tag
id: vars
run: |
# Fetch all tags
git fetch --tags
# Get the latest tag
TAG=$(git describe --tags --abbrev=0)
TAG=$(git describe --tags --always --abbrev=0)
echo "TAG=$TAG" >> $GITHUB_ENV
- name: Build, tag, and push image to Amazon ECR
- name: Build, tag, and push image to Amazon ECR Public
id: build-image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_PUBLIC_REGISTRY: public.ecr.aws
IMAGE_TAG_LATEST: latest
IMAGE_TAG_TAG: ${{ env.TAG }}
run: |
# Build a docker container
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG_LATEST -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG_TAG -f Dockerfile-demo .
# Build a docker container with public ECR URI format
docker build -t $ECR_PUBLIC_REGISTRY/$ECR_REGISTRY_ALIAS/$ECR_REPOSITORY:$IMAGE_TAG_LATEST \
-t $ECR_PUBLIC_REGISTRY/$ECR_REGISTRY_ALIAS/$ECR_REPOSITORY:$IMAGE_TAG_TAG \
-f Dockerfile-demo .
# Push both tags to ECR Public
docker push $ECR_PUBLIC_REGISTRY/$ECR_REGISTRY_ALIAS/$ECR_REPOSITORY:$IMAGE_TAG_LATEST
docker push $ECR_PUBLIC_REGISTRY/$ECR_REGISTRY_ALIAS/$ECR_REPOSITORY:$IMAGE_TAG_TAG
# Push both tags to ECR
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG_LATEST
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG_TAG
# Output the image URIs
echo "image_latest=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG_LATEST" >> $GITHUB_OUTPUT
echo "image_tag=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG_TAG" >> $GITHUB_OUTPUT
echo "image_latest=$ECR_PUBLIC_REGISTRY/$ECR_REGISTRY_ALIAS/$ECR_REPOSITORY:$IMAGE_TAG_LATEST" >> $GITHUB_OUTPUT
echo "image_tag=$ECR_PUBLIC_REGISTRY/$ECR_REGISTRY_ALIAS/$ECR_REPOSITORY:$IMAGE_TAG_TAG" >> $GITHUB_OUTPUT
41 changes: 19 additions & 22 deletions .github/workflows/run-tx-tool.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ on:
env:
AWS_REGION: ${{ vars.AWS_REGION }}
ECR_REPOSITORY: ${{ vars.ECR_REPOSITORY }}
ECR_PUBLIC_REGISTRY: public.ecr.aws
ECR_REGISTRY_ALIAS: ${{ vars.ECR_REGISTRY_ALIAS }}

jobs:
run-container:
Expand All @@ -33,17 +35,6 @@ jobs:
environment: dev

steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1

- name: Print initial configuration values
run: |
echo "Initial Configuration Values:"
Expand All @@ -68,30 +59,36 @@ jobs:
echo "ZCASH_NODE_PORT: $ZCASH_NODE_PORT"
echo "ZCASH_NODE_PROTOCOL: $ZCASH_NODE_PROTOCOL"
echo "IMAGE_TAG: $IMAGE_TAG"
# Define and persist the full ECR image path
echo "ECR_IMAGE=$ECR_PUBLIC_REGISTRY/$ECR_REGISTRY_ALIAS/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_ENV
echo "ECR_IMAGE: $ECR_PUBLIC_REGISTRY/$ECR_REGISTRY_ALIAS/$ECR_REPOSITORY:$IMAGE_TAG"
- name: Pull Docker image from ECR
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
run: |
docker pull $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
docker pull $ECR_IMAGE
- name: Run Docker container
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
run: |
docker run \
-e ZCASH_NODE_ADDRESS="$ZCASH_NODE_ADDRESS" \
-e ZCASH_NODE_PORT="$ZCASH_NODE_PORT" \
-e ZCASH_NODE_PROTOCOL="$ZCASH_NODE_PROTOCOL" \
$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
$ECR_IMAGE
- name: Notify Slack
if: always() # Ensures this step runs regardless of success or failure of previous steps
- name: Notify Slack on Success
if: success() # Runs only if the previous steps succeed
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_TITLE: "tx-tool"
SLACK_MESSAGE: "Finished running tx-tool"
SLACK_MESSAGE_ON_SUCCESS: "✅ Docker run completed successfully with Docker tag '${{ steps.set-defaults.outputs.image_tag }}'."
SLACK_MESSAGE_ON_FAILURE: "🚨 Docker run failed with Docker tag '${{ steps.set-defaults.outputs.image_tag }}'. Check logs in Github for details."
SLACK_MESSAGE: "✅ Docker run completed successfully with Docker tag '${{ steps.set-defaults.outputs.image_tag }}'."
SLACK_COLOR: ${{ job.status }}

- name: Notify Slack on Failure
if: failure() # Runs only if the previous steps fail
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_FAIL }}
SLACK_TITLE: "tx-tool"
SLACK_MESSAGE: "🚨 Docker run failed with Docker tag '${{ steps.set-defaults.outputs.image_tag }}'. Check logs in Github for details."
SLACK_COLOR: ${{ job.status }}

0 comments on commit 6e2338b

Please sign in to comment.