Skip to content

Split dev packages #184

Split dev packages

Split dev packages #184

Workflow file for this run

name: build
on:
pull_request:
branches:
- master
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
env:
- ALPINE_VERSION=3.17 ROS_DISTRO=noetic ROS_DISTRIBUTION_TYPE=ros1
- ALPINE_VERSION=3.17 ROS_DISTRO=humble ROS_DISTRIBUTION_TYPE=ros2
- ALPINE_VERSION=3.20 ROS_DISTRO=noetic ROS_DISTRIBUTION_TYPE=ros1
- ALPINE_VERSION=3.20 ROS_DISTRO=noetic ROS_DISTRIBUTION_TYPE=ros1 SPLIT_DEV=yes
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build image
run: |
eval ${{ matrix.env }}
image="ros-abuild:${ALPINE_VERSION}-${ROS_DISTRO}"
docker build -t ${image} \
--build-arg ALPINE_VERSION=${ALPINE_VERSION} \
--build-arg ROS_DISTRO=${ROS_DISTRO} \
.
- name: Test
run: |
eval ${{ matrix.env }}
image="ros-abuild:${ALPINE_VERSION}-${ROS_DISTRO}"
if [[ ${ROS_DISTRIBUTION_TYPE} == "ros1" ]]; then
pkg_name="rospack"
git clone --depth=1 -b ${ROS_DISTRO}-devel https://github.com/ros/${pkg_name} /tmp/${pkg_name}
else
git clone --depth=1 -b ${ROS_DISTRO} https://github.com/ament/ament_index/ /tmp/ament_index
pkg_name="ament_index_cpp"
# keep only one package for testing
mv /tmp/ament_index/${pkg_name} /tmp/${pkg_name}
rm -rf /tmp/ament_index
fi
mkdir -p /tmp/apks
chmod a+w /tmp/apks
docker run --rm \
-v /tmp/${pkg_name}:/src/${pkg_name}:ro \
-v /tmp/apks:/packages \
-e SPLIT_DEV=${SPLIT_DEV} \
${image}
pkg_name=${pkg_name//_/-}
ls -l /tmp/apks/*/*
echo "Checking -dbg subpackage"
ls -l /tmp/apks/*/* | grep -e "ros-${ROS_DISTRO}-${pkg_name}-dbg-[[:alnum:]\._git]\+-r0.apk"
echo "Checking -doc subpackage"
ls -l /tmp/apks/*/* | grep -e "ros-${ROS_DISTRO}-${pkg_name}-doc-[[:alnum:]\._git]\+-r0.apk"
echo "Checking main package"
ls -l /tmp/apks/*/* | grep -e "ros-${ROS_DISTRO}-${pkg_name}-[[:alnum:]\._git]\+-r0.apk"
if [ "${SPLIT_DEV:-}" = 'yes' ]; then
echo "Checking dev package"
ls -l /tmp/apks/*/* | grep -e "ros-${ROS_DISTRO}-${pkg_name}-dev-[[:alnum:]\._git]\+-r0.apk"
fi
- name: Login to GitHub Container Registry
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Deploy
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
run: |
eval ${{ matrix.env }}
image="ros-abuild:${ALPINE_VERSION}-${ROS_DISTRO}"
docker tag ${image} ghcr.io/${{ github.repository_owner }}/${image}
docker push ghcr.io/${{ github.repository_owner }}/${image}