Skip to content

AWS - Get Application URL #12

AWS - Get Application URL

AWS - Get Application URL #12

name: AWS - Get Application URL
on:
workflow_run:
workflows: ["Apply new version of the Application"]
types:
- completed
jobs:
aws:
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_SESSION_TOKEN: ${{ secrets.AWS_SESSION_TOKEN }}
steps:
- name: Check if AWS CLI is installed
id: check_aws_cli
run: |
if ! command -v aws &> /dev/null; then
echo "AWS CLI not found, installing..."
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --update
else
echo "AWS CLI is already installed"
fi
- name: Configure AWS CLI
run: |
aws configure set aws_access_key_id ${{ secrets.AWS_ACCESS_KEY_ID }}
aws configure set aws_secret_access_key ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws configure set aws_session_token ${{ secrets.AWS_SESSION_TOKEN }}
aws configure set region us-east-1
- name: Get All Load Balancer DNS Name
id: get_lb_dns
run: |
lb_dns=$(aws elbv2 describe-load-balancers --query "LoadBalancers[].DNSName" --output text)
echo "lb_dns=${lb_dns}" >> $GITHUB_OUTPUT
# DEPRECATED echo "::set-output name=lb_dns::$lb_dns"
# Alternative to take all Load Balancer ARNs and Ports
# - name: Get All Load Balancer ARNs
# id: get_lb_arns
# run: |
# lb_arns=$(aws elbv2 describe-load-balancers --query "LoadBalancers[].LoadBalancerArn" --output text)
# echo "lb_arns=${lb_arns}" >> $GITHUB_OUTPUT
# - name: Get Load Balancer Ports
# id: get_lb_ports
# run: |
# lb_ports=""
# for arn in ${{ steps.get_lb_arns.outputs.lb_arns }}; do
# ports=$(aws elbv2 describe-listeners --load-balancer-arn $arn --query "Listeners[].Port" --output text)
# lb_ports="$lb_ports $ports"
# done
# echo "lb_ports=${lb_ports}" >> $GITHUB_OUTPUT
# Doesn't work
# - name: Get All Load Balancer Ports
# id: get_lb_ports
# run: |
# lb_ports=$(aws elbv2 describe-load-balancers --query "LoadBalancers[].AvailabilityZones[].LoadBalancerAddresses[].AllocationId" --output text)
# echo "lb_ports=${lb_ports}" >> $GITHUB_OUTPUT
- name: Get full application information
run: |
echo "Application full url: ${{ steps.get_lb_dns.outputs.lb_dns}}:3000/?v=${{ github.sha }}"
echo "Check the version match at: ${{ steps.get_lb_dns.outputs.lb_dns}}:3000/version?v=${{ github.sha }}"