From 92967c927a17b8a5c2286507c64e885fb1831b6d Mon Sep 17 00:00:00 2001 From: Valentin Petzold Date: Tue, 10 Mar 2026 09:22:19 +0100 Subject: [PATCH 1/5] fix filtertabular build --- .github/workflows/build-and-push.yaml | 6 +++--- filtertabular/Dockerfile | 6 +----- package-information.json | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-and-push.yaml b/.github/workflows/build-and-push.yaml index c6f9595..b23f8a7 100644 --- a/.github/workflows/build-and-push.yaml +++ b/.github/workflows/build-and-push.yaml @@ -4,9 +4,9 @@ on: push: branches: - main - #pull_request: - # branches: - # - main + pull_request: + branches: + - main workflow_dispatch: inputs: package: diff --git a/filtertabular/Dockerfile b/filtertabular/Dockerfile index 95a428e..22c8abf 100644 --- a/filtertabular/Dockerfile +++ b/filtertabular/Dockerfile @@ -2,16 +2,12 @@ ARG BASEIMAGE FROM ${BASEIMAGE} -ARG URGAP - RUN addgroup --system nonroot && \ adduser --system \ --ingroup nonroot \ --home /home/nonroot \ nonroot -COPY ${URGAP} /home/nonroot - ENV HOME=/home/nonroot ENV VENV_PATH=$HOME/venv ENV PATH=$VENV_PATH/bin:$PATH @@ -20,7 +16,7 @@ USER nonroot RUN python -m venv "$VENV_PATH" --system-site-packages RUN pip install uv -RUN uv pip install /home/nonroot/${URGAP}["all"] +RUN uv pip install urgap["all"] WORKDIR $HOME diff --git a/package-information.json b/package-information.json index cd182ac..36f8daa 100644 --- a/package-information.json +++ b/package-information.json @@ -11,7 +11,7 @@ { "name": "filtertabular", "versions": ["1.0.0"], - "base_image": "python:3.10", + "base_image": "python:3.13", "gh_url": "urgap/urgap.git", "separate_venv": false } From ede4e5fb77276ec5c651d4885e36a3b2fe7746a3 Mon Sep 17 00:00:00 2001 From: Valentin Petzold Date: Tue, 10 Mar 2026 10:14:41 +0100 Subject: [PATCH 2/5] fix filtertabular build --- .github/workflows/build-and-push.yaml | 16 +++------------- package-information.json | 2 +- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build-and-push.yaml b/.github/workflows/build-and-push.yaml index b23f8a7..80d2443 100644 --- a/.github/workflows/build-and-push.yaml +++ b/.github/workflows/build-and-push.yaml @@ -1,5 +1,4 @@ name: Build and Push Docker Images - on: push: branches: @@ -17,11 +16,9 @@ on: description: 'URL to urgap wheel (for pre-release testing)' required: false default: '' - env: REGISTRY: ghcr.io IMAGE_PREFIX: ghcr.io/urgap - jobs: build-matrix: name: Generate Build Matrix @@ -32,12 +29,10 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.11' - - name: Generate matrix id: set-matrix run: | @@ -55,7 +50,6 @@ jobs: else echo "has_packages=false" >> $GITHUB_OUTPUT fi - build-test-push: name: Build ${{ matrix.name }}:${{ matrix.version }} needs: build-matrix @@ -70,17 +64,14 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Log in to GitHub Container Registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Download urgap wheel from PyPI id: download-wheel run: | @@ -98,7 +89,6 @@ jobs: WHEEL_FILE=$(ls ${{ matrix.name }}/wheel/*.whl | head -1) WHEEL_NAME=$(basename "$WHEEL_FILE") echo "wheel_name=$WHEEL_NAME" >> $GITHUB_OUTPUT - - name: Prepare Docker tags id: tags run: | @@ -110,7 +100,6 @@ jobs: fi echo "tags=$TAGS" >> $GITHUB_OUTPUT - - name: Build Docker image uses: docker/build-push-action@v5 with: @@ -124,12 +113,14 @@ jobs: URGAP=wheel/${{ steps.download-wheel.outputs.wheel_name }} cache-from: type=gha cache-to: type=gha,mode=max - - name: Run tests run: | IMAGE_TAG="${{ env.IMAGE_PREFIX }}/${{ matrix.name }}:${{ matrix.version }}" CONTAINER_NAME="${{ matrix.name }}-test-$$" + # Start container + docker run -d --name "$CONTAINER_NAME" "$IMAGE_TAG" + # Copy tests into container docker cp ${{ matrix.name }}/tests "$CONTAINER_NAME":/home/nonroot/tests @@ -145,7 +136,6 @@ jobs: # Cleanup docker stop "$CONTAINER_NAME" docker rm "$CONTAINER_NAME" - - name: Push Docker image if: github.event_name == 'push' && github.ref == 'refs/heads/main' uses: docker/build-push-action@v5 diff --git a/package-information.json b/package-information.json index 36f8daa..49de079 100644 --- a/package-information.json +++ b/package-information.json @@ -1,5 +1,5 @@ { - "urgap": "3.2.18", + "urgap": "3.3.5", "packages": [ { "name": "plink", From cf5ab73cf4d858c3b2c9a4b3a33def6ffba1a53a Mon Sep 17 00:00:00 2001 From: Valentin Petzold Date: Tue, 10 Mar 2026 10:31:38 +0100 Subject: [PATCH 3/5] push image when tests pass --- .github/workflows/build-and-push.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-and-push.yaml b/.github/workflows/build-and-push.yaml index 80d2443..9b3bf47 100644 --- a/.github/workflows/build-and-push.yaml +++ b/.github/workflows/build-and-push.yaml @@ -137,7 +137,6 @@ jobs: docker stop "$CONTAINER_NAME" docker rm "$CONTAINER_NAME" - name: Push Docker image - if: github.event_name == 'push' && github.ref == 'refs/heads/main' uses: docker/build-push-action@v5 with: context: ${{ matrix.name }} From 0b7be6227b7539d6b562f22903975b795a36a512 Mon Sep 17 00:00:00 2001 From: Valentin Petzold Date: Tue, 10 Mar 2026 11:04:21 +0100 Subject: [PATCH 4/5] remove wheel install. instead use pypi directly --- .github/workflows/build-and-push.yaml | 24 ------------------------ plink/Dockerfile | 13 +++---------- 2 files changed, 3 insertions(+), 34 deletions(-) diff --git a/.github/workflows/build-and-push.yaml b/.github/workflows/build-and-push.yaml index 9b3bf47..174c9b9 100644 --- a/.github/workflows/build-and-push.yaml +++ b/.github/workflows/build-and-push.yaml @@ -1,8 +1,5 @@ name: Build and Push Docker Images on: - push: - branches: - - main pull_request: branches: - main @@ -12,10 +9,6 @@ on: description: 'Package name to build (leave empty for all)' required: false default: '' - urgap_wheel_url: - description: 'URL to urgap wheel (for pre-release testing)' - required: false - default: '' env: REGISTRY: ghcr.io IMAGE_PREFIX: ghcr.io/urgap @@ -72,23 +65,6 @@ jobs: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Download urgap wheel from PyPI - id: download-wheel - run: | - mkdir -p ${{ matrix.name }}/wheel - - if [ -n "${{ github.event.inputs.urgap_wheel_url }}" ]; then - # Use provided wheel URL - curl -L -o ${{ matrix.name }}/wheel/urgap.whl "${{ github.event.inputs.urgap_wheel_url }}" - else - # Download from PyPI - pip download urgap==${{ matrix.urgap_version }} --no-deps -d ${{ matrix.name }}/wheel/ || \ - pip download urgap --no-deps -d ${{ matrix.name }}/wheel/ - fi - - WHEEL_FILE=$(ls ${{ matrix.name }}/wheel/*.whl | head -1) - WHEEL_NAME=$(basename "$WHEEL_FILE") - echo "wheel_name=$WHEEL_NAME" >> $GITHUB_OUTPUT - name: Prepare Docker tags id: tags run: | diff --git a/plink/Dockerfile b/plink/Dockerfile index 3a8b929..ac53345 100644 --- a/plink/Dockerfile +++ b/plink/Dockerfile @@ -8,8 +8,6 @@ RUN cp $(which plink2 || which plink) /tmp/plink2 # Stage 2: Build final image with Python 3.11 + plink FROM python:3.11-slim -ARG URGAP - # Copy plink binary from base image COPY --from=plink-source /tmp/plink2 /usr/local/bin/plink2 @@ -18,14 +16,9 @@ RUN useradd -m -s /bin/bash nonroot USER nonroot WORKDIR /home/nonroot -RUN python -m venv /home/nonroot/venv - -# Copy and install urgap wheel into venv -COPY --chown=nonroot:nonroot ${URGAP} /tmp/ -RUN /home/nonroot/venv/bin/pip install --upgrade pip && \ - WHEEL=$(ls /tmp/*.whl) && \ - /home/nonroot/venv/bin/pip install "${WHEEL}[all]" && \ - rm /tmp/*.whl +RUN python -m venv /home/nonroot/venv && \ + /home/nonroot/venv/bin/pip install --upgrade pip && \ + /home/nonroot/venv/bin/pip install urgap["all"] # Add venv to PATH ENV PATH="/home/nonroot/venv/bin:$PATH" From a8b2816ea530e1489a9006649bb5bfb3f8b31c99 Mon Sep 17 00:00:00 2001 From: Valentin Petzold Date: Tue, 10 Mar 2026 11:06:28 +0100 Subject: [PATCH 5/5] fix filtertabular base image to slim trixie --- package-information.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-information.json b/package-information.json index 49de079..84784c6 100644 --- a/package-information.json +++ b/package-information.json @@ -11,7 +11,7 @@ { "name": "filtertabular", "versions": ["1.0.0"], - "base_image": "python:3.13", + "base_image": "python:3.13-slim-trixie", "gh_url": "urgap/urgap.git", "separate_venv": false }