| # SPDX-FileCopyrightText: The Eigen Authors |
| # SPDX-License-Identifier: MPL-2.0 |
| # |
| # Builds and pushes CI container images to the GitLab registry. |
| # |
| # Automatic: triggered on push to the default branch when a Dockerfile changes. |
| # Manual: available as a manual job in any pipeline for routine rebuilds |
| # (e.g. to pick up upstream package updates without touching the file). |
| |
| .build:docker: |
| stage: deploy |
| image: docker:latest |
| services: |
| - docker:dind |
| variables: |
| DOCKER_TLS_CERTDIR: "/certs" |
| # needs: [] lets these jobs run without waiting for build/test stages, |
| # since the new image is only consumed by future pipelines anyway. |
| needs: [] |
| before_script: |
| - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY |
| |
| .build:docker:linux:amd64: |
| extends: .build:docker |
| tags: |
| - saas-linux-small-amd64 |
| |
| .build:docker:linux:arm64: |
| extends: .build:docker |
| tags: |
| - saas-linux-small-arm64 |
| |
| build:docker:ubuntu-24.04-amd64-smoketest-build: |
| extends: .build:docker:linux:amd64 |
| script: |
| - docker buildx build --platform linux/amd64 |
| -t $EIGEN_CI_IMAGE_LINUX_AMD64_SMOKETEST_BUILD |
| --push |
| ci/docker/ubuntu-24.04-amd64-smoketest-build/ |
| rules: |
| - if: $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH |
| changes: |
| - ci/docker/ubuntu-24.04-amd64-smoketest-build/Dockerfile |
| - if: $CI_PROJECT_NAMESPACE == "libeigen" |
| when: manual |
| allow_failure: true |
| |
| build:docker:ubuntu-24.04-amd64-smoketest-run: |
| extends: .build:docker:linux:amd64 |
| script: |
| - docker buildx build --platform linux/amd64 |
| -t $EIGEN_CI_IMAGE_LINUX_AMD64_SMOKETEST_RUN |
| --push |
| ci/docker/ubuntu-24.04-amd64-smoketest-run/ |
| rules: |
| - if: $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH |
| changes: |
| - ci/docker/ubuntu-24.04-amd64-smoketest-run/Dockerfile |
| - if: $CI_PROJECT_NAMESPACE == "libeigen" |
| when: manual |
| allow_failure: true |
| |
| build:docker:ubuntu-24.04-arm64-smoketest-build: |
| extends: .build:docker:linux:arm64 |
| script: |
| - docker buildx build --platform linux/arm64 |
| -t $EIGEN_CI_IMAGE_LINUX_ARM64_SMOKETEST_BUILD |
| --push |
| ci/docker/ubuntu-24.04-arm64-smoketest-build/ |
| rules: |
| - if: $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH |
| changes: |
| - ci/docker/ubuntu-24.04-arm64-smoketest-build/Dockerfile |
| - if: $CI_PROJECT_NAMESPACE == "libeigen" |
| when: manual |
| allow_failure: true |
| |
| build:docker:ubuntu-24.04-arm64-smoketest-run: |
| extends: .build:docker:linux:arm64 |
| script: |
| - docker buildx build --platform linux/arm64 |
| -t $EIGEN_CI_IMAGE_LINUX_ARM64_SMOKETEST_RUN |
| --push |
| ci/docker/ubuntu-24.04-arm64-smoketest-run/ |
| rules: |
| - if: $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH |
| changes: |
| - ci/docker/ubuntu-24.04-arm64-smoketest-run/Dockerfile |
| - if: $CI_PROJECT_NAMESPACE == "libeigen" |
| when: manual |
| allow_failure: true |