From 3c9bbdb0c9cd8af7251b678548a6fbc3915803ce Mon Sep 17 00:00:00 2001
From: appleboy <appleboy.tw@gmail.com>
Date: Mon, 2 Dec 2024 23:18:23 +0800
Subject: [PATCH] ci(action): add SSH server setup and authentication steps

- Add a new job `testing07` with steps to set environment variables and create an SSH server container
- Set a special character password in environment variables
- Run a Docker container for an OpenSSH server and capture its IP address
- Add steps to SSH into the server using username and password authentication

Signed-off-by: appleboy <appleboy.tw@gmail.com>
---
 .github/workflows/main.yml | 45 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 37f16c2..6b2df98 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -504,3 +504,48 @@ jobs:
           command_timeout: 30s
           script: |
             whoami
+
+  testing07:
+    name: some special character
+    runs-on: ubuntu-latest
+    steps:
+      - name: checkout
+        uses: actions/checkout@v4
+
+      - name: Set Environment Variables
+        run: |
+          PASS='3HUS$?8kLu)}'
+          printf "PASS=${PASS}" >> $GITHUB_ENV
+
+      - name: create new ssh server
+        run: |
+          docker run -d \
+          --name=openssh-server \
+          --hostname=openssh-server \
+          -p 2222:2222 \
+          -e SUDO_ACCESS=false \
+          -e PASSWORD_ACCESS=true  \
+          -e USER_PASSWORD='${{ env.PASS }}'  \
+          -e USER_NAME=linuxserver.io \
+          --restart unless-stopped \
+          lscr.io/linuxserver/openssh-server:latest
+          docker exec openssh-server sh -c "hostname -i" > ip.txt
+          echo "REMOTE_HOST<<EOF" >> $GITHUB_ENV
+          cat ip.txt >> $GITHUB_ENV
+          echo "EOF" >> $GITHUB_ENV
+          echo "======= container ip address ========="
+          cat ip.txt
+          echo "======================================"
+          sleep 2
+
+      - name: ssh by username and password
+        uses: ./
+        with:
+          host: ${{ env.REMOTE_HOST }}
+          username: linuxserver.io
+          password: ${{ env.PASS }}
+          port: 2222
+          script: |
+            #!/usr/bin/env bash
+            set -e
+            whoami