You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
198 lines
5.4 KiB
198 lines
5.4 KiB
name: Go Build Test
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
paths-ignore:
|
|
- '**/*.md'
|
|
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
go-build:
|
|
name: Test with go ${{ matrix.go_version }} on ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest]
|
|
go_version: ["1.21.x", "1.22.x"]
|
|
|
|
steps:
|
|
- name: Checkout Server repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Go ${{ matrix.go_version }}
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: ${{ matrix.go_version }}
|
|
|
|
- name: Get Server dependencies
|
|
run: |
|
|
go install github.com/magefile/mage@latest
|
|
go mod tidy
|
|
go mod download
|
|
|
|
- name: Set up infra services
|
|
uses: hoverkraft-tech/compose-action@v2.0.1
|
|
# Uncomment and set the correct path to your docker-compose file
|
|
with:
|
|
compose-file: "./docker-compose.yml"
|
|
|
|
# run: |
|
|
# sudo docker compose up -d
|
|
# sudo sleep 30 # Increased sleep time for better stability
|
|
# timeout-minutes: 60 # Increased timeout for Docker setup
|
|
|
|
|
|
# - 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 and test Server Services
|
|
run: |
|
|
mage build
|
|
mage start
|
|
mage check
|
|
|
|
- name: Checkout Chat repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: "openimsdk/chat"
|
|
path: "chat-repo"
|
|
|
|
- name: Get Chat dependencies
|
|
run: |
|
|
cd ${{ github.workspace }}/chat-repo
|
|
go mod tidy
|
|
go mod download
|
|
go install github.com/magefile/mage@latest
|
|
|
|
- name: Build and test Chat Services
|
|
run: |
|
|
cd ${{ github.workspace }}/chat-repo
|
|
mage build
|
|
mage start
|
|
mage check
|
|
|
|
go-test:
|
|
name: Benchmark Test with go ${{ matrix.go_version }} on ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
permissions:
|
|
contents: write
|
|
env:
|
|
SDK_DIR: openim-sdk-core
|
|
CONFIG_PATH: config/notification.yml
|
|
# pull-requests: write
|
|
strategy:
|
|
matrix:
|
|
os: [ ubuntu-latest ]
|
|
go_version: [ "1.22.x" ]
|
|
|
|
steps:
|
|
- name: Checkout Server repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Checkout SDK repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: 'openimsdk/openim-sdk-core'
|
|
path: ${{ env.SDK_DIR }}
|
|
|
|
- name: Set up Go ${{ matrix.go_version }}
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: ${{ matrix.go_version }}
|
|
|
|
- name: Get Server dependencies
|
|
run: |
|
|
go install github.com/magefile/mage@latest
|
|
go mod download
|
|
|
|
- name: Install yq
|
|
run: |
|
|
sudo wget https://github.com/mikefarah/yq/releases/download/v4.34.1/yq_linux_amd64 -O /usr/bin/yq
|
|
sudo chmod +x /usr/bin/yq
|
|
|
|
- name: Modify Server Configuration
|
|
run: |
|
|
yq e '.groupCreated.unreadCount = true' -i ${{ env.CONFIG_PATH }}
|
|
yq e '.friendApplicationApproved.unreadCount = true' -i ${{ env.CONFIG_PATH }}
|
|
|
|
- name: Start Server Services
|
|
run: |
|
|
docker compose up -d
|
|
mage build
|
|
mage start
|
|
mage check
|
|
|
|
- name: Build test SDK core
|
|
run: |
|
|
cd ${{ env.SDK_DIR }}
|
|
go mod tidy
|
|
cd integration_test
|
|
mkdir data
|
|
go run main.go -lgr 0.8 -imf -crg -ckgn -ckcon -sem -ckmsn -u 20 -su 5 -lg 2 -cg 2 -cgm 3 -sm 10 -gm 10 -reg
|
|
|
|
dockerfile-test:
|
|
name: Build and Test Dockerfile
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
go_version: ["1.21"]
|
|
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Go ${{ matrix.go_version }}
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: ${{ matrix.go_version }}
|
|
|
|
- name: Get dependencies
|
|
run: |
|
|
go mod tidy
|
|
go mod download
|
|
go install github.com/magefile/mage@latest
|
|
|
|
- name: Build Docker Image
|
|
run: |
|
|
IMAGE_NAME="${{ github.event.repository.name }}-test"
|
|
CONTAINER_NAME="${{ github.event.repository.name }}-container"
|
|
docker build -t $IMAGE_NAME .
|
|
|
|
- name: Run Docker Container
|
|
run: |
|
|
IMAGE_NAME="${{ github.event.repository.name }}-test"
|
|
CONTAINER_NAME="${{ github.event.repository.name }}-container"
|
|
docker run --name $CONTAINER_NAME -d $IMAGE_NAME
|
|
docker ps -a
|
|
|
|
- name: Test Docker Container Logs
|
|
run: |
|
|
CONTAINER_NAME="${{ github.event.repository.name }}-container"
|
|
docker logs $CONTAINER_NAME
|
|
|
|
# - name: Cleanup Docker Container
|
|
# run: |
|
|
# CONTAINER_NAME="${{ github.event.repository.name }}-container"
|
|
# IMAGE_NAME="${{ github.event.repository.name }}-test"
|
|
# docker stop $CONTAINER_NAME
|
|
# docker rm $CONTAINER_NAME
|
|
# docker rmi $IMAGE_NAME
|