Compare commits

...

4 Commits

Author SHA1 Message Date
dgtlmoon
948903dea5 Small test 2025-10-30 13:45:55 +01:00
dgtlmoon
fe383018d8 WIP 2025-10-30 13:40:43 +01:00
dgtlmoon
6b0327d716 small test 2025-10-30 13:37:04 +01:00
dgtlmoon
e3c33503e8 More build caching 2025-10-30 13:33:16 +01:00
4 changed files with 34 additions and 18 deletions

View File

@@ -104,8 +104,12 @@ jobs:
tags: |
${{ secrets.DOCKER_HUB_USERNAME }}/changedetection.io:dev,ghcr.io/${{ github.repository }}:dev
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v8
cache-from: type=gha
cache-to: type=gha,mode=max
cache-from: |
type=gha,scope=buildkit-master
type=registry,ref=${{ secrets.DOCKER_HUB_USERNAME }}/changedetection.io:buildcache
cache-to: |
type=gha,mode=max,scope=buildkit-master
type=registry,ref=${{ secrets.DOCKER_HUB_USERNAME }}/changedetection.io:buildcache,mode=max
# Looks like this was disabled
# provenance: false
@@ -142,8 +146,12 @@ jobs:
push: true
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v8
cache-from: type=gha
cache-to: type=gha,mode=max
cache-from: |
type=gha,scope=buildkit-release
type=registry,ref=${{ secrets.DOCKER_HUB_USERNAME }}/changedetection.io:buildcache
cache-to: |
type=gha,mode=max,scope=buildkit-release
type=registry,ref=${{ secrets.DOCKER_HUB_USERNAME }}/changedetection.io:buildcache,mode=max
# Looks like this was disabled
# provenance: false

View File

@@ -28,7 +28,6 @@ jobs:
with:
python-version: '3.10'
test-application-3-11:
# Always run
needs: lint-code
@@ -52,4 +51,5 @@ jobs:
uses: ./.github/workflows/test-stack-reusable-workflow.yml
with:
python-version: '3.13'
skip-pypuppeteer: true
skip-pypuppeteer: true

View File

@@ -28,19 +28,23 @@ jobs:
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Cache pip packages
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-py${{ env.PYTHON_VERSION }}-${{ hashFiles('requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-py${{ env.PYTHON_VERSION }}-
${{ runner.os }}-pip-
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build changedetection.io container for testing under Python ${{ env.PYTHON_VERSION }}
uses: docker/build-push-action@v6
with:
context: .
build-args: |
PYTHON_VERSION=${{ env.PYTHON_VERSION }}
LOGGER_LEVEL=TRACE
tags: test-changedetectionio
load: true
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Verify pip packages installed
run: |
echo "---- Building for Python ${{ env.PYTHON_VERSION }} -----"
docker build --build-arg PYTHON_VERSION=${{ env.PYTHON_VERSION }} --build-arg LOGGER_LEVEL=TRACE -t test-changedetectionio .
docker run test-changedetectionio bash -c 'pip list'
- name: We should be Python ${{ env.PYTHON_VERSION }} ...

View File

@@ -4,6 +4,10 @@ ARG PYTHON_VERSION=3.11
FROM python:${PYTHON_VERSION}-slim-bookworm AS builder
# Declare platform variables for cache mount IDs
ARG TARGETARCH
ARG TARGETVARIANT
# See `cryptography` pin comment in requirements.txt
RUN apt-get update && apt-get install -y --no-install-recommends \
@@ -34,7 +38,7 @@ ENV OPENSSL_LIB_DIR="/usr/lib/arm-linux-gnueabihf"
ENV OPENSSL_INCLUDE_DIR="/usr/include/openssl"
# Additional environment variables for cryptography Rust build
ENV CRYPTOGRAPHY_DONT_BUILD_RUST=1
RUN --mount=type=cache,id=pip,sharing=locked,target=/tmp/pip-cache \
RUN --mount=type=cache,id=pip-$TARGETARCH$TARGETVARIANT,sharing=locked,target=/tmp/pip-cache \
pip install \
--prefer-binary \
--extra-index-url https://www.piwheels.org/simple \
@@ -47,7 +51,7 @@ RUN --mount=type=cache,id=pip,sharing=locked,target=/tmp/pip-cache \
# Playwright is an alternative to Selenium
# Excluded this package from requirements.txt to prevent arm/v6 and arm/v7 builds from failing
# https://github.com/dgtlmoon/changedetection.io/pull/1067 also musl/alpine (not supported)
RUN --mount=type=cache,id=pip,sharing=locked,target=/tmp/pip-cache \
RUN --mount=type=cache,id=pip-$TARGETARCH$TARGETVARIANT,sharing=locked,target=/tmp/pip-cache \
pip install \
--prefer-binary \
--cache-dir=/tmp/pip-cache \