# 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: CI

on:
  pull_request:

jobs:
  build:
    name: Build and Test
    runs-on: ubuntu-latest
    timeout-minutes: 60
    steps:
      - name: Set up Go 1.18
        uses: actions/setup-go@v2
        with:
          go-version: 1.18
      - name: Check out code into the Go module directory
        uses: actions/checkout@v2
        with:
          submodules: true
      - name: Check License
        uses: apache/skywalking-eyes@9bd5feb86b5817aa6072b008f9866a2c3bbc8587
      - name: Get dependencies
        run: make deps
      - name: Test
        run: make container-test
      - name: BTF Generate
        run: make container-btfgen
      - name: Lint
        run: make container-lint
      - name: Make binary
        run: make linux
      - name: Check CI Consistency
        run: make check

  docker:
    name: Docker images
    runs-on: ubuntu-latest
    timeout-minutes: 60
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
      - name: Build and save docker images
        run: |
          make docker
          docker save -o docker-images-skywalking-rover.tar apache/skywalking-rover:latest
      - name: Upload docker images
        uses: actions/upload-artifact@v2
        with:
          name: docker-images-skywalking-rover
          path: docker-images-skywalking-rover.tar

  e2e-test:
    name: E2E test
    needs: [ docker ]
    runs-on: ubuntu-22.04
    timeout-minutes: 60
    strategy:
      fail-fast: false
      matrix:
        test:
          - name: Golang On CPU Profiling
            config: test/e2e/cases/profiling/task/oncpu/golang/e2e.yaml
          - name: C++ On CPU Profiling
            config: test/e2e/cases/profiling/task/oncpu/c++/e2e.yaml
          - name: C On CPU Profiling
            config: test/e2e/cases/profiling/task/oncpu/c/e2e.yaml
          - name: Rust On CPU Profiling
            config: test/e2e/cases/profiling/task/oncpu/rust/e2e.yaml

          - name: Golang Off CPU Profiling
            config: test/e2e/cases/profiling/task/offcpu/golang/e2e.yaml
          - name: C++ Off CPU Profiling
            config: test/e2e/cases/profiling/task/offcpu/c++/e2e.yaml
          - name: C Off CPU Profiling
            config: test/e2e/cases/profiling/task/offcpu/c/e2e.yaml
          - name: Rust Off CPU Profiling
            config: test/e2e/cases/profiling/task/offcpu/rust/e2e.yaml

          - name: go2sky Agent Sensor
            config: test/e2e/cases/process/agent_sensor/golang/e2e.yaml

          - name: Istio Process Finder 1.8.2
            config: test/e2e/cases/process/istio/e2e.yaml
            env: ISTIO_VERSION=1.8.2
          - name: Istio Process Finder 1.9.1
            config: test/e2e/cases/process/istio/e2e.yaml
            env: ISTIO_VERSION=1.9.1
          - name: Istio Process Finder 1.10.3
            config: test/e2e/cases/process/istio/e2e.yaml
            env: ISTIO_VERSION=1.10.3
          - name: Istio Process Finder 1.11.4
            config: test/e2e/cases/process/istio/e2e.yaml
            env: ISTIO_VERSION=1.11.4
          - name: Istio Process Finder 1.12.0
            config: test/e2e/cases/process/istio/e2e.yaml
            env: ISTIO_VERSION=1.12.0
          - name: Istio Process Finder 1.13.1
            config: test/e2e/cases/process/istio/e2e.yaml
            env: ISTIO_VERSION=1.13.1
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true
      - uses: actions/download-artifact@v2
        name: Download docker images
        with:
          name: docker-images-skywalking-rover
          path: docker-images
      - name: Load docker images
        run: find docker-images -name "*.tar" -exec docker load -i {} \;
      - name: Set env var
        run: echo "${{ matrix.test.env }}"  >> $GITHUB_ENV
      - name: ${{ matrix.test.name }}
        uses: apache/skywalking-infra-e2e@c3eb3241f649289465eda12af8214ca60aaaaa5f
        with:
          e2e-file: $GITHUB_WORKSPACE/${{ matrix.test.config }}
      - uses: actions/upload-artifact@v2
        if: ${{ failure() }}
        name: Upload Logs
        with:
          name: logs
          path: "${{ env.SW_INFRA_E2E_LOG_DIR }}"


  network-profiling-https-e2e-test:
    name: Network Profiling HTTPS E2E test
    needs: [ docker ]
    runs-on: ubuntu-22.04
    timeout-minutes: 60
    strategy:
      fail-fast: false
      matrix:
        test:
          - name: Golang Profiling
            config: test/e2e/cases/profiling/task/network/golang/e2e.yaml
          - name: Python Profiling
            config: test/e2e/cases/profiling/task/network/golang/e2e.yaml
          - name: Envoy Profiling
            config: test/e2e/cases/profiling/task/network/envoy/e2e.yaml
            env: ISTIO_VERSION=1.13.1
          - name: C++ Profiling
            config: test/e2e/cases/profiling/task/network/c_plus_plus/e2e.yaml
          - name: Nodejs Profiling
            config: test/e2e/cases/profiling/task/network/nodejs/e2e.yaml
          - name: HTTP2 Profiling
            config: test/e2e/cases/profiling/task/network/http2/e2e.yaml
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true
      - uses: actions/download-artifact@v2
        name: Download docker images
        with:
          name: docker-images-skywalking-rover
          path: docker-images
      - name: Load docker images
        run: find docker-images -name "*.tar" -exec docker load -i {} \;
      - name: Set env var
        run: echo "${{ matrix.test.env }}"  >> $GITHUB_ENV
      - name: Setup SSL Certs
        run: |
          bash test/e2e/base/scripts/gen-selfsigned-ssl.sh service $(pwd)/test/e2e/cases/profiling/task/network/base/ssl/
          bash test/e2e/base/scripts/gen-selfsigned-ssl.sh proxy $(pwd)/test/e2e/cases/profiling/task/network/base/ssl/
      - name: ${{ matrix.test.name }}
        uses: apache/skywalking-infra-e2e@c3eb3241f649289465eda12af8214ca60aaaaa5f
        with:
          e2e-file: $GITHUB_WORKSPACE/${{ matrix.test.config }}
      - uses: actions/upload-artifact@v2
        if: ${{ failure() }}
        name: Upload Logs
        with:
          name: logs
          path: "${{ env.SW_INFRA_E2E_LOG_DIR }}"

  continuous-profiling-e2e-tests:
    name: Continuous Profiling E2E tests
    needs: [ docker ]
    runs-on: ubuntu-22.04
    timeout-minutes: 60
    strategy:
      fail-fast: false
      matrix:
        test:
          - name: HTTP Avg Response Time
            config: test/e2e/cases/profiling/continuous/http_avg_response_time/e2e.yaml
          - name: HTTP Error Rate
            config: test/e2e/cases/profiling/continuous/http_error_rate/e2e.yaml
          - name: Process CPU
            config: test/e2e/cases/profiling/continuous/process_cpu/e2e.yaml
          - name: Process Thread Count
            config: test/e2e/cases/profiling/continuous/process_thread_count/e2e.yaml
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true
      - uses: actions/download-artifact@v2
        name: Download docker images
        with:
          name: docker-images-skywalking-rover
          path: docker-images
      - name: Load docker images
        run: find docker-images -name "*.tar" -exec docker load -i {} \;
      - name: Set env var
        run: echo "${{ matrix.test.env }}"  >> $GITHUB_ENV
      - name: Setup SSL Certs
        run: |
          mkdir -p $(pwd)/test/e2e/cases/profiling/continuous/ssl/
          bash test/e2e/base/scripts/gen-selfsigned-ssl.sh service $(pwd)/test/e2e/cases/profiling/continuous/ssl/
      - name: ${{ matrix.test.name }}
        uses: apache/skywalking-infra-e2e@c3eb3241f649289465eda12af8214ca60aaaaa5f
        with:
          e2e-file: $GITHUB_WORKSPACE/${{ matrix.test.config }}
      - uses: actions/upload-artifact@v2
        if: ${{ failure() }}
        name: Upload Logs
        with:
          name: logs
          path: "${{ env.SW_INFRA_E2E_LOG_DIR }}"

  required:
    if: always()
    name: Required
    needs:
      - build
      - e2e-test
      - network-profiling-https-e2e-test
      - continuous-profiling-e2e-tests
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - name: Merge Requirement
        run: |
          if [[ ${{ needs.build.result }} != 'success' ]]; then
            exit -1
          fi
          if [[ ${{ needs.e2e-test.result }} != 'success' ]]; then
            exit -1
          fi
          if [[ ${{ needs.network-profiling-https-e2e-test.result }} != 'success' ]]; then
            exit -1
          fi
          if [[ ${{ needs.continuous-profiling-e2e-tests.result }} != 'success' ]]; then
            exit -1
          fi
