Skip to content

Use Docker BuildKit secrets for Conan authentication #503

Use Docker BuildKit secrets for Conan authentication

Use Docker BuildKit secrets for Conan authentication #503

Workflow file for this run

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 != '' }}