@@ -3,25 +3,11 @@ name: e2e Test
3
3
on :
4
4
push :
5
5
branches : [ 'feature/multi-src' ]
6
- workflow_dispatch :
7
- inputs :
8
- ARGS :
9
- description : ' ARGS'
10
- required : true
11
- default : ' -rltgoDzvO --delete --chmod=ugo=rwX --progress'
12
- EXCLUDE :
13
- description : ' EXCLUDE'
14
- required : true
15
- default : ' skip_dir/, /node_modules/'
16
- SSH_CMD_ARGS :
17
- description : ' SSH_CMD_ARGS'
18
- required : true
19
- default : ' -o StrictHostKeyChecking=no, -o UserKnownHostsFile=/dev/null'
20
-
21
6
22
7
env :
23
8
TEST_HOST_DOCKER : ./test
24
9
TEST_USER : test
10
+ TEST_USER2 : test2
25
11
26
12
jobs :
27
13
e2e :
@@ -31,11 +17,15 @@ jobs:
31
17
- name : Checkout
32
18
uses : actions/checkout@v3
33
19
34
- - name : Clean up old test files
20
+ # #################################################################
21
+ # START [E2E Test Specific] steps
22
+ # #################################################################
23
+
24
+ - name : [E2E Test Specific] Clean up old test files
35
25
run : |
36
26
docker stop ssh-host-container || true && docker rm ssh-host-container || true
37
27
38
- - name : Create ssh keys
28
+ - name : [E2E Test Specific] Create ssh keys
39
29
run : |
40
30
echo $HOME
41
31
ls -la $HOME
@@ -47,21 +37,20 @@ jobs:
47
37
cat $HOME/.ssh/id_rsa >> $GITHUB_ENV
48
38
echo "EOF" >> $GITHUB_ENV
49
39
50
- - name : Build Host Server Image
40
+ - name : [E2E Test Specific] Build Host Server Image
51
41
working-directory : ${{ env.TEST_HOST_DOCKER }}
52
42
run : |
53
43
docker build \
54
44
-t ssh-host-image . \
55
- --build-arg SSH_PUB_KEY="$(cat $HOME/.ssh/id_rsa.pub)" \
56
- --build-arg ssh_user="${{ env.TEST_USER }}"
45
+ --build-arg SSH_PUB_KEY="$(cat $HOME/.ssh/id_rsa.pub)"
57
46
docker run -d -p 8822:22 --name=ssh-host-container ssh-host-image
58
47
docker exec ssh-host-container sh -c "hostname --ip-address" > ip.txt
59
48
echo "REMOTE_HOST<<EOF" >> $GITHUB_ENV
60
49
cat ip.txt >> $GITHUB_ENV
61
50
echo "EOF" >> $GITHUB_ENV
62
51
shell : bash
63
52
64
- - name : Create project file
53
+ - name : [E2E Test Specific] Create project file
65
54
run : |
66
55
mkdir test_project2 && cd "$_"
67
56
truncate -s 5MB info2.txt
@@ -76,24 +65,38 @@ jobs:
76
65
truncate -s 5MB text_in_skip_dir.txt
77
66
cd ../
78
67
cat index.html
79
- echo "test_project:" && ls -l
80
- echo "skip_dir:" && ls -l skip_dir
68
+ echo "test_project:" && ls -lR
69
+ echo "skip_dir:" && ls -lR skip_dir
70
+
71
+ # #################################################################
72
+ # END [E2E Test Specific] steps
73
+ # #################################################################
74
+
75
+ - name : set shared ENV variables for multi target deployment
76
+ run : |
77
+ echo "ARGS=-rltgoDzvOR --delete --chmod=ugo+rwX --progress" >> $GITHUB_ENV
78
+ echo "SSH_CMD_ARGS=-o StrictHostKeyChecking=no, -o UserKnownHostsFile=/dev/null" >> $GITHUB_ENV
79
+ echo "SOURCE=test_project/ test_project2/" >> $GITHUB_ENV
80
+ echo "EXCLUDE=skip_dir/, /node_modules/" >> $GITHUB_ENV
81
+ echo "SCRIPT_BEFORE<<EOF" >> $GITHUB_ENV
82
+ echo "whoami" >> $GITHUB_ENV
83
+ echo "ls -lR /var/www/html/" >> $GITHUB_ENV
84
+ echo "EOF" >> $GITHUB_ENV
85
+ echo "SCRIPT_AFTER<<EOF" >> $GITHUB_ENV
86
+ echo $RSYNC_STDOUT >> $GITHUB_ENV
87
+ echo "ls -lR /var/www/html/" >> $GITHUB_ENV
88
+ echo "EOF" >> $GITHUB_ENV
81
89
82
- - name : e2e Test published ssh-deploy action
90
+ - name : e2e Test ssh-deploy action - Target 1
83
91
uses : easingthemes/ssh-deploy@feature/multi-src
84
92
env :
85
- # ENV Vars created in previous steps:
86
- # SSH_PRIVATE_KEY: $EXAMPLE_SSH_PRIVATE_KEY
87
- # REMOTE_HOST: $EXAMPLE_REMOTE_HOST
93
+ # Shared ENV Vars created in previous steps
88
94
REMOTE_USER : ${{ env.TEST_USER }}
89
- ARGS : ${{ github.event.inputs.ARGS || '-rltgoDzvO --delete --chmod=ugo=rwX --progress' }}
90
- SSH_CMD_ARGS : ${{ github.event.inputs.SSH_CMD_ARGS || '-o StrictHostKeyChecking=no, -o UserKnownHostsFile=/dev/null' }}
91
- SOURCE : ["test_project/, test_project2/"]
92
- TARGET : " /var/www/html/"
93
- EXCLUDE : ${{ github.event.inputs.EXCLUDE || 'skip_dir/, /node_modules/' }}
94
- SCRIPT_BEFORE : |
95
- whoami
96
- ls -al /var/www/html/
97
- SCRIPT_AFTER : |
98
- ls -al /var/www/html/
99
- echo $RSYNC_STDOUT
95
+ TARGET : /var/www/html/${{ env.TEST_USER }}
96
+
97
+ - name : e2e Test ssh-deploy action - Target 2
98
+ uses : easingthemes/ssh-deploy@feature/multi-src
99
+ env :
100
+ # Shared ENV Vars created in previous steps
101
+ REMOTE_USER : ${{ env.TEST_USER2 }}
102
+ TARGET : /var/www/html/${{ env.TEST_USER2 }}
0 commit comments