mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-11-04 19:32:17 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			134 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
 | 
						|
# Copyright © 2023 OpenIM open source community. 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 CI Auto Build
 | 
						|
 | 
						|
on: 
 | 
						|
  push:
 | 
						|
    branches:
 | 
						|
        - main
 | 
						|
        - release-*
 | 
						|
    paths-ignore:
 | 
						|
        - "docs/**"
 | 
						|
        - "README.md"
 | 
						|
        - "README_zh-CN.md"
 | 
						|
        - "**.md"
 | 
						|
        - "docs/**"
 | 
						|
        - "CONTRIBUTING.md"
 | 
						|
  pull_request:
 | 
						|
    branches:
 | 
						|
        - main
 | 
						|
        - release-*
 | 
						|
    paths-ignore:
 | 
						|
        - "README.md"
 | 
						|
        - "README_zh-CN.md"
 | 
						|
        - "CONTRIBUTING/**"
 | 
						|
        - "**.md"
 | 
						|
        - "docs/**"
 | 
						|
  workflow_dispatch:
 | 
						|
 | 
						|
jobs:
 | 
						|
 | 
						|
  build-linux:
 | 
						|
    name: Execute OpenIM Script On Linux
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    permissions:
 | 
						|
      contents: write
 | 
						|
      pull-requests: write
 | 
						|
    environment:
 | 
						|
      name: openim
 | 
						|
    strategy:
 | 
						|
      matrix:
 | 
						|
        arch: [arm64, armv7, amd64]
 | 
						|
    
 | 
						|
    steps:
 | 
						|
    - uses: actions/checkout@v3
 | 
						|
 | 
						|
    - name: Set up Go
 | 
						|
      uses: actions/setup-go@v4
 | 
						|
      with:
 | 
						|
        go-version: '1.21'
 | 
						|
 | 
						|
    - name: Set up Docker for Linux
 | 
						|
      run: |
 | 
						|
        sudo docker compose up -d
 | 
						|
        sudo sleep 30  # Increased sleep time for better stability
 | 
						|
      timeout-minutes: 20  # Increased timeout for Docker setup
 | 
						|
 | 
						|
 | 
						|
    - name: init
 | 
						|
      run: sudo bash bootstrap.sh
 | 
						|
      timeout-minutes: 20
 | 
						|
 | 
						|
    - name: Get Internal IP Address
 | 
						|
      id: get-ip
 | 
						|
      run: |
 | 
						|
        IP=$(hostname -I | awk '{print $1}')
 | 
						|
        echo "The IP Address is: $IP"
 | 
						|
        echo "::set-output name=ip::$IP"
 | 
						|
      
 | 
						|
    - name: Update .env
 | 
						|
      run: |
 | 
						|
        sed -i 's|externalAddress=.*|externalAddress=http://${{ steps.get-ip.outputs.ip }}:10005|' config/minio.yml
 | 
						|
 | 
						|
    - name: Build, Start, Check Services and Print Logs for Linux
 | 
						|
      run: |
 | 
						|
        sudo mage
 | 
						|
        sudo mage start
 | 
						|
        sudo mage check
 | 
						|
        
 | 
						|
 | 
						|
    - name: Restart Services and Print Logs
 | 
						|
      run: |
 | 
						|
        sudo mage stop
 | 
						|
        sudo mage start
 | 
						|
        sudo mage check
 | 
						|
 | 
						|
    - name: Checkout chat repository
 | 
						|
      uses: actions/checkout@v4
 | 
						|
      with:
 | 
						|
        repository: 'openimsdk/chat'
 | 
						|
        path: 'chat-repo'
 | 
						|
 | 
						|
    - name: Build and Start Chat Services
 | 
						|
      run: |
 | 
						|
        cd ${{ github.workspace }}/chat-repo
 | 
						|
        sudo mage
 | 
						|
        sudo mage start
 | 
						|
        sudo mage check
 | 
						|
    
 | 
						|
    - name: Checkout e2e repository
 | 
						|
      uses: actions/checkout@v4
 | 
						|
      with:
 | 
						|
          repository: "openimsdk/test-e2e"
 | 
						|
          path: e2e-repo
 | 
						|
 | 
						|
    - name: Set up Python 3.9
 | 
						|
      uses: actions/setup-python@v4
 | 
						|
      with:
 | 
						|
        python-version: '3.9'
 | 
						|
    
 | 
						|
    - name: Install dependencies
 | 
						|
      run: |
 | 
						|
        sudo apt-get update
 | 
						|
        sudo apt-get install -y xvfb libxi6 libgconf-2-4
 | 
						|
        cd ${{ github.workspace }}/e2e-repo
 | 
						|
        pip install -r requirements.txt
 | 
						|
    
 | 
						|
    - name: Run tests
 | 
						|
      run: |
 | 
						|
        cd ${{ github.workspace }}/e2e-repo
 | 
						|
        xvfb-run --auto-servernum --server-args='-screen 0 1920x1080x24' pytest -v -s ./script
 | 
						|
    
 | 
						|
     |