diff --git a/action.yml b/action.yml index 71c57dc..3c910b8 100644 --- a/action.yml +++ b/action.yml @@ -63,33 +63,46 @@ runs: aws-secret-access-key: ${{ inputs.aws-secret-access-key }} aws-region: eu-north-1 - shell: bash + env: + AWS_SG: ${{ inputs.aws-security-group-id }} + RUNNER_IP: ${{ steps.ip.outputs.ipv4 }} run: | aws ec2 authorize-security-group-ingress \ - --group-id ${{ inputs.aws-security-group-id }} \ + --group-id ${AWS_SG} \ --protocol tcp \ --port 22 \ - --cidr ${{ steps.ip.outputs.ipv4 }}/32 + --cidr ${RUNNER_IP}/32 - shell: bash + env: + SSH_KEY: ${{ inputs.server-ssh-key }} + APP_FILE: ${{ inputs.application-file }} + SERVER_HOST: ${{ inputs.server-host }} + APP_NAME: ${{ inputs.application-name }} + APP_ENV: ${{ inputs.application-env }} + APP_VHOST: ${{ inputs.application-vhost }} run: | - echo "${{ inputs.server-ssh-key }}" > private_key && chmod 600 private_key - scp -o StrictHostKeyChecking=no -i private_key ${{ inputs.application-file }} actions@${{ inputs.server-host }}:work/${{ inputs.application-name }}.zip || exit 1 - DEPLOY_ARGS="-n ${{ inputs.application-name }} -a work/${{ inputs.application-name }}.zip" - if [ -n "${{ inputs.application-env }}" ]; then - scp -o StrictHostKeyChecking=no -i private_key ${{ inputs.application-env }} actions@${{ inputs.server-host }}:work/${{ inputs.application-name }}.env || exit 1 - DEPLOY_ARGS="$DEPLOY_ARGS -e work/${{ inputs.application-name }}.env" + echo "${SSH_KEY}" > private_key && chmod 600 private_key + scp -o StrictHostKeyChecking=no -i private_key ${APP_FILE} actions@${SERVER_HOST}:work/${APP_NAME}.zip || exit 1 + DEPLOY_ARGS="-n ${APP_NAME} -a work/${APP_NAME}.zip" + if [ -n "${APP_ENV}" ]; then + scp -o StrictHostKeyChecking=no -i private_key ${APP_ENV} actions@${SERVER_HOST}:work/${APP_NAME}.env || exit 1 + DEPLOY_ARGS="$DEPLOY_ARGS -e work/${APP_NAME}.env" fi - if [ -n "${{ inputs.application-vhost }}" ]; then - scp -o StrictHostKeyChecking=no -i private_key ${{ inputs.application-vhost }} actions@${{ inputs.server-host }}:work/${{ inputs.application-name }}-vhost.conf || exit 1 - DEPLOY_ARGS="$DEPLOY_ARGS -v work/${{ inputs.application-name }}-vhost.conf" + if [ -n "${APP_VHOST}" ]; then + scp -o StrictHostKeyChecking=no -i private_key ${APP_VHOST} actions@${SERVER_HOST}:work/${APP_NAME}-vhost.conf || exit 1 + DEPLOY_ARGS="$DEPLOY_ARGS -v work/${APP_NAME}-vhost.conf" fi - ssh -o StrictHostKeyChecking=no -i private_key actions@${{ inputs.server-host }} "~/deploy-craft-2025 $DEPLOY_ARGS" || exit 1 + ssh -o StrictHostKeyChecking=no -i private_key actions@${SERVER_HOST} "~/deploy-craft-2025 $DEPLOY_ARGS" || exit 1 - name: Revoke runner IP address if: always() && steps.ip.outputs.ipv4 != '' shell: bash + env: + AWS_SG: ${{ inputs.aws-security-group-id }} + RUNNER_IP: ${{ steps.ip.outputs.ipv4 }} run: | aws ec2 revoke-security-group-ingress \ - --group-id ${{ inputs.aws-security-group-id }} \ + --group-id ${AWS_SG} \ --protocol tcp \ --port 22 \ - --cidr ${{ steps.ip.outputs.ipv4 }}/32 + --cidr ${RUNNER_IP}/32