action.yaml (65 lines of code) (raw):

# # 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: 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 }}"