123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- ---
- 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.13"
- jobs:
- test:
- 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: Setup Python
- uses: actions/setup-python@v5
- with:
- python-version: "${{ matrix.python-version }}"
- - name: Checkout
- uses: actions/checkout@v4
- with:
- persist-credentials: "false"
- - name: Setup cache Python
- uses: actions/cache@v4
- 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-24.04-arm
- steps:
- - name: Setup Python
- uses: actions/setup-python@v5
- with:
- python-version: "${{ env.PYTHON_VERSION }}"
- - name: Checkout
- uses: actions/checkout@v4
- with:
- persist-credentials: "false"
- - name: Setup Node.js
- uses: actions/setup-node@v4
- with:
- node-version-file: "./.nvmrc"
- - name: Setup cache Node.js
- uses: actions/cache@v4
- with:
- key: "nodejs-${{ runner.arch }}-${{ hashFiles('./.nvmrc', './package.json') }}"
- path: "./client/simple/node_modules/"
- - name: Setup cache Python
- uses: actions/cache@v4
- with:
- key: "python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}-${{ hashFiles('./requirements*.txt') }}"
- restore-keys: "python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}-"
- path: "./local/"
- - name: Setup venv
- run: make V=1 install
- - name: Build
- run: make themes.all
- dockers:
- name: Docker
- if: github.ref == 'refs/heads/master'
- needs:
- - test
- - theme
- 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
|