From 26b04c878857d205967247a0cb55f3f448a6e332 Mon Sep 17 00:00:00 2001 From: Guanzhong Chen Date: Mon, 5 Oct 2020 18:45:48 -0400 Subject: [PATCH] Build python 3.9 and switch to GitHub Actions (#3) --- .github/workflows/build.yml | 33 +++++++++++++++++++++++++++++++++ .travis.yml | 28 ---------------------------- run | 2 +- 3 files changed, 34 insertions(+), 29 deletions(-) create mode 100644 .github/workflows/build.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..7862f88 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,33 @@ +name: build +on: [push, pull_request] +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [ 3.6.12, 3.7.9, 3.8.6, 3.9.0 ] + arch: [ amd64, aarch64 ] + steps: + - uses: actions/checkout@v2 + - name: Setup QEMU + if: matrix.arch != 'amd64' + uses: docker/setup-qemu-action@v1 + with: + platforms: all + - name: Setup Docker buildx + if: matrix.arch != 'amd64' + uses: docker/setup-buildx-action@v1 + with: + install: true + - name: Download docker image + run: docker pull dmoj/runtimes-tier1:${{ matrix.arch }}-latest + - name: Build python + run: | + PYTHON_DIR="python$(echo "${{ matrix.python-version }}" | cut -d. -f 1-2)" + PYTHON_URL="https://www.python.org/ftp/python/$(perl -e 'shift=~/([\d.]+)/;print$1' "${{ matrix.python-version }}")/Python-${{ matrix.python-version }}.tar.xz" + docker run -e ARCH="${{ matrix.arch }}" -e PYTHON_DIR="$PYTHON_DIR" -e PYTHON_URL="$PYTHON_URL" -v "$(pwd):/code" dmoj/runtimes-tier1:${{ matrix.arch }}-latest + - name: Archive build artifacts + uses: actions/upload-artifact@v2 + with: + name: Python ${{ matrix.python-version }} (${{ matrix.arch }}) + path: python*.tar.gz diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7c195b6..0000000 --- a/.travis.yml +++ /dev/null @@ -1,28 +0,0 @@ -branches: - except: - - /^untagged-.*/ -services: - - docker -jobs: - include: - - env: PYTHON_VERSION=3.6.9 ARCH=amd64 - arch: amd64 - - env: PYTHON_VERSION=3.7.4 ARCH=amd64 - arch: amd64 - - env: PYTHON_VERSION=3.8.0 ARCH=amd64 - arch: amd64 - - env: PYTHON_VERSION=3.8.0 ARCH=aarch64 - arch: arm64 -install: - - docker pull dmoj/runtimes-tier1:"${ARCH}"-latest -script: - - export PYTHON_DIR="python$(echo "$PYTHON_VERSION" | cut -d. -f 1-2)" - - export PYTHON_URL="https://www.python.org/ftp/python/$(perl -e 'shift=~/([\d.]+)/;print$1' "$PYTHON_VERSION")/Python-$PYTHON_VERSION.tar.xz" - - docker run -e ARCH="$ARCH" -e PYTHON_DIR="$PYTHON_DIR" -e PYTHON_URL="$PYTHON_URL" -v "$(pwd):/code" dmoj/runtimes-tier1:"${ARCH}"-latest -deploy: - provider: releases - api_key: - secure: "JdhL/CA73EC9FZukhPEeuGLCDXABpt9XLgqnQBAoynzadMtKjtiIbGslUQ0+7TvoqDXwkziAcOlzaf6/enikCGncBCNBQtuGsw9l3dTFP49ZyTMTfZB00Zq7N2fvQ6WTP/gzYxerj5lBbAaqi4DN/MnECSvBWHmPr9JqtEUWHOLYrFkDAcapxvquyyensggF9GvVREMoxj7FdiTPzwJ/axWEBupuWCzvD2i+arsnIgALj0Vl5DzAJaJpOGRmGw20HPVD6Wp8nYCH0yxsw7sOtYlCLGRU+JeqxhrLFUQ3Uu/RxTs55BBb3q4AaZNWHeth021xtLLiUNWDANDYxd5HptTXnZlsyqdHDluuLtRjfFG2Y+vj/CAi+gHfx87eVckMYzwTYuZDEO3F9oPrdTGEof+v7PtGWII3X5TYwI/LXHQlEx9F/86Y1Q8r2d+o75DtK8j+xxqFARpmpIp2jx/yNntXSYRKca74VLgoCfduHkbEH6t0BrYGWeNTQ+Y0yNB+TT2d5kiAwXsUINAxO7DDjGAO6HRPaZKgg+Q39zZD5MP/TRoYzggUyyJaaUWujPaKaX4tZdzfjnhUBjHA+VFY7+NX89taCgld6aZISfQCWCh+hleVv4YLQHWtDoqKRf9LjekWpBQM91cI8F9hjwPAwGYLS87bOR8nVWjlBPcq0f8=" - file_glob: true - file: python*.tar.gz - skip_cleanup: true diff --git a/run b/run index f93aa7d..a655d9d 100755 --- a/run +++ b/run @@ -7,7 +7,7 @@ mkdir "$PYTHON_DIR" echo "Downloading $PYTHON_URL to $PYTHON_DIR..." curl -L "$PYTHON_URL" | tar -xJ -C "$PYTHON_DIR" --strip-components=1 cd "$PYTHON_DIR" -./configure --prefix=/code/"$PYTHON_DIR" --enable-optimizations +./configure --prefix=/code/"$PYTHON_DIR" $(if [ "$ARCH" = amd64 -a "$(echo "$PYTHON_DIR" | cut -d. -f2)" -ge 8 ]; then echo --enable-optimizations; fi) make -j"$(nproc)" make install cd /code && tar czvf "$PYTHON_DIR-$ARCH.tar.gz" "$PYTHON_DIR"