mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-09-30 19:33:45 +08:00
Docker: merge opencl and base images (#31338)
* mergeem * don't change workdir old-commit-hash: ceecf39c54e95e1bf973ea221fb3c5e7f215aecb
This commit is contained in:
@@ -14,7 +14,6 @@ concurrency:
|
|||||||
env:
|
env:
|
||||||
PYTHONWARNINGS: error
|
PYTHONWARNINGS: error
|
||||||
BASE_IMAGE: openpilot-base
|
BASE_IMAGE: openpilot-base
|
||||||
CL_BASE_IMAGE: openpilot-base-cl
|
|
||||||
AZURE_TOKEN: ${{ secrets.AZURE_COMMADATACI_OPENPILOTCI_TOKEN }}
|
AZURE_TOKEN: ${{ secrets.AZURE_COMMADATACI_OPENPILOTCI_TOKEN }}
|
||||||
|
|
||||||
DOCKER_LOGIN: docker login ghcr.io -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }}
|
DOCKER_LOGIN: docker login ghcr.io -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -22,10 +21,6 @@ env:
|
|||||||
|
|
||||||
RUN: docker run --shm-size 1G -v $PWD:/tmp/openpilot -w /tmp/openpilot -e CI=1 -e PRE_COMMIT_HOME=/tmp/pre-commit -e PYTHONWARNINGS=error -e FILEREADER_CACHE=1 -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v $GITHUB_WORKSPACE/.ci_cache/pre-commit:/tmp/pre-commit -v $GITHUB_WORKSPACE/.ci_cache/scons_cache:/tmp/scons_cache -v $GITHUB_WORKSPACE/.ci_cache/comma_download_cache:/tmp/comma_download_cache -v $GITHUB_WORKSPACE/.ci_cache/openpilot_cache:/tmp/openpilot_cache $BASE_IMAGE /bin/bash -c
|
RUN: docker run --shm-size 1G -v $PWD:/tmp/openpilot -w /tmp/openpilot -e CI=1 -e PRE_COMMIT_HOME=/tmp/pre-commit -e PYTHONWARNINGS=error -e FILEREADER_CACHE=1 -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v $GITHUB_WORKSPACE/.ci_cache/pre-commit:/tmp/pre-commit -v $GITHUB_WORKSPACE/.ci_cache/scons_cache:/tmp/scons_cache -v $GITHUB_WORKSPACE/.ci_cache/comma_download_cache:/tmp/comma_download_cache -v $GITHUB_WORKSPACE/.ci_cache/openpilot_cache:/tmp/openpilot_cache $BASE_IMAGE /bin/bash -c
|
||||||
|
|
||||||
BUILD_CL: selfdrive/test/docker_build.sh cl
|
|
||||||
|
|
||||||
RUN_CL: docker run --shm-size 1G -v $PWD:/tmp/openpilot -w /tmp/openpilot -e CI=1 -e PYTHONWARNINGS=error -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v $GITHUB_WORKSPACE/.ci_cache/scons_cache:/tmp/scons_cache -v $GITHUB_WORKSPACE/.ci_cache/comma_download_cache:/tmp/comma_download_cache -v $GITHUB_WORKSPACE/.ci_cache/openpilot_cache:/tmp/openpilot_cache $CL_BASE_IMAGE /bin/bash -c
|
|
||||||
|
|
||||||
PYTEST: pytest --continue-on-collection-errors --cov --cov-report=xml --cov-append --durations=0 --durations-min=5 --hypothesis-seed 0 -n logical
|
PYTEST: pytest --continue-on-collection-errors --cov --cov-report=xml --cov-append --durations=0 --durations-min=5 --hypothesis-seed 0 -n logical
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -106,11 +101,6 @@ jobs:
|
|||||||
- uses: ./.github/workflows/setup-with-retry
|
- uses: ./.github/workflows/setup-with-retry
|
||||||
with:
|
with:
|
||||||
docker_hub_pat: ${{ secrets.DOCKER_HUB_PAT }}
|
docker_hub_pat: ${{ secrets.DOCKER_HUB_PAT }}
|
||||||
- name: Build and push CL Docker image
|
|
||||||
if: matrix.arch == 'x86_64'
|
|
||||||
run: |
|
|
||||||
unset TARGET_ARCHITECTURE
|
|
||||||
eval "$BUILD_CL"
|
|
||||||
|
|
||||||
docker_push_multiarch:
|
docker_push_multiarch:
|
||||||
name: docker push multiarch tag
|
name: docker push multiarch tag
|
||||||
@@ -258,15 +248,13 @@ jobs:
|
|||||||
key: regen-${{ hashFiles('.github/workflows/selfdrive_tests.yaml', 'selfdrive/test/process_replay/test_regen.py') }}
|
key: regen-${{ hashFiles('.github/workflows/selfdrive_tests.yaml', 'selfdrive/test/process_replay/test_regen.py') }}
|
||||||
- name: Build base Docker image
|
- name: Build base Docker image
|
||||||
run: eval "$BUILD"
|
run: eval "$BUILD"
|
||||||
- name: Build Docker image
|
|
||||||
run: eval "$BUILD_CL"
|
|
||||||
- name: Build openpilot
|
- name: Build openpilot
|
||||||
run: |
|
run: |
|
||||||
${{ env.RUN }} "scons -j$(nproc)"
|
${{ env.RUN }} "scons -j$(nproc)"
|
||||||
- name: Run regen
|
- name: Run regen
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
run: |
|
run: |
|
||||||
${{ env.RUN_CL }} "ONNXCPU=1 $PYTEST selfdrive/test/process_replay/test_regen.py && \
|
${{ env.RUN }} "ONNXCPU=1 $PYTEST selfdrive/test/process_replay/test_regen.py && \
|
||||||
chmod -R 777 /tmp/comma_download_cache"
|
chmod -R 777 /tmp/comma_download_cache"
|
||||||
|
|
||||||
test_modeld:
|
test_modeld:
|
||||||
@@ -279,9 +267,6 @@ jobs:
|
|||||||
- uses: ./.github/workflows/setup-with-retry
|
- uses: ./.github/workflows/setup-with-retry
|
||||||
- name: Build base Docker image
|
- name: Build base Docker image
|
||||||
run: eval "$BUILD"
|
run: eval "$BUILD"
|
||||||
- name: Build Docker image
|
|
||||||
# Sim docker is needed to get the OpenCL drivers
|
|
||||||
run: eval "$BUILD_CL"
|
|
||||||
- name: Build openpilot
|
- name: Build openpilot
|
||||||
run: |
|
run: |
|
||||||
${{ env.RUN }} "scons -j$(nproc)"
|
${{ env.RUN }} "scons -j$(nproc)"
|
||||||
@@ -289,14 +274,14 @@ jobs:
|
|||||||
- name: Run model replay with ONNX
|
- name: Run model replay with ONNX
|
||||||
timeout-minutes: 4
|
timeout-minutes: 4
|
||||||
run: |
|
run: |
|
||||||
${{ env.RUN_CL }} "unset PYTHONWARNINGS && \
|
${{ env.RUN }} "unset PYTHONWARNINGS && \
|
||||||
ONNXCPU=1 NO_NAV=1 coverage run selfdrive/test/process_replay/model_replay.py && \
|
ONNXCPU=1 NO_NAV=1 coverage run selfdrive/test/process_replay/model_replay.py && \
|
||||||
coverage combine && \
|
coverage combine && \
|
||||||
coverage xml"
|
coverage xml"
|
||||||
- name: Run unit tests
|
- name: Run unit tests
|
||||||
timeout-minutes: 4
|
timeout-minutes: 4
|
||||||
run: |
|
run: |
|
||||||
${{ env.RUN_CL }} "unset PYTHONWARNINGS && \
|
${{ env.RUN }} "unset PYTHONWARNINGS && \
|
||||||
$PYTEST selfdrive/modeld"
|
$PYTEST selfdrive/modeld"
|
||||||
- name: "Upload coverage to Codecov"
|
- name: "Upload coverage to Codecov"
|
||||||
uses: codecov/codecov-action@v3
|
uses: codecov/codecov-action@v3
|
||||||
|
|||||||
@@ -12,17 +12,12 @@ concurrency:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
BASE_IMAGE: openpilot-base
|
BASE_IMAGE: openpilot-base
|
||||||
CL_BASE_IMAGE: openpilot-base-cl
|
|
||||||
DOCKER_LOGIN: docker login ghcr.io -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }}
|
DOCKER_LOGIN: docker login ghcr.io -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
BUILD: selfdrive/test/docker_build.sh base
|
BUILD: selfdrive/test/docker_build.sh base
|
||||||
|
|
||||||
RUN: docker run --shm-size 1G -v $GITHUB_WORKSPACE:/tmp/openpilot -w /tmp/openpilot -e FILEREADER_CACHE=1 -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v $GITHUB_WORKSPACE/.ci_cache/scons_cache:/tmp/scons_cache -v $GITHUB_WORKSPACE/.ci_cache/comma_download_cache:/tmp/comma_download_cache -v $GITHUB_WORKSPACE/.ci_cache/openpilot_cache:/tmp/openpilot_cache $BASE_IMAGE /bin/bash -c
|
RUN: docker run --shm-size 1G -v $GITHUB_WORKSPACE:/tmp/openpilot -w /tmp/openpilot -e FILEREADER_CACHE=1 -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v $GITHUB_WORKSPACE/.ci_cache/scons_cache:/tmp/scons_cache -v $GITHUB_WORKSPACE/.ci_cache/comma_download_cache:/tmp/comma_download_cache -v $GITHUB_WORKSPACE/.ci_cache/openpilot_cache:/tmp/openpilot_cache $BASE_IMAGE /bin/bash -c
|
||||||
|
|
||||||
BUILD_CL: selfdrive/test/docker_build.sh cl
|
|
||||||
|
|
||||||
RUN_CL: docker run --shm-size 1G -v $GITHUB_WORKSPACE:/tmp/openpilot -w /tmp/openpilot -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v $GITHUB_WORKSPACE/.ci_cache/scons_cache:/tmp/scons_cache -v $GITHUB_WORKSPACE/.ci_cache/comma_download_cache:/tmp/comma_download_cache -v $GITHUB_WORKSPACE/.ci_cache/openpilot_cache:/tmp/openpilot_cache $CL_BASE_IMAGE /bin/bash -c
|
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
plotjuggler:
|
plotjuggler:
|
||||||
@@ -52,8 +47,6 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- uses: ./.github/workflows/setup-with-retry
|
- uses: ./.github/workflows/setup-with-retry
|
||||||
- name: Build base cl image
|
|
||||||
run: eval "$BUILD_CL"
|
|
||||||
- name: Setup to push to repo
|
- name: Setup to push to repo
|
||||||
if: github.ref == 'refs/heads/master' && github.repository == 'commaai/openpilot'
|
if: github.ref == 'refs/heads/master' && github.repository == 'commaai/openpilot'
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -22,6 +22,44 @@ RUN cd /tmp && \
|
|||||||
rm -rf arm/ && \
|
rm -rf arm/ && \
|
||||||
rm -rf thumb/nofp thumb/v6* thumb/v8* thumb/v7+fp thumb/v7-r+fp.sp
|
rm -rf thumb/nofp thumb/v6* thumb/v8* thumb/v7+fp thumb/v7-r+fp.sp
|
||||||
|
|
||||||
|
# Add OpenCL
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
apt-utils \
|
||||||
|
alien \
|
||||||
|
unzip \
|
||||||
|
tar \
|
||||||
|
curl \
|
||||||
|
xz-utils \
|
||||||
|
dbus \
|
||||||
|
gcc-arm-none-eabi \
|
||||||
|
tmux \
|
||||||
|
vim \
|
||||||
|
lsb-core \
|
||||||
|
libx11-6 \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
ARG INTEL_DRIVER=l_opencl_p_18.1.0.015.tgz
|
||||||
|
ARG INTEL_DRIVER_URL=https://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/15532
|
||||||
|
RUN mkdir -p /tmp/opencl-driver-intel
|
||||||
|
|
||||||
|
RUN cd /tmp/opencl-driver-intel && \
|
||||||
|
echo INTEL_DRIVER is $INTEL_DRIVER && \
|
||||||
|
curl -O $INTEL_DRIVER_URL/$INTEL_DRIVER && \
|
||||||
|
tar -xzf $INTEL_DRIVER && \
|
||||||
|
for i in $(basename $INTEL_DRIVER .tgz)/rpm/*.rpm; do alien --to-deb $i; done && \
|
||||||
|
dpkg -i *.deb && \
|
||||||
|
rm -rf $INTEL_DRIVER $(basename $INTEL_DRIVER .tgz) *.deb && \
|
||||||
|
mkdir -p /etc/OpenCL/vendors && \
|
||||||
|
echo /opt/intel/opencl_compilers_and_libraries_18.1.0.015/linux/compiler/lib/intel64_lin/libintelocl.so > /etc/OpenCL/vendors/intel.icd && \
|
||||||
|
cd / && \
|
||||||
|
rm -rf /tmp/opencl-driver-intel
|
||||||
|
|
||||||
|
ENV NVIDIA_VISIBLE_DEVICES all
|
||||||
|
ENV NVIDIA_DRIVER_CAPABILITIES graphics,utility,compute
|
||||||
|
ENV QTWEBENGINE_DISABLE_SANDBOX 1
|
||||||
|
|
||||||
|
RUN dbus-uuidgen > /etc/machine-id
|
||||||
|
|
||||||
ARG USER=batman
|
ARG USER=batman
|
||||||
ARG USER_UID=1000
|
ARG USER_UID=1000
|
||||||
RUN useradd -m -s /bin/bash -u $USER_UID $USER
|
RUN useradd -m -s /bin/bash -u $USER_UID $USER
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
FROM ghcr.io/commaai/openpilot-base:latest
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends\
|
|
||||||
apt-utils \
|
|
||||||
alien \
|
|
||||||
unzip \
|
|
||||||
tar \
|
|
||||||
curl \
|
|
||||||
xz-utils \
|
|
||||||
dbus \
|
|
||||||
gcc-arm-none-eabi \
|
|
||||||
tmux \
|
|
||||||
vim \
|
|
||||||
lsb-core \
|
|
||||||
libx11-6 \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Intel OpenCL driver
|
|
||||||
ARG INTEL_DRIVER=l_opencl_p_18.1.0.015.tgz
|
|
||||||
ARG INTEL_DRIVER_URL=https://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/15532
|
|
||||||
RUN mkdir -p /tmp/opencl-driver-intel
|
|
||||||
WORKDIR /tmp/opencl-driver-intel
|
|
||||||
RUN echo INTEL_DRIVER is $INTEL_DRIVER && \
|
|
||||||
curl -O $INTEL_DRIVER_URL/$INTEL_DRIVER && \
|
|
||||||
tar -xzf $INTEL_DRIVER && \
|
|
||||||
for i in $(basename $INTEL_DRIVER .tgz)/rpm/*.rpm; do alien --to-deb $i; done && \
|
|
||||||
dpkg -i *.deb && \
|
|
||||||
rm -rf $INTEL_DRIVER $(basename $INTEL_DRIVER .tgz) *.deb && \
|
|
||||||
mkdir -p /etc/OpenCL/vendors && \
|
|
||||||
echo /opt/intel/opencl_compilers_and_libraries_18.1.0.015/linux/compiler/lib/intel64_lin/libintelocl.so > /etc/OpenCL/vendors/intel.icd && \
|
|
||||||
rm -rf /tmp/opencl-driver-intel
|
|
||||||
ENV NVIDIA_VISIBLE_DEVICES all
|
|
||||||
ENV NVIDIA_DRIVER_CAPABILITIES graphics,utility,compute
|
|
||||||
ENV QTWEBENGINE_DISABLE_SANDBOX 1
|
|
||||||
|
|
||||||
RUN dbus-uuidgen > /etc/machine-id
|
|
||||||
|
|
||||||
@@ -7,9 +7,6 @@ elif [ "$1" = "sim" ]; then
|
|||||||
elif [ "$1" = "prebuilt" ]; then
|
elif [ "$1" = "prebuilt" ]; then
|
||||||
export DOCKER_IMAGE=openpilot-prebuilt
|
export DOCKER_IMAGE=openpilot-prebuilt
|
||||||
export DOCKER_FILE=Dockerfile.openpilot
|
export DOCKER_FILE=Dockerfile.openpilot
|
||||||
elif [ "$1" = "cl" ]; then
|
|
||||||
export DOCKER_IMAGE=openpilot-base-cl
|
|
||||||
export DOCKER_FILE=Dockerfile.openpilot_base_cl
|
|
||||||
else
|
else
|
||||||
echo "Invalid docker build image: '$1'"
|
echo "Invalid docker build image: '$1'"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM ghcr.io/commaai/openpilot-base-cl:latest
|
FROM ghcr.io/commaai/openpilot-base:latest
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
tmux \
|
tmux \
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
cd $DIR/../../
|
cd $DIR/../../
|
||||||
|
|
||||||
docker pull ghcr.io/commaai/openpilot-base-cl:latest
|
docker pull ghcr.io/commaai/openpilot-base:latest
|
||||||
docker build \
|
docker build \
|
||||||
--cache-from ghcr.io/commaai/openpilot-sim:latest \
|
--cache-from ghcr.io/commaai/openpilot-sim:latest \
|
||||||
-t ghcr.io/commaai/openpilot-sim:latest \
|
-t ghcr.io/commaai/openpilot-sim:latest \
|
||||||
|
|||||||
Reference in New Issue
Block a user