Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CI] [GHA] Introduce additional Ubuntu versions via separate workflows #25234

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
c762735
add U20, 22, 24 to Docker building
akashchi Jun 25, 2024
28f88a9
update docker tag
akashchi Jun 25, 2024
443649e
rm unuses
akashchi Jun 25, 2024
b170723
newer pip
akashchi Jun 25, 2024
519890c
install pip via apt
akashchi Jun 25, 2024
f923856
use system python
akashchi Jun 25, 2024
5c583ad
rm
akashchi Jun 25, 2024
a0df984
use venv for system python
akashchi Jun 25, 2024
fff86c6
install protobuf on U24
akashchi Jun 25, 2024
d38f317
install setuptools and wheel
akashchi Jun 25, 2024
5a75480
protobuf
akashchi Jun 25, 2024
1a64896
set cmake args for onnx
akashchi Jun 25, 2024
954b8cb
rm protobuf
akashchi Jun 25, 2024
a82354c
do not use onnx from cache
akashchi Jun 25, 2024
364918d
use postfix for artifacts
akashchi Jun 26, 2024
e31ac3c
use Unix Makefiles for U24 onnx
akashchi Jun 26, 2024
1841675
provide missing arg
akashchi Jun 26, 2024
becc14a
use approach with inputs
akashchi Jun 26, 2024
07a4c80
split workflows by os
akashchi Jun 26, 2024
23d2489
merge
akashchi Jun 26, 2024
d47ee4b
update docker tag
akashchi Jun 26, 2024
ec9d210
provide os
akashchi Jun 26, 2024
d800cdf
Merge remote-tracking branch 'upstream/master' into ci/gha/split-linu…
akashchi Jun 26, 2024
22054dd
use 3.11
akashchi Jun 27, 2024
8188ff9
Merge remote-tracking branch 'upstream/master' into ci/gha/split-linu…
akashchi Jun 27, 2024
0822274
add U24
akashchi Jun 27, 2024
fdfc9e0
compiler
akashchi Jun 27, 2024
562b3da
fix image names
akashchi Jun 27, 2024
211c7f0
Merge remote-tracking branch 'upstream/master' into ci/gha/split-linu…
akashchi Jun 27, 2024
20cf3d7
use sys python across all Ubuntus
akashchi Jun 27, 2024
0e27dde
use 3.11 in U22 across all workflow
akashchi Jun 27, 2024
68a3da6
use proper name
akashchi Jun 27, 2024
4b7b953
use dedicated names
akashchi Jun 27, 2024
4109000
update runner; update wf name in docs
akashchi Jun 28, 2024
2ae39cd
Merge remote-tracking branch 'upstream/master' into ci/gha/split-linu…
akashchi Jun 28, 2024
ea8d228
rm unused Python from nvidia image
akashchi Jun 28, 2024
348b605
Merge branch 'master' into ci/gha/split-linux-workflow-by-os
akashchi Jun 28, 2024
3076162
change name
akashchi Jun 28, 2024
715b1a0
Merge branch 'ci/gha/split-linux-workflow-by-os' of github.com:akashc…
akashchi Jun 28, 2024
94a0d9e
Merge remote-tracking branch 'upstream/master' into ci/gha/split-linu…
akashchi Jun 28, 2024
8d2f2cd
add missing dependency
akashchi Jun 28, 2024
5f35fbb
use clean image
akashchi Jun 28, 2024
1704025
return bare image
akashchi Jul 1, 2024
3e0ee67
Merge remote-tracking branch 'upstream/master' into ci/gha/split-linu…
akashchi Jul 1, 2024
2cbae3a
use system Python for Debian packages
akashchi Jul 1, 2024
8cd195a
fix var name
akashchi Jul 1, 2024
ec0f8ee
change order
akashchi Jul 1, 2024
e91e851
use path to sys python
akashchi Jul 1, 2024
43db64d
adapt for U24
akashchi Jul 1, 2024
4b37109
Merge remote-tracking branch 'upstream/master' into ci/gha/split-linu…
akashchi Jul 2, 2024
c1d8bbc
rm iGPU from required
akashchi Jul 2, 2024
9d906ab
update docker tag
akashchi Jul 2, 2024
4d47b25
Merge remote-tracking branch 'upstream/master' into ci/gha/split-linu…
akashchi Jul 3, 2024
d39f36c
return as required
akashchi Jul 3, 2024
f6d9bac
rm
akashchi Jul 3, 2024
6baa832
Merge remote-tracking branch 'upstream/master' into ci/gha/split-linu…
akashchi Jul 11, 2024
0c30c56
review
akashchi Jul 11, 2024
626b598
Merge remote-tracking branch 'upstream/master' into ci/gha/split-linu…
akashchi Jul 22, 2024
34a39a6
merge
akashchi Jul 23, 2024
6675343
merge
akashchi Jul 26, 2024
7d6d962
rm unused
akashchi Jul 26, 2024
0959661
rm unsued env var
akashchi Jul 26, 2024
f754441
rm conditions, store artefacts for all Ubuntus
akashchi Jul 26, 2024
3523065
Merge remote-tracking branch 'upstream/master' into ci/gha/split-linu…
akashchi Jul 29, 2024
fb3ad84
use underscores for OS name
akashchi Jul 29, 2024
b55868e
use python3 explicetly
akashchi Jul 29, 2024
55fceb9
merge
akashchi Jul 29, 2024
6c8be1c
use py3 explicitly
akashchi Jul 29, 2024
79c3c94
Merge branch 'master' into ci/gha/split-linux-workflow-by-os
akashchi Jul 29, 2024
5cb5f1a
Merge remote-tracking branch 'upstream/master' into ci/gha/split-linu…
akashchi Jul 31, 2024
9e76ab8
add Debian and Samples jobs to U20/24 workflows; use better Ubuntu ve…
akashchi Jul 31, 2024
f679da1
add missing required jobs
akashchi Jul 31, 2024
58ed1d5
Merge branch 'ci/gha/split-linux-workflow-by-os' of github.com:akashc…
akashchi Jul 31, 2024
8879558
add missing deps
akashchi Jul 31, 2024
1e92863
add cmake args
akashchi Jul 31, 2024
ddd3336
return gcc-10
akashchi Jul 31, 2024
b747c15
rm
akashchi Jul 31, 2024
e7152c3
use system py
akashchi Jul 31, 2024
2c84f4d
rm unused
akashchi Jul 31, 2024
e59a45f
use install deps script
akashchi Jul 31, 2024
5247b07
add comment about gcc-10 on U24; use intall ov deps script in test Do…
akashchi Jul 31, 2024
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
2 changes: 1 addition & 1 deletion .github/actions/create_manifest/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ runs:
id: create_manifest
shell: ${{ runner.os == 'Windows' && 'pwsh' || 'bash' }}
run: >-
python ${{ env.ACTION_PATH }}/create_manifest.py
python3 ${{ env.ACTION_PATH }}/create_manifest.py
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ubuntu 20 failed with python: command not found as I've removed the virtual env from its Docker and used the system Python there. I guess we can explicitly use python3 as we already do in all steps across workflows.

