Skip to content

dind

dind #3

Workflow file for this run

name: Build & Update with Arduino CLI
on:
push:
branches:
- main
- test_package_update
workflow_dispatch:
permissions:
contents: read
jobs:
build-and-update:
runs-on: ubuntu-22.04
# services:
# docker:
# image: docker:dind
# options: --privileged --shm-size=2g
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock:ro
# container:
# image: ubuntu:latest
env:
ARCH: amd64
APPCLI_REPO: arduino/arduino-app-cli
ROUTER_REPO: arduino/arduino-router
STABLE_DIR: build/stable
steps:
- name: Checkout
uses: actions/checkout@v4
# - name: Set up Docker
# uses: docker/setup-docker-action@v2
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
- name: Build Docker image (no cache)
run: |
docker build --no-cache -t mock-apt-repo -f test.Dockerfile .
- name: Ensure tools on runner
run: |
sudo apt-get update
sudo apt-get install -y jq curl docker.io
- name: Install Task (go-task)
run: |
curl -sL https://taskfile.dev/install.sh | sh -s -- -d -b ./bin
echo "$PWD/bin" >> $GITHUB_PATH
task --version
- name: Prepare folder
run: |
mkdir -p "${STABLE_DIR}"
- name: Checkout
uses: actions/checkout@v4
- name: Ensure curl & mkdir
run: |
sudo apt-get update
sudo apt-get install -y curl
mkdir -p "$STABLE_DIR"
# --- Arduino App CLI (.deb) ---
- name: Download arduino-app-cli .deb (from hard-coded tag page)
run: |
set -euo pipefail
BASE="https://github.com/arduino/arduino-app-cli"
# Use the "expanded_assets" page for the tag to get direct links
PAGE="$BASE/releases/expanded_assets/${TAG}"
REL_URL=$(curl -fsSL "$PAGE" | grep -oE '/arduino/arduino-app-cli/releases/download/'"$TAG"'/[^"]+\.deb' | head -n1)
test -n "$REL_URL"
URL="https://github.com${REL_URL}"
echo "Found asset: $URL"
curl -fL "$URL" -o "$STABLE_DIR/arduino-app-cli_${TAG}.deb"
ls -l "$STABLE_DIR"
# --- Arduino Router (.deb) ---
- name: Download arduino-router .deb (from hard-coded tag page)
run: |
set -euo pipefail
BASE="https://github.com/arduino/arduino-router"
PAGE="$BASE/releases/expanded_assets/${TAG}"
REL_URL=$(curl -fsSL "$PAGE" | grep -oE '/arduino/arduino-router/releases/download/'"$TAG"'/[^"]+\.deb' | head -n1)
test -n "$REL_URL"
URL="https://github.com${REL_URL}"
echo "Found asset: $URL"
curl -fL "$URL" -o "$STABLE_DIR/arduino-router_${TAG}.deb"
ls -l "$STABLE_DIR"
- name: Run mock-apt-repo container
run: |
docker run --rm -d \
--privileged \
--cgroupns=host \
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DOCKER_HOST=unix:///var/run/docker.sock \
--name apt-test-update \
mock-apt-repo
- name: Verify container is running
run: docker ps