name: Integration # yamllint disable-line rule:truthy on: workflow_dispatch: push: branches: - master pull_request: branches: - master permissions: contents: read jobs: python: # TODO: Remove this if: false name: Python ${{ matrix.python-version }} runs-on: ubuntu-24.04 strategy: matrix: python-version: - "3.9" - "3.10" - "3.11" - "3.12" - "3.13" steps: - name: Checkout uses: actions/checkout@v4 with: persist-credentials: "false" - 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 }}" - name: Run tests run: make V=1 ci.test themes: # TODO: Remove this if: false name: Themes runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 with: persist-credentials: "false" - name: Install Ubuntu packages run: sudo ./utils/searxng.sh install buildhost - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.13" - name: Build themes run: make themes.all documentation: # TODO: Remove this if: false name: Documentation runs-on: ubuntu-24.04 permissions: # for JamesIves/github-pages-deploy-action to push contents: write steps: - name: Checkout uses: actions/checkout@v4 with: persist-credentials: "false" fetch-depth: "0" - name: Install Ubuntu packages run: sudo ./utils/searxng.sh install buildhost - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.13" - name: Cache Python dependencies id: cache-python uses: actions/cache@v4 with: path: | ./local ./.nvm ./node_modules key: python-ubuntu-24.04-3.13-${{ hashFiles('requirements*.txt', 'setup.py','.nvmrc', 'package.json') }} - name: Build documentation run: make V=1 docs.clean docs.html - if: github.ref == 'refs/heads/master' name: Deploy uses: JamesIves/github-pages-deploy-action@3.7.1 with: GITHUB_TOKEN: "${{ github.token }}" BRANCH: "gh-pages" FOLDER: "dist/docs" # Automatically remove deleted files from the deploy branch CLEAN: "true" SINGLE_COMMIT: "true" COMMIT_MESSAGE: "[doc] build from commit ${{ github.sha }}" babel: # TODO: Remove this if: false # if: github.repository_owner == 'searxng' && github.ref == 'refs/heads/master' name: Update translations branch runs-on: ubuntu-24.04 needs: - python - themes - documentation permissions: # for make V=1 weblate.push.translations contents: write steps: - name: Checkout uses: actions/checkout@v4 with: token: "${{ secrets.WEBLATE_GITHUB_TOKEN }}" fetch-depth: "0" - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.13" - name: Cache Python dependencies id: cache-python uses: actions/cache@v4 with: path: | ./local ./.nvm ./node_modules key: python-ubuntu-20.04-3.13-${{ hashFiles('requirements*.txt', 'setup.py','.nvmrc', 'package.json') }} - name: weblate & git setup env: WEBLATE_CONFIG: "${{ secrets.WEBLATE_CONFIG }}" run: | mkdir -p ~/.config echo "${WEBLATE_CONFIG}" > ~/.config/weblate git config --global user.email "searxng-bot@users.noreply.github.com" git config --global user.name "searxng-bot" - name: Update transations id: update run: make V=1 weblate.push.translations