--target_arch "${{ inputs.target_arch }}" --build_type "${{ inputs.build_type }}"
--save_to "${{ inputs.save_to }}" --product_type "${{ inputs.product_type }}" -r "${{ inputs.repos }}"
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/store_artifacts/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ runs:
id: copy_artifacts
shell: ${{ runner.os == 'Windows' && 'pwsh' || 'bash' }}
run: >-
python ${{ env.ACTION_PATH }}/store_artifacts.py
python3 ${{ env.ACTION_PATH }}/store_artifacts.py
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same as in #25234 (comment).

--storage_dir "${{ inputs.storage_dir }}" --storage_root "${{ inputs.storage_root }}"
-a "${{ inputs.artifacts }}"
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/dockerfiles/docker_tag
Original file line number Diff line number Diff line change
@@ -1 +1 @@
pr-25303
pr-25234
17 changes: 2 additions & 15 deletions .github/dockerfiles/ov_build/ubuntu_20_04_x64/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,8 @@ RUN apt-get update && \
apt-get install \
curl \
git \
ca-certificates \
gpg-agent \
tzdata \
# Pythons
python3.8-dev \
python3.8-venv \
python3.8-distutils \
python3.11-dev \
python3.11-venv \
python3.11-distutils \
# For Java API
default-jdk \
# Compiler \
Expand Down Expand Up @@ -57,16 +49,11 @@ RUN mkdir ${SCCACHE_HOME} && cd ${SCCACHE_HOME} && \
curl -SLO https://github.com/mozilla/sccache/releases/download/${SCCACHE_VERSION}/${SCCACHE_ARCHIVE} && \
tar -xzf ${SCCACHE_ARCHIVE} --strip-components=1 && rm ${SCCACHE_ARCHIVE}

