Use Docker BuildKit secrets for Conan authentication #503
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test Build Docker Images | |
| on: | |
| push: | |
| branches: | |
| - '*' | |
| paths-ignore: | |
| - '**.md' | |
| pull_request: | |
| branches: | |
| - '*' | |
| paths-ignore: | |
| - '**.md' | |
| jobs: | |
| build: | |
| runs-on: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-22.04-8c-32g-300h') || 'ubuntu-latest' }} | |
| env: | |
| DOCKER_CLI_EXPERIMENTAL: enabled | |
| DOCKER_BUILDKIT: '1' | |
| strategy: | |
| # Don't let a failure for one year affect the others | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - group: vfx-2025 | |
| name: vfx-2025 | |
| common_version: 5-clang18 | |
| common_version_noclang: 5 | |
| version: 2025-clang18 | |
| version_noclang: 2025 | |
| test: "" | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| - name: Activate Docker buildx | |
| uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0 | |
| with: | |
| driver-opts: env.BUILDKIT_STEP_LOG_MAX_SIZE=10485760 | |
| - name: Set up Python | |
| uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 | |
| with: | |
| python-version: 3.9 | |
| cache: 'pipenv' | |
| - name: Install pipenv | |
| run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python | |
| - name: Install aswfdocker and dependencies with pipenv | |
| run: pipenv install | |
| - name: Free up disk space | |
| run: | | |
| df -h | |
| sudo apt-get remove -y '^llvm-.*' 'php.*' '^cpp.*' '^g\+\+.*' '^clang.*' '^gfortran.*' \ | |
| '^dotnet-.*' '^libmono-.*' '^mono-.*' monodoc-http '^r-.*' '^ruby.*' \ | |
| ant ant-optional aria2 azure-cli firefox google-chrome-stable microsoft-edge-stable powershell \ | |
| imagemagick '^imagemagick-.*' '^libmagickcore-.*' '^libmagickwand-.*' kubectl mercurial mercurial-common subversion | |
| sudo apt-get autoremove -y | |
| sudo apt-get clean | |
| sudo rm -rf \ | |
| /usr/share/dotnet/ \ | |
| /usr/local/lib/android \ | |
| /opt/ghc \ | |
| /usr/local/share/powershell \ | |
| /usr/share/swift \ | |
| /usr/local/.ghcup \ | |
| /usr/local/aws-cli \ | |
| /usr/local/aws-sam-cli \ | |
| /usr/local/julia* \ | |
| /usr/lib/jvm || true | |
| sudo docker system prune -a | |
| df -h | |
| dpkg -l | |
| - name: Build Ninja and CMake (Conan) | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group common \ | |
| --version ${{ matrix.common_version_noclang }} \ | |
| --version ${{ matrix.common_version }} \ | |
| --use-conan \ | |
| --build-missing \ | |
| --target ninja \ | |
| --target cmake | |
| - name: Build Clang (Conan) | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group common \ | |
| --version ${{ matrix.common_version_noclang }} \ | |
| --version ${{ matrix.common_version }} \ | |
| --use-conan \ | |
| --build-missing \ | |
| --target clang | |
| - name: Build ci-common Docker Image for downstream images | |
| run: | | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type IMAGE \ | |
| --group common \ | |
| --version ${{ matrix.common_version }}\ | |
| --push NO | |
| - name: Build base1 system wrapper and level 1 Conan packages | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group base1-wrappers \ | |
| --group base1-1 \ | |
| --version ${{ matrix.version_noclang }} \ | |
| --use-conan \ | |
| --build-missing | |
| - name: Build base1 level 2 Conan packages | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group base1-2 \ | |
| --version ${{ matrix.version_noclang }} \ | |
| --use-conan \ | |
| --build-missing | |
| - name: Build base1 level 3 Conan packages | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group base1-3 \ | |
| --version ${{ matrix.version_noclang }} \ | |
| --use-conan \ | |
| --build-missing | |
| - name: Build base2 system wrapper and dependency Conan packages for ci-baseqt image | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group base2-wrappers \ | |
| --group base2-1 | |
| --version ${{ matrix.version_noclang }} \ | |
| --use-conan \ | |
| --build-missing | |
| - name: Build base2 level 2 Conan packages (Qt) for ci-baseqt image | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group base2-2 \ | |
| --version ${{ matrix.version_noclang }} \ | |
| --use-conan \ | |
| --build-missing | |
| - name: Build base3 Conan packages (PySide) for base image | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group base3 \ | |
| --version ${{ matrix.version_noclang }} \ | |
| --use-conan \ | |
| --build-missing | |
| - name: Build base and baseqt images | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type IMAGE \ | |
| --group base \ | |
| --version ${{ matrix.version }} \ | |
| --push NO | |
| - name: Build vfx1 system wrapper and level 1 Conan packages | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group vfx1-wrappers \ | |
| --group vfx1-1 \ | |
| --version ${{ matrix.version_noclang }} \ | |
| --use-conan \ | |
| --build-missing \ | |
| --push NO | |
| - name: Build vfx1 level 2 Conan packages | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group vfx1-2 \ | |
| --version ${{ matrix.version_noclang }} \ | |
| --use-conan \ | |
| --build-missing \ | |
| --push NO | |
| - name: Build vfx1 level 3 Conan packages | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group vfx1-3 \ | |
| --version ${{ matrix.version_noclang }} \ | |
| --use-conan \ | |
| --build-missing \ | |
| --push NO | |
| - name: Build vfx1 level 4 Conan packages | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group vfx1-4 \ | |
| --version ${{ matrix.version_noclang }} \ | |
| --use-conan \ | |
| --build-missing \ | |
| --push NO | |
| - name: Build vfx1 level 5 non-Conan packages | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group vfx1 \ | |
| --version ${{ matrix.version_noclang }} \ | |
| --build-missing \ | |
| --push NO | |
| - name: Build vfx2 level 1 Conan packages | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group vfx2-1 \ | |
| --version ${{ matrix.version_noclang }} \ | |
| --use-conan \ | |
| --build-missing \ | |
| --push NO | |
| - name: Build vfx2 level 2 non-Conan packages | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type PACKAGE \ | |
| --group vfx2 \ | |
| --version ${{ matrix.version_noclang }} \ | |
| --build-missing \ | |
| --push NO | |
| - name: Build vfx1 / vfx2 images | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type IMAGE \ | |
| --group vfx1 \ | |
| --group vfx2 \ | |
| --version ${{ matrix.version_noclang }} \ | |
| --push NO | |
| - name: Build vfx images | |
| run: | | |
| set -ex | |
| pipenv run aswfdocker \ | |
| --repo-uri $GITHUB_REPOSITORY \ | |
| --source-branch $GITHUB_REF \ | |
| --verbose \ | |
| build \ | |
| --ci-image-type IMAGE \ | |
| --group vfx3 \ | |
| --version ${{ matrix.version }} \ | |
| --push NO | |
| - run: | | |
| set -ex | |
| export DOCKER_ORG=`pipenv run aswfdocker --repo-uri $GITHUB_REPOSITORY --source-branch $GITHUB_REF getdockerorg` | |
| test_script=scripts/tests/${{ matrix.version }}/test_${{ matrix.test }}.sh | |
| if [ -f $test_script ] | |
| then | |
| echo "Going to run ${test_script}" | |
| echo "docker run -i --rm ${DOCKER_ORG}/ci-${{ matrix.test }}:${{ matrix.version }} run < ${test_script}" | |
| docker run -i --rm \ | |
| -v $(Pipeline.Workspace)/cache/ci-image_${{ matrix.name }}_${{ matrix.version }}/ccache:/tmp/ccache \ | |
| ${DOCKER_ORG}/ci-${{ matrix.test }}:${{ matrix.version }} run < ${test_script} | |
| else | |
| echo "No test script found $test_script" | |
| fi | |
| name: Run test script ${{ matrix.version }}/test_${{ matrix.test }}.sh to check Docker image | |
| if: ${{ matrix.test != '' }} |