Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions scripts/azure-pipelines/android/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ ENV APT_PACKAGES="$APT_PACKAGES libxext-dev libxfixes-dev libxrender-dev \
## PowerShell
ENV APT_PACKAGES="$APT_PACKAGES powershell"

# The BUILD_DATE argument forces cache invalidation so we get updated apt dependencies
ARG BUILD_DATE
RUN echo "Build date: ${BUILD_DATE}"

RUN <<END_OF_SCRIPT bash
set -e

Expand Down
2 changes: 1 addition & 1 deletion scripts/azure-pipelines/android/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
- name: ANDROID_DOCKER_IMAGE
value: 'vcpkgandroidwus.azurecr.io/vcpkg-android:2025-04-08'
- name: LINUX_DOCKER_IMAGE
value: 'vcpkgandroidwus.azurecr.io/vcpkg-linux:2025-04-08'
value: 'vcpkgandroidwus.azurecr.io/vcpkg-linux:2025-04-21'
steps:
# Note: /mnt is the Azure machines' temporary disk.
- bash: |
Expand Down
61 changes: 43 additions & 18 deletions scripts/azure-pipelines/create-docker-images.ps1
Original file line number Diff line number Diff line change
@@ -1,23 +1,44 @@
# Create Docker images for vcpkg

[CmdletBinding()]
param(
[switch]$OnlyAndroid,
[switch]$OnlyLinux
)

if ($OnlyAndroid -and $OnlyLinux) {
Write-Error "At most one of {-OnlyAndroid, -OnlyLinux} may be set"
return 1
}

if ($OnlyAndroid) {
Write-Host "Only building Android"
$BuildAndroid = $true
$BuildLinux = $false
} elseif ($OnlyLinux) {
Write-Host "Only building Linux"
$BuildAndroid = $false
$BuildLinux = $true
} else {
$BuildAndroid = $true
$BuildLinux = $true
}

function Build-Image {
param(
$AcrRegistry,
[string]$Location,
[string]$ImageName,
[string]$ContainerRegistryName,
[string]$Date
)

Push-Location $Location
try {

docker build . -t $ImageName

$remote = [string]::Format('{0}.azurecr.io/{1}:{2}', $ContainerRegistryName, $ImageName, $Date)
docker tag $ImageName $remote
docker build . -t $ImageName --build-arg BUILD_DATE=$Date
$remote = [string]::Format('{0}/{1}:{2}', $AcrRegistry.LoginServer, $ImageName, $Date)
docker image tag $ImageName $remote

docker push $remote

Write-Host "Remote: $remote"
} finally {
Pop-Location
Expand All @@ -32,14 +53,18 @@ $ErrorActionPreference = 'Stop'
$registry = Get-AzContainerRegistry -ResourceGroupName $ResourceGroupName -Name $ContainerRegistryName
Connect-AzContainerRegistry -Name $registry.Name

docker builder prune -f --filter "until=24h"
Build-Image -Location "$PSScriptRoot/android" `
-ImageName "vcpkg-android" `
-ContainerRegistryName $ContainerRegistryName `
-Date $Date
Build-Image -Location "$PSScriptRoot/linux" `
-ImageName "vcpkg-linux" `
-ContainerRegistryName $ContainerRegistryName `
-Date $Date

docker logout
if ($BuildAndroid) {
Build-Image -AcrRegistry $registry `
-Location "$PSScriptRoot/android" `
-ImageName "vcpkg-android" `
-Date $Date
}

if ($BuildLinux) {
Build-Image -AcrRegistry $registry `
-Location "$PSScriptRoot/linux" `
-ImageName "vcpkg-linux" `
-Date $Date
}

docker logout $registry.LoginServer
7 changes: 5 additions & 2 deletions scripts/azure-pipelines/linux/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# syntax=docker/dockerfile:1.4
# DisableDockerDetector "Used to build the container deployed to Azure Container Registry"
FROM ubuntu:jammy-20250126
FROM ubuntu:jammy-20250404
ADD provision-image.sh /provision-image.sh
RUN apt-get update && \
apt-get install --no-install-recommends -y curl gnupg ca-certificates
apt-get install --no-install-recommends -y curl gnupg ca-certificates
# The BUILD_DATE argument forces cache invalidation so we get updated apt dependencies
ARG BUILD_DATE
RUN echo "Build date: ${BUILD_DATE}"
RUN chmod +x /provision-image.sh && /provision-image.sh
2 changes: 1 addition & 1 deletion scripts/azure-pipelines/linux/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: VCPKG_DOWNLOADS
value: /mnt/vcpkg-ci/downloads
- name: LINUX_DOCKER_IMAGE
value: 'vcpkgandroidwus.azurecr.io/vcpkg-linux:2025-03-12'
value: 'vcpkgandroidwus.azurecr.io/vcpkg-linux:2025-04-21'
steps:
# Note: /mnt is the Azure machines' temporary disk.
- bash: |
Expand Down
48 changes: 40 additions & 8 deletions scripts/azure-pipelines/linux/provision-image.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,46 @@ apt-get -y upgrade
## vcpkg prerequisites
APT_PACKAGES="git curl zip unzip tar"

## common build dependencies
APT_PACKAGES="$APT_PACKAGES at libxt-dev gperf libxaw7-dev cifs-utils \
build-essential g++ gfortran libx11-dev libxkbcommon-x11-dev libxi-dev \
libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxinerama-dev libxxf86vm-dev \
libxcursor-dev yasm libnuma1 libnuma-dev libtool-bin libltdl-dev \
flex bison libbison-dev autoconf libudev-dev libncurses5-dev libtool libxrandr-dev \
xutils-dev dh-autoreconf autoconf-archive libgles2-mesa-dev ruby-full \
pkg-config meson nasm cmake ninja-build"
## essentials
APT_PACKAGES="$APT_PACKAGES \
autoconf autoconf-archive \
autopoint \
build-essential \
cmake \
gcc g++ gfortran \
libnuma1 libnuma-dev \
libtool libtool-bin libltdl-dev \
libudev-dev \
"

## vcpkg_find_acquire_program
APT_PACKAGES="$APT_PACKAGES \
bison libbison-dev \
flex \
gperf \
nasm \
ninja-build \
pkg-config \
python3 \
ruby-full \
swig \
yasm \
"

## mesa and X essentials
APT_PACKAGES="$APT_PACKAGES \
mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev libgles2-mesa-dev \
libx11-dev \
libxaw7-dev \
libxcursor-dev \
libxi-dev \
libxinerama-dev \
libxkbcommon-x11-dev \
libxrandr-dev \
libxt-dev \
libxxf86vm-dev \
xutils-dev \
"

## required by qt5-base
APT_PACKAGES="$APT_PACKAGES libxext-dev libxfixes-dev libxrender-dev \
Expand Down