diff --git a/.github/workflows/deploy_prod_api.yml b/.github/workflows/deploy_prod_api.yml new file mode 100644 index 00000000..2c80ba21 --- /dev/null +++ b/.github/workflows/deploy_prod_api.yml @@ -0,0 +1,46 @@ +name: Deploy API - Prod + +on: + push: + branches: [ github-actions-prod ] +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Get Github action IP + id: ip + uses: haythem/public-ip@v1.2 + - name: Setting environment variables.. + run: | + echo "AWS_DEFAULT_REGION=eu-west-2" >> $GITHUB_ENV + echo "AWS_SG_NAME=${{ secrets.AWS_SECURITY_GROUP_ID_PROD }}" >> $GITHUB_ENV + + - name: Add Github Actions IP to Security group + run: | + aws ec2 authorize-security-group-ingress --group-id ${{ env.AWS_SG_NAME }} --protocol tcp --port 22 --cidr ${{ steps.ip.outputs.ipv4 }}/32 + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ env.AWS_DEFAULT_REGION }} + + - name: Steps + uses: appleboy/ssh-action@master + continue-on-error: false + with: + host: ${{ secrets.PRODSERVER_API }} + username: ${{ secrets.USERNAME_PROD }} + key: ${{ secrets.SECRETKEY_PROD }} + command_timeout: 10m + script: | + cd xfluencer/influencer-marketplace + pwd + git status + + - name: Remove Github Actions IP from security group + if: always() + run: | + aws ec2 revoke-security-group-ingress --group-id ${{ env.AWS_SG_NAME }} --protocol tcp --port 22 --cidr ${{ steps.ip.outputs.ipv4 }}/32 + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ env.AWS_DEFAULT_REGION }}