123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- name: Build code and create AMI
- on:
- push:
- branches:
- - master
- - olympia
- - create-joystream-node-ami
- jobs:
- build:
- name: Build the code and run setup
- runs-on: ubuntu-latest
- env:
- STACK_NAME: joystream-github-action-${{ github.run_number }}
- KEY_NAME: joystream-github-action-key
- steps:
- - name: Extract branch name
- shell: bash
- run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
- id: extract_branch
- - name: Set AMI Name environment variable
- shell: bash
- run: echo "ami_name=joystream-${{ steps.extract_branch.outputs.branch }}-${{ github.run_number }}" >> $GITHUB_ENV
- id: ami_name
- - name: Checkout
- uses: actions/checkout@v2
- - 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: us-east-1
- - name: Deploy to AWS CloudFormation
- uses: aws-actions/aws-cloudformation-github-deploy@v1
- id: deploy_stack
- with:
- name: ${{ env.STACK_NAME }}
- template: devops/infrastructure/single-instance.yml
- no-fail-on-empty-changeset: "1"
- parameter-overrides: "KeyName=${{ env.KEY_NAME }}"
- - name: Install Ansible dependencies
- run: pipx inject ansible-core boto3 botocore
- - name: Run playbook
- uses: dawidd6/action-ansible-playbook@v2
- with:
- playbook: github-action-playbook.yml
- directory: devops/infrastructure
- requirements: requirements.yml
- key: ${{ secrets.SSH_PRIVATE_KEY }}
- inventory: |
- [all]
- ${{ steps.deploy_stack.outputs.PublicIp }}
- options: |
- --extra-vars "git_repo=https://github.com/${{ github.repository }} \
- branch_name=${{ steps.extract_branch.outputs.branch }} instance_id=${{ steps.deploy_stack.outputs.InstanceId }}
- stack_name=${{ env.STACK_NAME }} ami_name=${{ env.ami_name }}"
|