# 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 # cat 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