# name: ubuntu_build # on: [pull_request, push] # permissions: # contents: read # to fetch code (actions/checkout) # jobs: # ubuntu_build: # strategy: # fail-fast: false # matrix: # python-version: # - "3.9" # - "3.10" # - "3.11" # - "3.12" # - "3.13" # runs-on: ubuntu-latest # steps: # - uses: actions/checkout@v4 # # Normally, we would use the superbly maintained... # # - uses: actions/setup-python@v2 # # with: # # python-version: ${{ matrix.python-version }} # # ... but in the repo, we want to test pyenv builds on Ubuntu # - run: | # sudo apt-get update -q; sudo apt install -yq make build-essential libssl-dev zlib1g-dev \ # libbz2-dev libreadline-dev libsqlite3-dev curl \ # libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # - name: Ccache for gh actions # uses: hendrikmuhs/ccache-action@v1.2.17 # with: # key: ${{ github.job }}-${{ matrix.python-version}} # # https://github.com/pyenv/pyenv#installation # - run: pwd # - env: # PYENV_ROOT: /home/runner/work/pyenv/pyenv # run: | # echo $PYENV_ROOT # echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH # bin/pyenv --debug install ${{ matrix.python-version }} # bin/pyenv global ${{ matrix.python-version }} # bin/pyenv rehash # - run: python --version # - run: python -m pip --version # - shell: python # Prove that actual Python == expected Python # env: # EXPECTED_PYTHON: ${{ matrix.python-version }} # run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON"))