AWS - Get Application URL #12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }}" |