-
Notifications
You must be signed in to change notification settings - Fork 31
/
action.yaml
93 lines (91 loc) · 3.54 KB
/
action.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: SkyWalking Infra E2E
description: End-to-End Tesing framework that help to set up, verify E2E tests.
author: Apache SkyWalking
inputs:
e2e-file:
description: File path of e2e file
required: true
log-dir:
description: The container logs directory
required: false
batch-mode:
description: Whether to run in batch mode, all interactive operations are disabled
required: false
default: "true"
runs:
using: "composite"
steps:
- name: Install docker-compose
shell: bash
if: runner.os != 'Windows'
run: |
if ! command docker-compose 2>&1 > /dev/null; then
echo "Installing docker-compose"
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
fi
- name: Set up Go 1.18
uses: actions/setup-go@v4
with:
go-version: 1.18
cache-dependency-path: ${{ github.action_path }}/go.sum
- shell: bash
run: make -C $GITHUB_ACTION_PATH install DESTDIR=/usr/local/bin
- name: E2E Dir Generator
id: "e2e-dir-generator"
shell: bash
run: |
WORK_DIR="${{ runner.temp }}/skywalking-infra-e2e"
echo "work=$WORK_DIR" >> $GITHUB_OUTPUT
LOG_DIR=""
LOG_JOB_DIR=""
if [[ "${{ inputs.log-dir }}" == "" ]]
then
matrix='${{ toJSON(matrix) }}'
if [[ "$matrix" == "null" ]]
then
LOG_DIR="$WORK_DIR/logs"
LOG_JOB_DIR="$LOG_DIR/${{ github.job }}"
else
combine_matrix=$(echo $matrix|jq -r 'to_entries|map(.value)|tostring')
# remove json syntax
combine_matrix=`echo $combine_matrix|sed -e 's/\[\|\]\|\"//g'`
combine_matrix=`echo $combine_matrix|sed -e 's/[\{|\}]//g'`
# replace to path
combine_matrix=`echo $combine_matrix|sed -e 's/[^A-Za-z0-9_-]/_/g'`
LOG_DIR="$WORK_DIR/logs"
LOG_JOB_DIR="$LOG_DIR/${{ github.job }}_$combine_matrix"
fi
elif [[ "${{ inputs.log-dir }}" == /* ]]
then
LOG_DIR="${{ inputs.log-dir }}"
LOG_JOB_DIR="${{ inputs.log-dir }}"
else
LOG_DIR="$WORK_DIR/${{ inputs.log-dir }}"
LOG_JOB_DIR="$WORK_DIR/${{ inputs.log-dir }}"
fi
echo "log=$LOG_DIR" >> $GITHUB_OUTPUT
echo "log-case=$LOG_JOB_DIR" >> $GITHUB_OUTPUT
echo "SW_INFRA_E2E_LOG_DIR=$LOG_DIR" >> $GITHUB_ENV
- shell: bash
run: |
e2e run \
-c "${{ inputs.e2e-file }}" \
--batch-mode "${{ inputs.batch-mode }}" \
-w "${{ steps.e2e-dir-generator.outputs.work }}" \
-l "${{ steps.e2e-dir-generator.outputs.log-case }}"