name: Integration on: # yamllint disable-line rule:truthy push: branches: ["master"] pull_request: branches: ["master"] permissions: contents: read jobs: python: name: Python ${{ matrix.python-version }} runs-on: ubuntu-24.04 strategy: matrix: os: [ubuntu-24.04] python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - name: Checkout uses: actions/checkout@v4 - name: Install Ubuntu packages run: | sudo ./utils/searxng.sh install packages - name: Set up Python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} architecture: 'x64' - name: Run tests run: make V=1 ci.test themes: name: Themes runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Install Ubuntu packages run: sudo ./utils/searxng.sh install buildhost - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' architecture: 'x64' - name: Build themes run: make themes.all dockers: name: Docker if: github.ref == 'refs/heads/master' needs: - python - themes env: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} runs-on: ubuntu-24.04 steps: - name: Checkout if: env.DOCKERHUB_USERNAME != null uses: actions/checkout@v4 with: # make sure "make docker.push" can get the git history fetch-depth: '0' - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' architecture: 'x64' - name: Cache Python dependencies id: cache-python uses: actions/cache@v4 with: path: | ./local ./.nvm ./node_modules key: python-ubuntu-20.04-3.12-${{ hashFiles('requirements*.txt', 'setup.py','.nvmrc', 'package.json') }} - name: Set up QEMU if: env.DOCKERHUB_USERNAME != null uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx if: env.DOCKERHUB_USERNAME != null uses: docker/setup-buildx-action@v1 - name: Login to DockerHub if: env.DOCKERHUB_USERNAME != null uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push if: env.DOCKERHUB_USERNAME != null run: make -e GIT_URL=$(git remote get-url origin) docker.buildx