diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index bce6161b..c15108bd 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -12,9 +12,9 @@ jobs: python-version: - "3.9" - "3.10" - # - "3.11" - # - "3.12" - # - "3.13" + - "3.11" + - "3.12" + - "3.13" runs-on: macos-14 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index c32d8b93..b9e24c71 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -1,269 +1,269 @@ -# name: modified_scripts -# on: [pull_request] -# jobs: - # discover_modified_scripts: - # runs-on: ubuntu-latest - # outputs: - # versions: ${{steps.modified-versions.outputs.versions}} - # steps: - # - uses: actions/checkout@v4 - # - run: git fetch origin "$GITHUB_BASE_REF" - # - shell: bash - # run: > - # versions=$(git diff "origin/$GITHUB_BASE_REF" --name-only -z - # | perl -ne 'BEGIN {$\="\n";$/="\0";} chomp; - # if (/^plugins\/python-build\/share\/python-build\/(?:([^\/]+)|patches\/([^\/]+)\/.*)$/ and -e $& ) - # { print $1.$2; }' \ - # | sort -u); - # EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64); - # echo "versions<<$EOF" >> $GITHUB_ENV; - # echo "$versions" >> $GITHUB_ENV; - # echo "$EOF" >> $GITHUB_ENV; +name: modified_scripts +on: [pull_request] +jobs: + discover_modified_scripts: + runs-on: ubuntu-latest + outputs: + versions: ${{steps.modified-versions.outputs.versions}} + steps: + - uses: actions/checkout@v4 + - run: git fetch origin "$GITHUB_BASE_REF" + - shell: bash + run: > + versions=$(git diff "origin/$GITHUB_BASE_REF" --name-only -z + | perl -ne 'BEGIN {$\="\n";$/="\0";} chomp; + if (/^plugins\/python-build\/share\/python-build\/(?:([^\/]+)|patches\/([^\/]+)\/.*)$/ and -e $& ) + { print $1.$2; }' \ + | sort -u); + EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64); + echo "versions<<$EOF" >> $GITHUB_ENV; + echo "$versions" >> $GITHUB_ENV; + echo "$EOF" >> $GITHUB_ENV; - # versions_cpython_only=$(grep -Ee '^[[:digit:]]' <<<"$version") - # EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64); - # echo "versions_cpython_only<<$EOF" >> $GITHUB_ENV; - # echo $versions_cpython_only >> $GITHUB_ENV; - # echo "$EOF" >> $GITHUB_ENV; - # - id: modified-versions - # run: | - # echo "versions=`echo "${{ env.versions }}" | jq -R . | jq -sc .`" >> $GITHUB_OUTPUT - # echo "versions_cpython_only=`echo "${{ env.versions_cpython_only }}" | jq -R . | jq -sc .`" >> $GITHUB_OUTPUT - # macos_build: - # needs: discover_modified_scripts - # if: needs.discover_modified_scripts.outputs.versions != '[""]' - # strategy: - # fail-fast: false - # matrix: - # python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} - # os: ["macos-13", "macos-14"] - # runs-on: ${{ matrix.os }} - # steps: - # - uses: actions/checkout@v4 - # - run: | - # #envvars - # export PYENV_ROOT="$GITHUB_WORKSPACE" - # echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV - # echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - # - run: | - # #prerequisites - # brew install openssl openssl@1.1 readline sqlite3 xz zlib - # if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then - # export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 - # echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV - # pyenv install $PYENV_BOOTSTRAP_VERSION - # fi - # - run: | - # #build - # pyenv --debug install ${{ matrix.python-version }} - # pyenv global ${{ matrix.python-version }} - # # Micropython doesn't support --version - # - run: | - # #print version - # if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then - # python -c 'import sys; print(sys.version)' - # else - # python --version - # python -m pip --version - # fi - # # Micropython doesn't support sys.executable, os.path, older versions even os - # - env: - # EXPECTED_PYTHON: ${{ matrix.python-version }} - # run: | - # #check - # if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then - # [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 - # python -c 'import sys; assert sys.implementation.name == "micropython"' - # else - # python -c 'if True: - # import os, sys, os.path - # correct_dir = os.path.join( - # os.environ["PYENV_ROOT"], - # "versions", - # os.environ["EXPECTED_PYTHON"], - # "bin") - # assert os.path.dirname(sys.executable) == correct_dir' - # fi - # # bundled executables in some Anaconda releases cause the post-run step to hang in MacOS - # - run: | - # pyenv global system - # rm -f "$(pyenv root)"/shims/* + versions_cpython_only=$(grep -Ee '^[[:digit:]]' <<<"$version") + EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64); + echo "versions_cpython_only<<$EOF" >> $GITHUB_ENV; + echo $versions_cpython_only >> $GITHUB_ENV; + echo "$EOF" >> $GITHUB_ENV; + - id: modified-versions + run: | + echo "versions=`echo "${{ env.versions }}" | jq -R . | jq -sc .`" >> $GITHUB_OUTPUT + echo "versions_cpython_only=`echo "${{ env.versions_cpython_only }}" | jq -R . | jq -sc .`" >> $GITHUB_OUTPUT + macos_build: + needs: discover_modified_scripts + if: needs.discover_modified_scripts.outputs.versions != '[""]' + strategy: + fail-fast: false + matrix: + python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} + os: ["macos-13", "macos-14"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - run: | + #envvars + export PYENV_ROOT="$GITHUB_WORKSPACE" + echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + - run: | + #prerequisites + brew install openssl openssl@1.1 readline sqlite3 xz zlib + if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then + export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 + echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV + pyenv install $PYENV_BOOTSTRAP_VERSION + fi + - run: | + #build + pyenv --debug install ${{ matrix.python-version }} + pyenv global ${{ matrix.python-version }} + # Micropython doesn't support --version + - run: | + #print version + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + python -c 'import sys; print(sys.version)' + else + python --version + python -m pip --version + fi + # Micropython doesn't support sys.executable, os.path, older versions even os + - env: + EXPECTED_PYTHON: ${{ matrix.python-version }} + run: | + #check + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 + python -c 'import sys; assert sys.implementation.name == "micropython"' + else + python -c 'if True: + import os, sys, os.path + correct_dir = os.path.join( + os.environ["PYENV_ROOT"], + "versions", + os.environ["EXPECTED_PYTHON"], + "bin") + assert os.path.dirname(sys.executable) == correct_dir' + fi + # bundled executables in some Anaconda releases cause the post-run step to hang in MacOS + - run: | + pyenv global system + rm -f "$(pyenv root)"/shims/* - # macos_build_bundled_dependencies: - # needs: discover_modified_scripts - # if: needs.discover_modified_scripts.outputs.versions_cpython_only != '[""]' - # strategy: - # fail-fast: false - # matrix: - # python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}} - # os: ["macos-13", "macos-14"] - # runs-on: ${{ matrix.os }} - # steps: - # - uses: actions/checkout@v4 - # - run: | - # #envvars - # export PYENV_ROOT="$GITHUB_WORKSPACE" - # echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV - # echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - # - run: | - # #prerequisites - # brew install sqlite3 xz zlib - # "$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" openssl@3 openssl@1.1 readline - # if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then - # export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 - # echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV - # pyenv install $PYENV_BOOTSTRAP_VERSION - # fi - # - run: | - # #build - # pyenv --debug install ${{ matrix.python-version }} - # pyenv global ${{ matrix.python-version }} - # # Micropython doesn't support --version - # - run: | - # #print version - # if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then - # python -c 'import sys; print(sys.version)' - # else - # python --version - # python -m pip --version - # fi - # # Micropython doesn't support sys.executable, os.path, older versions even os - # - env: - # EXPECTED_PYTHON: ${{ matrix.python-version }} - # run: | - # #check - # if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then - # [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 - # python -c 'import sys; assert sys.implementation.name == "micropython"' - # else - # python -c 'if True: - # import os, sys, os.path - # correct_dir = os.path.join( - # os.environ["PYENV_ROOT"], - # "versions", - # os.environ["EXPECTED_PYTHON"], - # "bin") - # assert os.path.dirname(sys.executable) == correct_dir' - # fi - # # bundled executables in some Anaconda releases cause the post-run step to hang in MacOS - # - run: | - # pyenv global system - # rm -f "$(pyenv root)"/shims/* + macos_build_bundled_dependencies: + needs: discover_modified_scripts + if: needs.discover_modified_scripts.outputs.versions_cpython_only != '[""]' + strategy: + fail-fast: false + matrix: + python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}} + os: ["macos-13", "macos-14"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - run: | + #envvars + export PYENV_ROOT="$GITHUB_WORKSPACE" + echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + - run: | + #prerequisites + brew install sqlite3 xz zlib + "$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" openssl@3 openssl@1.1 readline + if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then + export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 + echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV + pyenv install $PYENV_BOOTSTRAP_VERSION + fi + - run: | + #build + pyenv --debug install ${{ matrix.python-version }} + pyenv global ${{ matrix.python-version }} + # Micropython doesn't support --version + - run: | + #print version + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + python -c 'import sys; print(sys.version)' + else + python --version + python -m pip --version + fi + # Micropython doesn't support sys.executable, os.path, older versions even os + - env: + EXPECTED_PYTHON: ${{ matrix.python-version }} + run: | + #check + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 + python -c 'import sys; assert sys.implementation.name == "micropython"' + else + python -c 'if True: + import os, sys, os.path + correct_dir = os.path.join( + os.environ["PYENV_ROOT"], + "versions", + os.environ["EXPECTED_PYTHON"], + "bin") + assert os.path.dirname(sys.executable) == correct_dir' + fi + # bundled executables in some Anaconda releases cause the post-run step to hang in MacOS + - run: | + pyenv global system + rm -f "$(pyenv root)"/shims/* - # ubuntu_build: - # needs: discover_modified_scripts - # if: needs.discover_modified_scripts.outputs.versions != '[""]' - # strategy: - # fail-fast: false - # matrix: - # python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} - # os: ["ubuntu-22.04", "ubuntu-24.04"] - # runs-on: ${{ matrix.os }} - # steps: - # - uses: actions/checkout@v4 - # - run: | - # #envvars - # export PYENV_ROOT="$GITHUB_WORKSPACE" - # echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV - # echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - # - run: | - # #prerequisites - # sudo apt-get update -q; sudo apt-get install -yq make build-essential \ - # libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ - # curl llvm libncurses5-dev libncursesw5-dev \ - # xz-utils tk-dev libffi-dev liblzma-dev - # if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then - # export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 - # echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV - # pyenv install $PYENV_BOOTSTRAP_VERSION - # fi - # - run: | - # #build - # pyenv install -v ${{ matrix.python-version }} - # pyenv global ${{ matrix.python-version }} - # # Micropython doesn't support --version - # - run: | - # #print version - # if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then - # python -c 'import sys; print(sys.version)' - # else - # python --version - # python -m pip --version - # fi - # # Micropython doesn't support sys.executable, os.path, older versions even os - # - env: - # EXPECTED_PYTHON: ${{ matrix.python-version }} - # run: | - # #check - # if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then - # [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 - # python -c 'import sys; assert sys.implementation.name == "micropython"' - # else - # python -c 'if True: - # import os, sys, os.path - # correct_dir = os.path.join( - # os.environ["PYENV_ROOT"], - # "versions", - # os.environ["EXPECTED_PYTHON"], - # "bin") - # assert os.path.dirname(sys.executable) == correct_dir' - # fi - # ubuntu_build_tar_gz: - # needs: discover_modified_scripts - # if: needs.discover_modified_scripts.outputs.versions_cpython_only != '[""]' - # strategy: - # fail-fast: false - # matrix: - # python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}} - # os: ["ubuntu-latest"] - # runs-on: ${{ matrix.os }} - # steps: - # - uses: actions/checkout@v4 - # - run: | - # #envvars - # export PYENV_ROOT="$GITHUB_WORKSPACE" - # echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV - # echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - # echo "_PYTHON_BUILD_FORCE_SKIP_XZ=1" >> $GITHUB_PATH - # - run: | - # #prerequisites - # sudo apt-get update -q; sudo apt-get install -yq make build-essential \ - # libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ - # curl llvm libncurses5-dev libncursesw5-dev \ - # xz-utils tk-dev libffi-dev liblzma-dev - # if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then - # export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 - # echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV - # pyenv install $PYENV_BOOTSTRAP_VERSION - # fi - # - run: | - # #build - # pyenv install -v ${{ matrix.python-version }} - # pyenv global ${{ matrix.python-version }} - # # Micropython doesn't support --version - # - run: | - # #print version - # if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then - # python -c 'import sys; print(sys.version)' - # else - # python --version - # python -m pip --version - # fi - # # Micropython doesn't support sys.executable, os.path, older versions even os - # - env: - # EXPECTED_PYTHON: ${{ matrix.python-version }} - # run: | - # #check - # if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then - # [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 - # python -c 'import sys; assert sys.implementation.name == "micropython"' - # else - # python -c 'if True: - # import os, sys, os.path - # correct_dir = os.path.join( - # os.environ["PYENV_ROOT"], - # "versions", - # os.environ["EXPECTED_PYTHON"], - # "bin") - # assert os.path.dirname(sys.executable) == correct_dir' - # fi + ubuntu_build: + needs: discover_modified_scripts + if: needs.discover_modified_scripts.outputs.versions != '[""]' + strategy: + fail-fast: false + matrix: + python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} + os: ["ubuntu-22.04", "ubuntu-24.04"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - run: | + #envvars + export PYENV_ROOT="$GITHUB_WORKSPACE" + echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + - run: | + #prerequisites + sudo apt-get update -q; sudo apt-get install -yq make build-essential \ + libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ + curl llvm libncurses5-dev libncursesw5-dev \ + xz-utils tk-dev libffi-dev liblzma-dev + if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then + export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 + echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV + pyenv install $PYENV_BOOTSTRAP_VERSION + fi + - run: | + #build + pyenv install -v ${{ matrix.python-version }} + pyenv global ${{ matrix.python-version }} + # Micropython doesn't support --version + - run: | + #print version + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + python -c 'import sys; print(sys.version)' + else + python --version + python -m pip --version + fi + # Micropython doesn't support sys.executable, os.path, older versions even os + - env: + EXPECTED_PYTHON: ${{ matrix.python-version }} + run: | + #check + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 + python -c 'import sys; assert sys.implementation.name == "micropython"' + else + python -c 'if True: + import os, sys, os.path + correct_dir = os.path.join( + os.environ["PYENV_ROOT"], + "versions", + os.environ["EXPECTED_PYTHON"], + "bin") + assert os.path.dirname(sys.executable) == correct_dir' + fi + ubuntu_build_tar_gz: + needs: discover_modified_scripts + if: needs.discover_modified_scripts.outputs.versions_cpython_only != '[""]' + strategy: + fail-fast: false + matrix: + python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}} + os: ["ubuntu-latest"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - run: | + #envvars + export PYENV_ROOT="$GITHUB_WORKSPACE" + echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + echo "_PYTHON_BUILD_FORCE_SKIP_XZ=1" >> $GITHUB_PATH + - run: | + #prerequisites + sudo apt-get update -q; sudo apt-get install -yq make build-essential \ + libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ + curl llvm libncurses5-dev libncursesw5-dev \ + xz-utils tk-dev libffi-dev liblzma-dev + if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then + export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 + echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV + pyenv install $PYENV_BOOTSTRAP_VERSION + fi + - run: | + #build + pyenv install -v ${{ matrix.python-version }} + pyenv global ${{ matrix.python-version }} + # Micropython doesn't support --version + - run: | + #print version + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + python -c 'import sys; print(sys.version)' + else + python --version + python -m pip --version + fi + # Micropython doesn't support sys.executable, os.path, older versions even os + - env: + EXPECTED_PYTHON: ${{ matrix.python-version }} + run: | + #check + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 + python -c 'import sys; assert sys.implementation.name == "micropython"' + else + python -c 'if True: + import os, sys, os.path + correct_dir = os.path.join( + os.environ["PYENV_ROOT"], + "versions", + os.environ["EXPECTED_PYTHON"], + "bin") + assert os.path.dirname(sys.executable) == correct_dir' + fi diff --git a/.github/workflows/no-response.yml b/.github/workflows/no-response.yml index e281b3a9..275b7563 100644 --- a/.github/workflows/no-response.yml +++ b/.github/workflows/no-response.yml @@ -1,30 +1,30 @@ -# name: No Response +name: No Response -# # Both `issue_comment` and `scheduled` event types are required for this Action -# # to work properly. -# on: - # issue_comment: - # types: [created] - # schedule: - # # Schedule for ten minutes after the hour, every hour - # - cron: '10 * * * *' +# Both `issue_comment` and `scheduled` event types are required for this Action +# to work properly. +on: + issue_comment: + types: [created] + schedule: + # Schedule for ten minutes after the hour, every hour + - cron: '10 * * * *' -# permissions: {} -# jobs: - # noResponse: - # permissions: - # issues: write # to update issues (lee-dohm/no-response) +permissions: {} +jobs: + noResponse: + permissions: + issues: write # to update issues (lee-dohm/no-response) - # runs-on: ubuntu-latest - # steps: - # - uses: lee-dohm/no-response@v0.5.0 - # with: - # token: ${{ github.token }} - # daysUntilClose: 30 - # responseRequiredLabel: need-feedback - # closeComment: > - # This issue has been automatically closed because there has been no response - # to our request for more information from the original author. With only the - # information that is currently in the issue, we don't have enough information - # to take action. Please reach out if you have or find the answers we need so - # that we can investigate further. + runs-on: ubuntu-latest + steps: + - uses: lee-dohm/no-response@v0.5.0 + with: + token: ${{ github.token }} + daysUntilClose: 30 + responseRequiredLabel: need-feedback + closeComment: > + This issue has been automatically closed because there has been no response + to our request for more information from the original author. With only the + information that is currently in the issue, we don't have enough information + to take action. Please reach out if you have or find the answers we need so + that we can investigate further. diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 3386b671..dab75608 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -1,49 +1,49 @@ -# name: pyenv_tests -# on: [pull_request, push] +name: pyenv_tests +on: [pull_request, push] -# permissions: - # contents: read # to fetch code (actions/checkout) +permissions: + contents: read # to fetch code (actions/checkout) -# jobs: - # pyenv_tests: - # strategy: - # fail-fast: false - # matrix: - # os: - # - ubuntu-24.04 - # - ubuntu-22.04 - # - macos-14 - # - macos-13 - # runs-on: ${{ matrix.os }} - # 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 install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ - # # libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ - # # xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - # # https://github.com/pyenv/pyenv#installation +jobs: + pyenv_tests: + strategy: + fail-fast: false + matrix: + os: + - ubuntu-24.04 + - ubuntu-22.04 + - macos-14 + - macos-13 + runs-on: ${{ matrix.os }} + 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: | - # if test "$RUNNER_OS" == "macOS"; then - # brew install coreutils fish - # elif [[ $(lsb_release -sr | awk -F. '{print $1}') -ge 20 ]]; then - # # Ubuntu 18 has fish 2 which lacks many features that facilitate testing - # sudo apt install fish -yq - # fi - # - run: pwd - # - env: - # PYENV_ROOT: /home/runner/work/pyenv/pyenv - # run: | - # echo $PYENV_ROOT - # echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - # - run: | - # make test - # - env: - # PYENV_NATIVE_EXT: 1 - # run: | - # (cd src; ./configure; make) - # bats/bin/bats test/{pyenv,hooks,versions}.bats \ No newline at end of file + # sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ + # libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ + # xz-utils tk-dev libffi-dev liblzma-dev python-openssl git + # https://github.com/pyenv/pyenv#installation + - run: | + if test "$RUNNER_OS" == "macOS"; then + brew install coreutils fish + elif [[ $(lsb_release -sr | awk -F. '{print $1}') -ge 20 ]]; then + # Ubuntu 18 has fish 2 which lacks many features that facilitate testing + sudo apt install fish -yq + fi + - run: pwd + - env: + PYENV_ROOT: /home/runner/work/pyenv/pyenv + run: | + echo $PYENV_ROOT + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + - run: | + make test + - env: + PYENV_NATIVE_EXT: 1 + run: | + (cd src; ./configure; make) + bats/bin/bats test/{pyenv,hooks,versions}.bats \ No newline at end of file diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 7668fb35..30b401b8 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -1,49 +1,49 @@ -# name: ubuntu_build -# on: [pull_request, push] +name: ubuntu_build +on: [pull_request, push] -# permissions: - # contents: read # to fetch code (actions/checkout) +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")) +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"))