ENV PATH="$SCCACHE_HOME:$PATH"
# Setup pip
ENV PIP_VERSION="24.0"
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python3.8 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
python3.11 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
python3 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
rm -f get-pip.py

# Use Python 3.11 as default instead of Python 3.8
# Using venv here 'cause other methods to switch the default Python on Ubuntu 20 break both system and wheels build
RUN python3.11 -m venv venv
ENV PATH="/venv/bin:$SCCACHE_HOME:$PATH"

ENV PIP_CACHE_DIR=/mount/caches/pip/linux/${PIP_VERSION}
20 changes: 5 additions & 15 deletions .github/dockerfiles/ov_build/ubuntu_22_04_x64/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,15 @@ RUN apt-get update && \
apt-get install \
curl \
git \
ca-certificates \
gpg-agent \
tzdata \
libtbb2 \
# Pythons
python3.8-dev \
python3.8-venv \
python3.8-distutils \
# Pythons \
python3.11-dev \
python3.11-venv \
python3.11-distutils \
# For Java API
default-jdk \
# Compiler \
gcc-10 \
g++-10 \
&& \
rm -rf /var/lib/apt/lists/*

Expand All @@ -44,10 +37,6 @@ RUN chmod +x /install_build_dependencies.sh && \
/install_build_dependencies.sh && \
rm -rf /var/lib/apt/lists/*

# Set gcc-10 as a default compiler
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 30 && \
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 30

# Install sscache
ARG SCCACHE_VERSION="v0.7.5"
ENV SCCACHE_HOME="/opt/sccache" \
Expand All @@ -58,15 +47,16 @@ RUN mkdir ${SCCACHE_HOME} && cd ${SCCACHE_HOME} && \
curl -SLO https://github.com/mozilla/sccache/releases/download/${SCCACHE_VERSION}/${SCCACHE_ARCHIVE} && \
tar -xzf ${SCCACHE_ARCHIVE} --strip-components=1 && rm ${SCCACHE_ARCHIVE}

ENV PATH="$SCCACHE_HOME:$PATH"
# Setup pip
ENV PIP_VERSION="24.0"
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python3.8 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
python3 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
python3.11 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
rm -f get-pip.py

# Use Python 3.11 as default instead of Python 3.8
# Using venv here 'cause other methods to switch the default Python on Ubuntu 20 break both system and wheels build
# Use Python 3.11 as default
# Using venv here 'cause other methods to switch the default Python on Ubuntu break both system and wheels build
RUN python3.11 -m venv venv
ENV PATH="/venv/bin:$SCCACHE_HOME:$PATH"

Expand Down
72 changes: 72 additions & 0 deletions .github/dockerfiles/ov_build/ubuntu_22_04_x64_nvidia/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
FROM openvinogithubactions.azurecr.io/dockerhub/nvidia/cuda:11.8.0-runtime-ubuntu22.04

USER root

# APT configuration
RUN echo 'Acquire::Retries "10";' > /etc/apt/apt.conf && \
echo 'APT::Get::Assume-Yes "true";' >> /etc/apt/apt.conf && \
echo 'APT::Get::Fix-Broken "true";' >> /etc/apt/apt.conf && \
echo 'APT::Get::no-install-recommends "true";' >> /etc/apt/apt.conf

ENV DEBIAN_FRONTEND="noninteractive" \
TZ="Europe/London"

RUN apt-get update && \
apt-get install software-properties-common && \
add-apt-repository --yes --no-update ppa:git-core/ppa && \
add-apt-repository --yes --no-update ppa:deadsnakes/ppa && \
apt-get update && \
apt-get install \
curl \
wget \
git \
gpg-agent \
tzdata \
# Python
python3.11-dev \
python3.11-venv \
python3.11-distutils \
# For Java API
default-jdk \
&& \
rm -rf /var/lib/apt/lists/*

# Install build dependencies
ADD install_build_dependencies.sh /install_build_dependencies.sh
RUN chmod +x /install_build_dependencies.sh && \
/install_build_dependencies.sh && \
rm -rf /var/lib/apt/lists/*

# Install sscache
ARG SCCACHE_VERSION="v0.7.5"
ENV SCCACHE_HOME="/opt/sccache" \
SCCACHE_PATH="/opt/sccache/sccache"

RUN mkdir ${SCCACHE_HOME} && cd ${SCCACHE_HOME} && \
SCCACHE_ARCHIVE="sccache-${SCCACHE_VERSION}-x86_64-unknown-linux-musl.tar.gz" && \
curl -SLO https://github.com/mozilla/sccache/releases/download/${SCCACHE_VERSION}/${SCCACHE_ARCHIVE} && \
tar -xzf ${SCCACHE_ARCHIVE} --strip-components=1 && rm ${SCCACHE_ARCHIVE}

# Install CUDA
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb && \
dpkg -i cuda-keyring_1.1-1_all.deb
RUN apt-get update && apt-get install -y cuda-runtime-11-8 cuda-11-8 && apt-get install -y \
libcudnn8=8.9.4.*-1+cuda11.8 \
libcudnn8-dev=8.9.4.*-1+cuda11.8 \
libcudnn8-samples=8.9.4.*-1+cuda11.8 \
libcutensor1=1.7.0.1-1 \
libcutensor-dev=1.7.0.1-1 \
cuda-drivers

# Setup pip
ENV PIP_VERSION="24.0"
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python3.11 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
rm -f get-pip.py

# Use Python 3.11 as default
# Using venv here 'cause other methods to switch the default Python on Ubuntu 22 break both system and wheels build
RUN python3.11 -m venv venv
ENV PATH="/venv/bin:$SCCACHE_HOME:$PATH"

ENV PIP_CACHE_DIR=/mount/caches/pip/linux/${PIP_VERSION}
68 changes: 68 additions & 0 deletions .github/dockerfiles/ov_build/ubuntu_24_04_x64/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
FROM openvinogithubactions.azurecr.io/dockerhub/ubuntu:24.04

USER root

# APT configuration
RUN echo 'Acquire::Retries "10";' > /etc/apt/apt.conf && \
echo 'APT::Get::Assume-Yes "true";' >> /etc/apt/apt.conf && \
echo 'APT::Get::Fix-Broken "true";' >> /etc/apt/apt.conf && \
echo 'APT::Get::no-install-recommends "true";' >> /etc/apt/apt.conf

ENV DEBIAN_FRONTEND="noninteractive" \
TZ="Europe/London"

RUN apt-get update && \
apt-get install software-properties-common && \
add-apt-repository --yes --no-update ppa:git-core/ppa && \
add-apt-repository --yes --no-update ppa:deadsnakes/ppa && \
apt-get update && \
apt-get install \
curl \
git \
gpg-agent \
tzdata \
# Python
python3-dev \
python3-venv \
python3-pip \
python3-full \
# For Java API
default-jdk \
# Compiler. TODO: remove and use the system one; if the system one is used, onnx fails to build
gcc-10 \
g++-10 \
&& \
rm -rf /var/lib/apt/lists/*

# Install build dependencies
ADD install_build_dependencies.sh /install_build_dependencies.sh
RUN chmod +x /install_build_dependencies.sh && \
/install_build_dependencies.sh && \
rm -rf /var/lib/apt/lists/*

# Set gcc-10 as a default compiler
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 30 && \
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 30

# Install sccache
ARG SCCACHE_VERSION="v0.7.5"
ENV SCCACHE_HOME="/opt/sccache" \
SCCACHE_PATH="/opt/sccache/sccache"

RUN mkdir ${SCCACHE_HOME} && cd ${SCCACHE_HOME} && \
SCCACHE_ARCHIVE="sccache-${SCCACHE_VERSION}-x86_64-unknown-linux-musl.tar.gz" && \
curl -SLO https://github.com/mozilla/sccache/releases/download/${SCCACHE_VERSION}/${SCCACHE_ARCHIVE} && \
tar -xzf ${SCCACHE_ARCHIVE} --strip-components=1 && rm ${SCCACHE_ARCHIVE}

ENV PATH="$SCCACHE_HOME:$PATH"

# Create a virtual environment for the system Python as Python in Ubuntu 24 complains about installing
# packages into the system Python
RUN python3 -m venv venv
ENV PATH="/venv/bin:$PATH"

# Setup pip
ENV PIP_VERSION="24.0"
RUN /venv/bin/python3 -m pip install --upgrade pip==${PIP_VERSION}

ENV PIP_CACHE_DIR=/mount/caches/pip/linux/${PIP_VERSION}
22 changes: 5 additions & 17 deletions .github/dockerfiles/ov_test/ubuntu_20_04_x64/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,34 +19,22 @@ RUN apt-get update && \
apt-get install \
curl \
git \
ca-certificates \
gpg-agent \
tzdata \
# Python
python3.11-dev \
python3.11-venv \
python3.11-distutils \
libhdf5-dev \
&& \
rm -rf /var/lib/apt/lists/*

# Install build dependencies
ADD install_build_dependencies.sh /install_build_dependencies.sh
RUN chmod +x /install_build_dependencies.sh && \
/install_build_dependencies.sh && \
# Install openvino dependencies
ADD scripts/install_dependencies/install_openvino_dependencies.sh /install_openvino_dependencies.sh
RUN chmod +x /install_openvino_dependencies.sh && \
/install_openvino_dependencies.sh && \
rm -rf /var/lib/apt/lists/*

# Setup pip
ENV PIP_VERSION="24.0"
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python3.8 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
python3.11 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
python3 get-pip.py --no-cache-dir pip==${PIP_VERSION} && \
rm -f get-pip.py

# Use Python 3.11 as default instead of Python 3.8
# Using venv here 'cause other methods to switch the default Python on Ubuntu 20 break both system and wheels build
RUN python3.11 -m venv venv
ENV PATH="/venv/bin:$SCCACHE_HOME:$PATH"

ENV PIP_CACHE_DIR=/mount/caches/pip/linux/${PIP_VERSION}
ENV PIP_INSTALL_PATH=/venv/lib/python3.11/site-packages
8 changes: 4 additions & 4 deletions .github/dockerfiles/ov_test/ubuntu_22_04_x64/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ RUN apt-get update && \
&& \
rm -rf /var/lib/apt/lists/*

# Install build dependencies
ADD install_build_dependencies.sh /install_build_dependencies.sh
RUN chmod +x /install_build_dependencies.sh && \
/install_build_dependencies.sh && \
# Install openvino dependencies
ADD scripts/install_dependencies/install_openvino_dependencies.sh /install_openvino_dependencies.sh
RUN chmod +x /install_openvino_dependencies.sh && \
/install_openvino_dependencies.sh && \
rm -rf /var/lib/apt/lists/*

# Setup pip
Expand Down
44 changes: 44 additions & 0 deletions .github/dockerfiles/ov_test/ubuntu_24_04_x64/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
FROM openvinogithubactions.azurecr.io/dockerhub/ubuntu:24.04

USER root

# APT configuration
RUN echo 'Acquire::Retries "10";' > /etc/apt/apt.conf && \
echo 'APT::Get::Assume-Yes "true";' >> /etc/apt/apt.conf && \
echo 'APT::Get::Fix-Broken "true";' >> /etc/apt/apt.conf && \
echo 'APT::Get::no-install-recommends "true";' >> /etc/apt/apt.conf

ENV DEBIAN_FRONTEND="noninteractive" \
TZ="Europe/London"

RUN apt-get update && \
apt-get install software-properties-common && \
apt-get update && \
apt-get install \
curl \
git \
gpg-agent \
tzdata \
# Python
python3-full \
libhdf5-dev \
&& \
rm -rf /var/lib/apt/lists/*

# Install openvino dependencies
ADD scripts/install_dependencies/install_openvino_dependencies.sh /install_openvino_dependencies.sh
RUN chmod +x /install_openvino_dependencies.sh && \
/install_openvino_dependencies.sh && \
rm -rf /var/lib/apt/lists/*

# Create a virtual environment for the system Python as Python in Ubuntu 24 complains about installing
# packages into the system Python
RUN python3 -m venv venv
ENV PATH="/venv/bin:$PATH"

# Setup pip
ENV PIP_VERSION="24.0"
RUN /venv/bin/python3 -m pip install --upgrade pip==${PIP_VERSION}

ENV PIP_CACHE_DIR=/mount/caches/pip/linux/${PIP_VERSION}
ENV PIP_INSTALL_PATH=/venv/lib/python3/site-packages
Loading
Loading