--- name: Integration # yamllint disable-line rule:truthy on: push: branches: - master pull_request: branches: - master concurrency: group: ${{ github.workflow }}-${{ github.ref_name }} cancel-in-progress: false permissions: contents: read env: PYTHON_VERSION: "3.14" jobs: test: name: Python ${{ matrix.python-version }} runs-on: ubuntu-26.04 strategy: matrix: python-version: - "3.11" - "3.12" - "3.13" - "3.14" steps: - name: Setup Python uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 with: python-version: "${{ matrix.python-version }}" - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: "false" - name: Setup cache Python uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: key: "python-${{ matrix.python-version }}-${{ runner.arch }}-${{ hashFiles('./requirements*.txt') }}" restore-keys: | python-${{ matrix.python-version }}-${{ runner.arch }}- path: "./local/" - name: Setup venv run: make V=1 install - name: Run tests run: make V=1 ci.test theme: name: Theme runs-on: ubuntu-26.04-arm steps: - name: Setup Python uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 with: python-version: "${{ env.PYTHON_VERSION }}" - name: Setup Node.js uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: "26" check-latest: "true" - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: "false" - name: Setup cache Python uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: key: "python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}-${{ hashFiles('./requirements*.txt') }}" restore-keys: | python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}- path: "./local/" - name: Setup cache Node.js uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: key: "nodejs-${{ runner.arch }}-${{ hashFiles('**/package-lock.json') }}" restore-keys: | nodejs-${{ runner.arch }}- path: "./client/simple/node_modules/" - name: Setup venv run: make V=1 install - name: Lint run: make themes.lint - name: Build run: make themes.all