ci: fix action error with pulling OCCT image

This commit is contained in:
2025-11-13 15:16:50 +01:00
parent 4a1ff99e06
commit 191da020e4
6 changed files with 40 additions and 18 deletions
+7 -7
View File
@@ -63,8 +63,8 @@ jobs:
- name: Tag and push OCCT image
if: github.event_name != 'pull_request'
run: |
docker tag occt-builder:latest ghcr.io/${{ github.repository }}/occt-builder:latest
docker push ghcr.io/${{ github.repository }}/occt-builder:latest
docker tag occt-build:latest ghcr.io/${{ github.repository }}/occt-build:latest
docker push ghcr.io/${{ github.repository }}/occt-build:latest
build-ffi:
name: FFI
@@ -79,16 +79,16 @@ jobs:
uses: docker/setup-buildx-action@v3
- name: Log in to GitHub Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Pull OCCT image or build locally
- name: Pull and tag OCCT image
run: |
docker pull ghcr.io/${{ github.repository }}/occt-builder:latest || ./ci/scripts/occt.sh --build-only
docker pull ghcr.io/${{ github.repository }}/occt-build:latest
docker tag ghcr.io/${{ github.repository }}/occt-build:latest occt-build:latest
- name: Make scripts executable
run: chmod +x ./ci/scripts/ffi.sh
@@ -99,5 +99,5 @@ jobs:
- name: Tag and push FFI image
if: github.event_name != 'pull_request'
run: |
docker tag ffi-builder:latest ghcr.io/${{ github.repository }}/ffi-builder:latest
docker push ghcr.io/${{ github.repository }}/ffi-builder:latest
docker tag ffi-build:latest ghcr.io/${{ github.repository }}/ffi-build:latest
docker push ghcr.io/${{ github.repository }}/ffi-build:latest
+2 -2
View File
@@ -13,11 +13,11 @@ by the Free Software Foundation, either version 3 of the License, or
## License
This project is licensed under the GNU Affero General Public License v3.0 - see [LICENSE.txt](LICENSE.txt) file for details.
This project is licensed under the [GNU Affero General Public License v3.0](https://spdx.org/licenses/AGPL-3.0-or-later.html) - see [LICENSE.txt](LICENSE.txt) file for details.
## Third-Party Dependencies
This software makes use of facilities provided by **Open CASCADE Technology** (OCCT), which is licensed under the GNU LGPL version 2.1 with the following exception:
This software makes use of facilities provided by **Open CASCADE Technology** (OCCT), which is licensed under the [GNU Lesser General Public License v2.1](https://spdx.org/licenses/LGPL-2.1-only.html) with the following exception:
### Open CASCADE Exception (version 1.0)
> The object code (i.e. not a source) form of a "work that uses the Library"
+6 -3
View File
@@ -1,4 +1,7 @@
FROM occt-builder:latest AS ffi-base
FROM occt-build:latest AS occt-local
FROM ghcr.io/erickahmed/arc-core/occt-build:latest AS occt-ghcr
FROM occt-local AS occt-selected
FROM occt-selected AS ffi-base
ENV DEBIAN_FRONTEND=noninteractive
@@ -26,8 +29,8 @@ RUN apt-get update && apt-get install -y \
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
COPY --from=occt-builder:latest /usr/local /usr/local
COPY --from=occt-builder:latest /app/build /app/occt-build
COPY --from=occt-selected /usr/local /usr/local
COPY --from=occt-selected /app/build /app/occt-build
COPY --from=ffi-base /app /app
WORKDIR /app
+6 -1
View File
@@ -1,3 +1,8 @@
# Builds Open CASCADE Technology (OCCT) v7.9.2
# Licensed under LGPL-2.1-only with OCCT Exception v1.0
# Source: https://github.com/Open-Cascade-SAS/OCCT/tree/c5f20409c52bf8f658314d205a0e5d6f0be0969c
# Base builder
FROM ubuntu:24.04 AS occt-base
ENV DEBIAN_FRONTEND=noninteractive
@@ -14,7 +19,7 @@ RUN apt-get update && apt-get install -y \
RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git opencascade
WORKDIR /opencascade
RUN rm -rf /opencascade/build && mkdir build
RUN git checkout V7_9_2 -b OCCT-792
RUN git checkout c5f20409c52bf8f658314d205a0e5d6f0be0969c #Tag V7_9_2
RUN mkdir -p build
WORKDIR /opencascade/build
+18 -4
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -euo pipefail
IMAGE_NAME="ffi-builder:latest"
IMAGE_NAME="ffi-build:latest"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_PATH="$(cd "$SCRIPT_DIR/../../" && pwd)"
DOCKERFILE_PATH="$SCRIPT_DIR/../ffi.Dockerfile"
@@ -11,13 +11,27 @@ if [[ "${1-}" == "--tests" ]]; then
RUN_UNIT_TESTS=true
fi
# Try to understand where tf are we
if [[ -n "${GITHUB_REPOSITORY-}" ]]; then
BASE_IMAGE="ghcr.io/$GITHUB_REPOSITORY/occt-build:latest"
echo "Using GHCR image: $BASE_IMAGE"
docker pull "$BASE_IMAGE" || true
else
BASE_IMAGE="occt-build:latest"
echo "Using local image: $BASE_IMAGE"
fi
echo "Building base image..."
docker build --target ffi-base -f "$DOCKERFILE_PATH" -t "$IMAGE_NAME" "$PROJECT_PATH"
docker build --target ffi-base -f "$DOCKERFILE_PATH" -t "$IMAGE_NAME" \
--build-arg BASE_IMAGE="$BASE_IMAGE" \
"$PROJECT_PATH"
if [ "$RUN_UNIT_TESTS" = true ]; then
echo "Building unit-testing stage..."
docker build --target ffi-unit-testing -f "$DOCKERFILE_PATH" -t "$IMAGE_NAME" "$PROJECT_PATH"
docker build --target ffi-unit-testing -f "$DOCKERFILE_PATH" -t "$IMAGE_NAME" \
--build-arg BASE_IMAGE="$BASE_IMAGE" \
"$PROJECT_PATH"
echo "Running tests..."
docker run --rm -it "$IMAGE_NAME" cargo test
docker run --rm "$IMAGE_NAME" cargo test --verbose
fi
+1 -1
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -euo pipefail
IMAGE_NAME="occt-builder:latest"
IMAGE_NAME="occt-build:latest"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_PATH="$(cd "$SCRIPT_DIR/../../" && pwd)"
DOCKERFILE_PATH="$SCRIPT_DIR/../occt.Dockerfile"