# Copyright © 2023 OpenIM. All rights reserved.
#
# Licensed 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: OpenIM Start Execute Scripts

on: 
    push:
      branches:
          - main
      paths-ignore:
          - "docs/**"
          - "README.md"
          - "README_zh-CN.md"
          - "CONTRIBUTING.md"
    pull_request:
      branches:
          - main
      paths-ignore:
          - "README.md"
          - "README_zh-CN.md"
          - "CONTRIBUTING.md"
          - "docs/**"

jobs:
  execute-scripts:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Start Docker Compose
      run: |
        sudo docker compose stop
        sudo sleep 30
        sudo docker compose up -d
        sudo sleep 60
      continue-on-error: true

    - name: Stop all services
      run: |
        sudo chmod +x ./scripts/stop_all.sh
        sudo ./scripts/stop_all.sh
        sudo cat logs/openIM.log 2>/dev/null
      shell: bash
      continue-on-error: true

    - name: Build all services
      run: |
        sudo chmod +x ./scripts/build_all_service.sh
        sudo ./scripts/build_all_service.sh
        sudo cat logs/openIM.log 2>/dev/null
      shell: bash

    - name: Start all services
      run: |
        sudo chmod +x ./scripts/start_all.sh
        sudo ./scripts/start_all.sh
        sudo cat logs/openIM.log 2>/dev/null
      continue-on-error: true
      shell: bash

    - name: Check all services
      run: |
        sudo chmod +x ./scripts/check_all.sh
        sudo ./scripts/check_all.sh
        sudo cat logs/openIM.log 2>/dev/null
      shell: bash

    - name: Print openIM.log
      run: |
        sudo cat logs/* 2>/dev/null
        sudo cat logs/* 2>/dev/null >> "$GITHUB_OUTPUT"
      shell: bash
      continue-on-error: true
