name: AI Service CI/CD on: push: branches: [production] paths: - '**' - '.gitea/workflows/ai.yml' pull_request: branches: [production] paths: - '**' - '.gitea/workflows/ai.yml' jobs: test: name: Lint & Test runs-on: self-hosted container: image: mirror2.chabokan.net/ubuntu:24.04 options: --add-host gitea:172.17.0.1 steps: - name: Setup Ubuntu apt mirrors run: | tee /etc/apt/sources.list > /dev/null <<'EOF' deb [trusted=yes] https://mirror-linux.runflare.com/ubuntu/ noble main restricted universe multiverse deb [trusted=yes] https://mirror-linux.runflare.com/ubuntu/ noble-updates main restricted universe multiverse deb [trusted=yes] https://mirror-linux.runflare.com/ubuntu/ noble-backports main restricted universe multiverse deb [trusted=yes] https://mirror-linux.runflare.com/ubuntu/ noble-security main restricted universe multiverse deb [trusted=yes] http://mirror.iranserver.com/ubuntu/ noble main restricted universe multiverse deb [trusted=yes] http://mirror.iranserver.com/ubuntu/ noble-updates main restricted universe multiverse deb [trusted=yes] http://mirror.iranserver.com/ubuntu/ noble-backports main restricted universe multiverse deb [trusted=yes] http://mirror.iranserver.com/ubuntu/ noble-security main restricted universe multiverse EOF apt-get update - name: Install git run: | apt-get install -y git - name: Checkout repository run: | git clone http://gitea:3000/sajad-dev/Ai.git . - name: Install system dependencies run: | apt-get install -y \ python3 \ python3-pip \ python3-venv \ pkg-config \ build-essential \ default-libmysqlclient-dev - name: Setup Python pip mirrors run: | pip3 config --user set global.index-url https://package-mirror.liara.ir/repository/pypi/simple pip3 config --user set global.extra-index-url https://mirror.cdn.ir/repository/pypi/simple pip3 config --user set global.trusted-host "package-mirror.liara.ir mirror.cdn.ir mirror2.chabokan.net" - name: Install dependencies run: | python3 -m pip install --upgrade pip --break-system-packages pip3 install -r requirements.txt --break-system-packages pip3 install pytest flake8 --break-system-packages - name: Run lint run: | flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - name: Run tests run: | pytest -q