39 lines
1.8 KiB
Python
39 lines
1.8 KiB
Python
import os
|
|
|
|
path = '/Users/shenlan/workspaces/cloud-neutral-toolkit/xworkmate-bridge/.github/workflows/pipeline.yml'
|
|
with open(path, 'r') as f:
|
|
content = f.read()
|
|
|
|
# Update the "Run Ansible deploy playbook" step to run directly instead of through deploy.sh
|
|
target_step = ''' - name: Run Ansible deploy playbook
|
|
working-directory: xworkmate-bridge
|
|
env:
|
|
INTERNAL_SERVICE_TOKEN: ${{ env.INTERNAL_SERVICE_TOKEN }}
|
|
GHCR_USERNAME: ${{ env.GHCR_USERNAME }}
|
|
GHCR_PASSWORD: ${{ env.GHCR_PASSWORD }}
|
|
XWORKMATE_BRIDGE_IMAGE_ARTIFACT_PATH: ${{ github.workspace }}/xworkmate-bridge/dist/image-artifact/service-image-ref.txt
|
|
run: bash ./scripts/github-actions/deploy.sh "${{ steps.deploy_meta.outputs.target_host }}" "${{ steps.deploy_meta.outputs.run_apply }}" ../playbooks'''
|
|
|
|
replacement_step = ''' - name: Run Ansible deploy playbook
|
|
working-directory: playbooks
|
|
env:
|
|
ANSIBLE_CONFIG: ./ansible.cfg
|
|
BRIDGE_AUTH_TOKEN: ${{ env.INTERNAL_SERVICE_TOKEN }}
|
|
run: |
|
|
SERVICE_COMPOSE_IMAGE="$(cat ../xworkmate-bridge/dist/image-artifact/service-image-ref.txt | xargs)"
|
|
CHECK_MODE_FLAG=""
|
|
if [[ "${{ steps.deploy_meta.outputs.run_apply }}" != "true" ]]; then
|
|
CHECK_MODE_FLAG="-C"
|
|
fi
|
|
ansible-playbook -i inventory.ini deploy_xworkmate_bridge_vhosts.yml \\
|
|
-D ${CHECK_MODE_FLAG} \\
|
|
-l "${{ steps.deploy_meta.outputs.target_host }}" \\
|
|
-e "service_compose_image=${SERVICE_COMPOSE_IMAGE}" \\
|
|
-e "ghcr_username=${{ env.GHCR_USERNAME }}" \\
|
|
-e "ghcr_password=${{ env.GHCR_PASSWORD }}"'''
|
|
|
|
content = content.replace(target_step, replacement_step)
|
|
|
|
with open(path, 'w') as f:
|
|
f.write(content)
|