Xqt has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1295539?usp=email )
Change subject: GH tests: refactor workflows to use WMCS SOCKS tunnel composite
action
......................................................................
GH tests: refactor workflows to use WMCS SOCKS tunnel composite action
Start with doctest.yml
Change-Id: I9a981ab3f18224345643a5c0981d6c5cfa507735
---
A .github/actions/wmcs-socks/action.yml
M .github/workflows/doctest.yml
2 files changed, 61 insertions(+), 25 deletions(-)
Approvals:
jenkins-bot: Verified
Xqt: Looks good to me, approved
diff --git a/.github/actions/wmcs-socks/action.yml
b/.github/actions/wmcs-socks/action.yml
new file mode 100644
index 0000000..f78cd38
--- /dev/null
+++ b/.github/actions/wmcs-socks/action.yml
@@ -0,0 +1,57 @@
+---
+name: WMCS SOCKS Tunnel
+description: Configure and start WMCS SOCKS proxy tunnel
+
+inputs:
+ ssh_user:
+ description: SSH user for bastion
+ required: true
+ ssh_key:
+ description: Private SSH key
+ required: true
+
+runs:
+ using: composite
+ steps:
+ - name: Setup SSH directory
+ shell: bash
+ run: |
+ set -euo pipefail
+ mkdir -p ~/.ssh
+ - name: Install SSH key
+ shell: bash
+ run: |
+ set -euo pipefail
+ printf "%s" "${{ inputs.ssh_key }}" > ~/.ssh/id_ed25519
+ chmod 600 ~/.ssh/id_ed25519
+ - name: Add known hosts
+ shell: bash
+ run: |
+ set -euo pipefail
+ ssh-keyscan bastion.wmcloud.org >> ~/.ssh/known_hosts
+ - name: Start SOCKS tunnel
+ shell: bash
+ run: |
+ set -euo pipefail
+ ssh \
+ -o StrictHostKeyChecking=accept-new \
+ -o ExitOnForwardFailure=yes \
+ -o ServerAliveInterval=30 \
+ -o ServerAliveCountMax=3 \
+ -o ConnectTimeout=10 \
+ -N \
+ -D 127.0.0.1:1080 \
+ -i ~/.ssh/id_ed25519 \
+ "${{ inputs.ssh_user }}@bastion.wmcloud.org" &
+ echo $! > ssh.pid
+ echo "SSH tunnel started with PID $(cat ssh.pid)"
+ - name: Show proxy connection
+ shell: bash
+ run: |-
+ set -euo pipefail
+ echo "Local IP:"
+ curl -s https://api.ipify.org
+ echo
+ echo "Proxy IP:"
+ curl --proxy socks5h://127.0.0.1:1080 -s https://api.ipify.org
+ echo
diff --git a/.github/workflows/doctest.yml b/.github/workflows/doctest.yml
index d166173..0b53b10 100644
--- a/.github/workflows/doctest.yml
+++ b/.github/workflows/doctest.yml
@@ -58,31 +58,10 @@
pip install wikitextparser
pip install requests[socks]
- name: Configure and start WMCS SOCKS tunnel
- shell: bash
- env:
- USER: ${{ secrets.WMCS_USER }}
- run: |
- mkdir -p ~/.ssh
- printf "%s" "${{ secrets.WMCS_SSH_KEY }}" > ~/.ssh/id_ed25519
- chmod 600 ~/.ssh/id_ed25519
- ssh-keygen -lf ~/.ssh/id_ed25519
- ssh-keyscan bastion.wmcloud.org >> ~/.ssh/known_hosts
- ssh \
- -o StrictHostKeyChecking=accept-new \
- -o ExitOnForwardFailure=yes \
- -o ServerAliveInterval=30 \
- -o ServerAliveCountMax=3 \
- -o ConnectTimeout=10 \
- -f -N \
- -D 127.0.0.1:1080 \
- -i ~/.ssh/id_ed25519 \
- "[email protected]"
- echo "Socket connection:"
- echo "Local IP:"
- curl -s https://api.ipify.org
- echo
- echo "Proxy IP:"
- curl --proxy socks5h://127.0.0.1:1080 -s https://api.ipify.org
+ uses: ./.github/actions/wmcs-socks
+ with:
+ ssh_user: ${{ secrets.WMCS_USER }}
+ ssh_key: ${{ secrets.WMCS_SSH_KEY }}
- name: Generate user files
run: |
python -Werror::UserWarning -m pwb generate_user_files
-site:wikipedia:test -user:${{ env.PYWIKIBOT_USERNAME }} -v -debug;
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1295539?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I9a981ab3f18224345643a5c0981d6c5cfa507735
Gerrit-Change-Number: 1295539
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]