Skip to content

Commit aca7104

Browse files
committed
Fix: [GitHub][workflows] Ubuntu 20.04 LTS の EOL に伴い deadsnakes PPA から focal 向けビルドが削除されてしまったので、代わりに Python Standalone Builds を入れる
1 parent c7e04ca commit aca7104

File tree

1 file changed

+31
-9
lines changed

1 file changed

+31
-9
lines changed

.github/workflows/build_installer.yaml

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,15 @@ on:
1313
workflow_call:
1414
workflow_dispatch:
1515

16+
env:
17+
# Python のバージョン (Python Standalone Builds のリリースを指定する)
18+
## ref: https://github.com/indygreg/python-build-standalone/releases
19+
PYTHON_TAG: '20251031'
20+
PYTHON_MAJOR_VERSION: '3.11'
21+
PYTHON_VERSION: '3.11.14'
22+
# Poetry のバージョン
23+
POETRY_VERSION: '1.8.5'
24+
1625
# ジョブの定義
1726
jobs:
1827

@@ -66,10 +75,14 @@ jobs:
6675
- arch: amd64
6776
runner: ubuntu-22.04
6877
artifact_suffix: ''
78+
# x86_64_v2 にすると2008年以降の CPU に搭載されている SSE 命令が使える
79+
# ref: https://gregoryszorc.com/docs/python-build-standalone/main/running.html
80+
python_arch_name: x86_64_v2
6981
# arm64 アーキテクチャ向けのビルド設定
7082
- arch: arm64
7183
runner: ubuntu-22.04-arm
7284
artifact_suffix: '-ARM'
85+
python_arch_name: aarch64
7386
runs-on: ${{ matrix.runner }}
7487
steps:
7588

@@ -78,25 +91,34 @@ jobs:
7891
uses: docker/setup-buildx-action@v3
7992

8093
# Dockerfile を作成
94+
# Python Standalone Builds を使用して Python 3.11 をインストールする
8195
- name: Create Dockerfile
8296
run: |
8397
cat <<EOF > Dockerfile
8498
FROM ubuntu:20.04
8599
ENV DEBIAN_FRONTEND=noninteractive
100+
# build-essential, curl, zlib などの必要なパッケージをインストール
86101
RUN apt-get update && \
87-
apt-get install -y --no-install-recommends software-properties-common && \
88-
add-apt-repository -y ppa:deadsnakes/ppa && \
89-
apt-get install -y \
102+
apt-get install -y --no-install-recommends \
90103
build-essential \
91104
curl \
92-
python3.11 \
93-
python3.11-dev \
94-
python3.11-distutils \
95-
python3.11-venv \
96105
zlib1g \
97106
zlib1g-dev
98-
RUN curl https://bootstrap.pypa.io/get-pip.py | python3.11
99-
RUN python3.11 -m pip install poetry
107+
# Python Standalone Builds をダウンロードしてインストール
108+
RUN curl -L -o python.tar.gz https://github.com/indygreg/python-build-standalone/releases/download/${{ env.PYTHON_TAG }}/cpython-${{ env.PYTHON_VERSION }}+${{ env.PYTHON_TAG }}-${{ matrix.python_arch_name }}-unknown-linux-gnu-install_only_stripped.tar.gz && \
109+
tar xvf python.tar.gz && \
110+
mv python /usr/local/python && \
111+
rm python.tar.gz
112+
# Python をパスの通った場所にシンボリックリンクで配置
113+
RUN ln -s /usr/local/python/bin/python3 /usr/local/bin/python3 && \
114+
ln -s /usr/local/python/bin/python3 /usr/local/bin/python3.11 && \
115+
ln -s /usr/local/python/bin/python3 /usr/local/bin/python && \
116+
ln -s /usr/local/python/bin/pip3 /usr/local/bin/pip3 && \
117+
ln -s /usr/local/python/bin/pip3 /usr/local/bin/pip
118+
# poetry をインストール
119+
RUN python3.11 -m pip install poetry==${{ env.POETRY_VERSION }}
120+
# poetry をパスの通った場所にシンボリックリンクで配置
121+
RUN ln -s /usr/local/python/bin/poetry /usr/local/bin/poetry
100122
EOF
101123
102124
# Ubuntu 20.04 の Docker イメージをビルド

0 commit comments

Comments
 (0)