summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormbkma <[email protected]>2026-01-27 23:12:47 +0100
committermbkma <[email protected]>2026-01-28 10:34:49 +0100
commit4289785239bc7bfd67f2e977eaa816e7ee9a1d9f (patch)
treeaaef771bc563e395a598b72683d9435ada6cccaf
parent5b69f1cea1fb4259e213c9d80019beaecc8f8e7d (diff)
downloadcaja-extensions-gh-actions.tar.bz2
caja-extensions-gh-actions.tar.xz
ci: migrate from Travis CI to GitHub Actionsgh-actions
Replace Travis CI configuration with GitHub Actions workflows. Add CI build workflow for Debian, Fedora, Ubuntu, and Archlinux. Add release workflow for automated GitHub releases on tags. Add dependabot configuration for GHA pin updates. Remove obsolete .travis.yml.
-rw-r--r--.build.yml148
-rw-r--r--.github/dependabot.yml8
-rwxr-xr-x.github/workflows/archlinux.sh41
-rwxr-xr-x.github/workflows/builds.sh38
-rw-r--r--.github/workflows/builds.yml92
-rwxr-xr-x.github/workflows/debian.sh45
-rwxr-xr-x.github/workflows/fedora.sh39
-rwxr-xr-x.github/workflows/mate-desktop.sh147
-rw-r--r--.github/workflows/release.yml37
-rwxr-xr-x.github/workflows/ubuntu.sh45
-rw-r--r--.travis.yml75
11 files changed, 492 insertions, 223 deletions
diff --git a/.build.yml b/.build.yml
deleted file mode 100644
index 46c14bc..0000000
--- a/.build.yml
+++ /dev/null
@@ -1,148 +0,0 @@
-##########################################################
-# THE FOLLOWING LINES IS USED BY docker-build
-##########################################################
-requires:
- archlinux:
- # Useful URL: https://git.archlinux.org/svntogit/community.git/tree/caja-extensions
- - autoconf-archive
- - caja
- - clang
- - dbus-glib
- - gcc
- - git
- - gstreamer-plugins-base
- - gupnp
- - imagemagick
- - make
- - mate-common
- - python
- - samba
- - which
-
- debian:
- # Useful URL: https://github.com/mate-desktop/debian-packages
- # Useful URL: https://salsa.debian.org/debian-mate-team/caja-extensions
- - autoconf-archive
- - autopoint
- - clang
- - clang-tools
- - cppcheck
- - gcc
- - git
- - libcaja-extension-dev
- - libdbus-1-dev
- - libdbus-glib-1-dev
- - libdconf-dev
- - libgtk-3-dev
- - libgupnp-1.6-dev
- - libmate-desktop-dev
- - libstartup-notification0-dev
- - libxml2-utils
- - make
- - mate-common
- - pkg-config
- - libgstreamer-plugins-base1.0-dev
-
- fedora:
- # Useful URL: https://src.fedoraproject.org/cgit/rpms/caja-extensions.git
- - autoconf-archive
- - caja-devel
- - clang
- - clang-analyzer
- - cppcheck-htmlreport
- - dbus-glib-devel
- - dbus-glib-devel
- - gajim
- - gcc
- - git
- - gstreamer1-plugins-base-devel
- - gtk3-devel
- - gupnp-devel
- - make
- - mate-common
- - mate-desktop-devel
- - redhat-rpm-config
-
- ubuntu:
- - autoconf-archive
- - autopoint
- - clang
- - clang-tools
- - gcc
- - git
- - libcaja-extension-dev
- - libdbus-1-dev
- - libdbus-glib-1-dev
- - libdconf-dev
- - libgtk-3-dev
- - libgupnp-1.2-dev
- - libmate-desktop-dev
- - libstartup-notification0-dev
- - libxml2-utils
- - make
- - mate-common
- - pkg-config
- - libgstreamer-plugins-base1.0-dev
-
-variables:
- - 'CHECKERS="
- -enable-checker deadcode.DeadStores
- -enable-checker alpha.deadcode.UnreachableCode
- -enable-checker alpha.core.CastSize
- -enable-checker alpha.core.CastToStruct
- -enable-checker alpha.core.IdenticalExpr
- -enable-checker alpha.core.SizeofPtr
- -enable-checker alpha.security.ArrayBoundV2
- -enable-checker alpha.security.MallocOverflow
- -enable-checker alpha.security.ReturnPtrRange
- -enable-checker alpha.unix.SimpleStream
- -enable-checker alpha.unix.cstring.BufferOverlap
- -enable-checker alpha.unix.cstring.NotNullTerminated
- -enable-checker alpha.unix.cstring.OutOfBounds
- -enable-checker alpha.core.FixedAddr
- -enable-checker security.insecureAPI.strcpy"'
-
-before_scripts:
-
-build_scripts:
- - if [ ${DISTRO_NAME} == "debian" ];then
- - export CFLAGS+=" -Wsign-compare -Wunused-macros"
- - cppcheck --enable=warning,style,performance,portability,information,missingInclude .
- - fi
-
- - NOCONFIGURE=1 ./autogen.sh
- - scan-build $CHECKERS ./configure --enable-compile-warnings=maximum
- - if [ $CPU_COUNT -gt 1 ]; then
- - if [ ${DISTRO_NAME} == "debian" ];then
- - scan-build $CHECKERS --keep-cc --use-cc=clang --use-c++=clang++ -o html-report make -j $CPU_COUNT
- - make clean
- - fi
- - scan-build $CHECKERS --keep-cc -o html-report make -j $CPU_COUNT
- - else
- - if [ ${DISTRO_NAME} == "debian" ];then
- - scan-build $CHECKERS --keep-cc --use-cc=clang --use-c++=clang++ -o html-report make
- - make clean
- - fi
- - scan-build $CHECKERS --keep-cc -o html-report make
- - fi
-
-after_scripts:
- - if [ ${DISTRO_NAME} == "fedora" ];then
- - cppcheck --xml --output-file=cppcheck.xml --enable=warning,style,performance,portability,information,missingInclude .
- - cppcheck-htmlreport --title=${REPO_NAME} --file=cppcheck.xml --report-dir=cppcheck-htmlreport
- - ./gen-index -l 20 -i https://github.com/${OWNER_NAME}/mate-icon-theme/raw/master/mate/16x16/apps/system-file-manager.png
- - fi
- - make distcheck
-
-releases:
- draft: false
- prerelease: false
- checksum: true
- file_glob: true
- files: caja-extensions-*.tar.xz
- github_release:
- tags: true
- overwrite: true
- base_version: 1.20.0
- notify_servers:
- - https://release.mate-desktop.org/release
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..80851cd
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,8 @@
+# Enable dependabot to keep our GHA pins automatically
+# updated, so we don't fall too far behind in the future
+version: 2
+updates:
+ - package-ecosystem: github-actions
+ directory: "/"
+ schedule:
+ interval: weekly
diff --git a/.github/workflows/archlinux.sh b/.github/workflows/archlinux.sh
new file mode 100755
index 0000000..263938a
--- /dev/null
+++ b/.github/workflows/archlinux.sh
@@ -0,0 +1,41 @@
+#!/usr/bin/bash
+
+# Use grouped output messages
+infobegin() {
+ echo "::group::${1}"
+}
+infoend() {
+ echo "::endgroup::"
+}
+
+# Required packages on Archlinux
+requires=(
+ ccache # Use ccache to speed up build
+ clang # Build with clang on Archlinux
+)
+
+# https://gitlab.archlinux.org/archlinux/packaging/packages/caja-extensions
+requires+=(
+ autoconf-archive
+ caja
+ dbus-glib
+ gcc
+ gettext
+ git
+ glib2-devel
+ gst-plugins-base
+ imagemagick
+ make
+ mate-common
+ python
+ samba
+ which
+)
+
+infobegin "Update system"
+pacman --noconfirm -Syu
+infoend
+
+infobegin "Install dependency packages"
+pacman --noconfirm -S ${requires[@]}
+infoend
diff --git a/.github/workflows/builds.sh b/.github/workflows/builds.sh
new file mode 100755
index 0000000..b192d97
--- /dev/null
+++ b/.github/workflows/builds.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/bash
+
+set -e
+set -o pipefail
+
+CPUS=$(grep processor /proc/cpuinfo | wc -l)
+
+# Use grouped output messages
+infobegin() {
+ echo "::group::${1}"
+}
+infoend() {
+ echo "::endgroup::"
+}
+
+if [ -f autogen.sh ]; then
+ infobegin "Configure (autotools)"
+ NOCONFIGURE=1 ./autogen.sh
+ ./configure --prefix=/usr --enable-compile-warnings=maximum || {
+ cat config.log
+ exit 1
+ }
+ infoend
+
+ infobegin "Build (autotools)"
+ make -j ${CPUS}
+ infoend
+
+ infobegin "Check (autotools)"
+ make -j ${CPUS} check || {
+ true
+ }
+ infoend
+
+ infobegin "Distcheck (autotools)"
+ make -j ${CPUS} distcheck
+ infoend
+fi
diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml
new file mode 100644
index 0000000..150ab24
--- /dev/null
+++ b/.github/workflows/builds.yml
@@ -0,0 +1,92 @@
+name: CI Build
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+ workflow_dispatch:
+
+# cancel already running builds of the same branch or pull request
+concurrency:
+ group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.head_ref || github.sha }}
+ cancel-in-progress: true
+
+env:
+ MATE_DESKTOP_VERSION: 1.28.2
+ CACHE_PATH: /tmp/.cache
+
+jobs:
+ build:
+ name: Build on ${{matrix.container}} (using ${{matrix.cc}})
+ runs-on: ubuntu-latest
+ container:
+ image: ${{matrix.container}}
+ volumes:
+ - /tmp/.cache
+ - /var/cache/apt
+
+ strategy:
+ fail-fast: false # don't cancel other jobs in the matrix if one fails
+ matrix:
+ container:
+ [
+ "debian:testing",
+ "fedora:latest",
+ "ubuntu:rolling",
+ "archlinux:latest",
+ ]
+ cc: ["gcc"]
+ cxx: ["g++"]
+ include:
+ - container: "archlinux:latest"
+ cc: "clang"
+ cxx: "clang++"
+
+ env:
+ # Speed up build with ccache
+ CC: ccache ${{ matrix.cc }}
+ CXX: ccache ${{ matrix.cxx }}
+ CONTAINER: ${{ matrix.container }}
+
+ steps:
+ - name: Setup environment variables
+ id: distro-name
+ shell: bash
+ run: |
+ split=(${CONTAINER//:/ })
+ distro=${split[0]}
+ short_sha=${SHA:0:8}
+ echo "DISTRO=$distro" | tee -a $GITHUB_ENV
+ - name: Install git command
+ shell: bash
+ run: |
+ echo "::group::Install git ..."
+ apt-get update -qq && apt-get install --assume-yes git || true
+ dnf update -y && dnf install -y git || true
+ pacman --noconfirm -Sy git || true
+ echo "::endgroup::"
+ - name: Repository checkout
+ uses: actions/checkout@v5
+ - name: Install dependency packages
+ run: .github/workflows/${{ env.DISTRO }}.sh
+ - name: Enable ccache to speed up builds
+ uses: hendrikmuhs/[email protected]
+ with:
+ key: ${{ env.DISTRO }}-${{ matrix.cc }}
+
+ # INFO: Depends on mate-desktop 1.27.1+, so we should install it from source.
+ - name: Cache mate-desktop binary packages
+ uses: actions/cache@v5
+ id: cache-mate-desktop
+ with:
+ path: ${{ env.CACHE_PATH }}
+ key: ${{ env.DISTRO }}-build-mate-desktop-${{env.MATE_DESKTOP_VERSION}}
+ - name: Built and install mate-desktop from source
+ run: .github/workflows/mate-desktop.sh ${{env.MATE_DESKTOP_VERSION}} ${{ env.CACHE_PATH }}
+ # INFO: mate-desktop dependency install finished.
+
+ - name: Build the source code
+ run: .github/workflows/builds.sh
diff --git a/.github/workflows/debian.sh b/.github/workflows/debian.sh
new file mode 100755
index 0000000..1c25d5f
--- /dev/null
+++ b/.github/workflows/debian.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/bash
+
+# Use grouped output messages
+infobegin() {
+ echo "::group::${1}"
+}
+infoend() {
+ echo "::endgroup::"
+}
+
+# Required packages on Debian
+requires=(
+ ccache # Use ccache to speed up build
+)
+
+# https://salsa.debian.org/debian-mate-team/caja-extensions
+requires+=(
+ autoconf-archive
+ autopoint
+ gcc
+ git
+ libcaja-extension-dev
+ libdbus-1-dev
+ libdbus-glib-1-dev
+ libdconf-dev
+ libgtk-3-dev
+ libgupnp-1.6-dev
+ libmate-desktop-dev
+ libstartup-notification0-dev
+ libxml2-utils
+ make
+ mate-common
+ pkg-config
+ libgstreamer-plugins-base1.0-dev
+)
+
+infobegin "Update system"
+apt-get update -qq
+infoend
+
+infobegin "Install dependency packages"
+env DEBIAN_FRONTEND=noninteractive \
+ apt-get install --assume-yes \
+ ${requires[@]}
+infoend
diff --git a/.github/workflows/fedora.sh b/.github/workflows/fedora.sh
new file mode 100755
index 0000000..c9ab43d
--- /dev/null
+++ b/.github/workflows/fedora.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/bash
+
+# Use grouped output messages
+infobegin() {
+ echo "::group::${1}"
+}
+infoend() {
+ echo "::endgroup::"
+}
+
+# Required packages on Fedora
+requires=(
+ ccache # Use ccache to speed up build
+)
+
+# https://src.fedoraproject.org/cgit/rpms/caja-extensions.git
+requires+=(
+ autoconf-archive
+ caja-devel
+ dbus-glib-devel
+ gajim
+ gcc
+ git
+ gstreamer1-plugins-base-devel
+ gtk3-devel
+ gupnp-devel
+ make
+ mate-common
+ mate-desktop-devel
+ redhat-rpm-config
+)
+
+infobegin "Update system"
+dnf update -y
+infoend
+
+infobegin "Install dependency packages"
+dnf install -y ${requires[@]}
+infoend
diff --git a/.github/workflows/mate-desktop.sh b/.github/workflows/mate-desktop.sh
new file mode 100755
index 0000000..404375d
--- /dev/null
+++ b/.github/workflows/mate-desktop.sh
@@ -0,0 +1,147 @@
+#!/usr/bin/bash
+
+set -e
+set -o pipefail
+
+NAME="mate-desktop"
+TEMP_DIR=$(mktemp -d)
+OS=$(cat /etc/os-release | grep ^ID | head -n 1 | awk -F= '{ print $2}')
+TAG=$1
+CACHE_DIR=$2
+
+# Use grouped output messages
+infobegin() {
+ echo "::group::${1}"
+}
+infoend() {
+ echo "::endgroup::"
+}
+
+# Required packages to build mate-desktop
+# https://gitlab.archlinux.org/archlinux/packaging/packages/mate-desktop
+arch_requires=(
+ autoconf-archive
+ gobject-introspection
+ mate-common
+ intltool
+)
+
+# https://salsa.debian.org/debian-mate-team/mate-desktop/-/blob/master/debian/control
+debian_requires=(
+ autoconf-archive
+ gobject-introspection
+ gtk-doc-tools
+ intltool
+ iso-codes
+ libdconf-dev
+ libgdk-pixbuf-2.0-dev
+ libgirepository1.0-dev
+ libglib2.0-dev
+ libglib2.0-doc
+ libgtk-3-dev
+ libgtk-3-doc
+ librsvg2-bin
+ libstartup-notification0-dev
+ libx11-dev
+ libxml2-dev
+ libxrandr-dev
+ mate-common
+)
+
+# https://src.fedoraproject.org/rpms/mate-desktop/blob/rawhide/f/mate-desktop.spec
+fedora_requires=(
+ dconf-devel
+ desktop-file-utils
+ gobject-introspection-devel
+ make
+ mate-common
+ startup-notification-devel
+ gtk3-devel
+ iso-codes-devel
+ gobject-introspection-devel
+ cairo-gobject-devel
+)
+
+# https://git.launchpad.net/ubuntu/+source/mate-desktop/tree/debian/control
+ubuntu_requires=(
+ autoconf-archive
+ autopoint
+ gobject-introspection
+ gtk-doc-tools
+ intltool
+ iso-codes
+ libdconf-dev
+ libgdk-pixbuf-2.0-dev
+ libgirepository1.0-dev
+ libglib2.0-dev
+ libglib2.0-doc
+ libgtk-3-dev
+ libgtk-3-doc
+ librsvg2-bin
+ libstartup-notification0-dev
+ libx11-dev
+ libxml2-dev
+ libxrandr-dev
+ mate-common
+)
+
+requires=$(eval echo '${'"${OS}_requires[@]}")
+
+infobegin "Install Depends for mate-desktop"
+case ${OS} in
+arch)
+ pacman --noconfirm -Syu
+ pacman --noconfirm -S ${requires[@]}
+ ;;
+debian | ubuntu)
+ apt-get update -qq
+ env DEBIAN_FRONTEND=noninteractive \
+ apt-get install --assume-yes --no-install-recommends ${requires[@]}
+ ;;
+fedora)
+ dnf update -y
+ dnf install -y ${requires[@]}
+ ;;
+esac
+infoend
+
+# Use cached packages first
+if [ -f $CACHE_DIR/${NAME}-${TAG}.tar.xz ]; then
+ echo "Found cache package, reuse it"
+ tar -C / -Jxf $CACHE_DIR/${NAME}-${TAG}.tar.xz
+else
+ git clone --recurse-submodules https://github.com/mate-desktop/${NAME}
+
+ # Foldable output information
+ infobegin "Configure"
+ cd ${NAME}
+ git checkout v${TAG}
+ if [[ ${OS} == "debian" || ${OS} == "ubuntu" ]]; then
+ ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --libexecdir=/usr/lib/x86_64-linux-gnu || {
+ cat config.log
+ exit 1
+ }
+ else
+ ./autogen.sh --prefix=/usr || {
+ cat config.log
+ exit 1
+ }
+ fi
+ infoend
+
+ infobegin "Build"
+ make -j ${JOBS}
+ infoend
+
+ infobegin "Install"
+ make install
+ infoend
+
+ # Cache this package version
+ infobegin "Cache"
+ [ -d ${CACHE_DIR} ] || mkdir -p ${CACHE_DIR}
+ make install DESTDIR=${TEMP_DIR}
+ cd $TEMP_DIR
+ tar -J -cf $CACHE_DIR/${NAME}-${TAG}.tar.xz *
+ infoend
+fi
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..2b3d3c0
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,37 @@
+name: Release Version
+on:
+ push:
+ tags:
+ - "v*.*.*"
+
+env:
+ MATE_DESKTOP_VERSION: 1.28.2
+ CACHE_PATH: /tmp/.cache
+
+jobs:
+ release:
+ name: Release New Version
+ runs-on: ubuntu-latest
+ steps:
+ - name: Repository checkout
+ uses: actions/checkout@v5
+
+ - name: Install dependency packages
+ run: sudo .github/workflows/ubuntu.sh
+
+ - name: Install higher version Mate component packages
+ run: sudo .github/workflows/mate-desktop.sh ${{env.MATE_DESKTOP_VERSION}} ${{ env.CACHE_PATH }}
+
+ - name: Build the source code
+ run: .github/workflows/builds.sh autotools
+
+ - name: Install GH CLI
+ uses: dev-hanz-ops/[email protected]
+ with:
+ gh-cli-version: 2.72.0
+
+ - name: Create github release
+ run: |
+ gh release create ${{ github.ref_name }} --title ${{ github.ref_name }} --generate-notes caja-extensions-*.tar.xz
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/ubuntu.sh b/.github/workflows/ubuntu.sh
new file mode 100755
index 0000000..9213e40
--- /dev/null
+++ b/.github/workflows/ubuntu.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/bash
+
+# Use grouped output messages
+infobegin() {
+ echo "::group::${1}"
+}
+infoend() {
+ echo "::endgroup::"
+}
+
+# Required packages on Ubuntu
+requires=(
+ ccache # Use ccache to speed up build
+)
+
+# https://git.launchpad.net/ubuntu/+source/caja-extensions/tree/debian/control
+requires+=(
+ autoconf-archive
+ autopoint
+ gcc
+ git
+ libcaja-extension-dev
+ libdbus-1-dev
+ libdbus-glib-1-dev
+ libdconf-dev
+ libgtk-3-dev
+ libgupnp-1.6-dev
+ libmate-desktop-dev
+ libstartup-notification0-dev
+ libxml2-utils
+ make
+ mate-common
+ pkg-config
+ libgstreamer-plugins-base1.0-dev
+)
+
+infobegin "Update system"
+apt-get update -y
+infoend
+
+infobegin "Install dependency packages"
+env DEBIAN_FRONTEND=noninteractive \
+ apt-get install --assume-yes \
+ ${requires[@]}
+infoend
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 2c2e96e..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,75 +0,0 @@
-# vim: set ts=2 sts=2 sw=2 expandtab :
-dist: jammy
-language: shell
-os: linux
-services:
- - docker
-addons:
- apt:
- packages:
- - python3-pip
- - python3-setuptools
-
-branches:
- except:
- - gh-pages
-
-before_install:
- - curl -Ls -o docker-build https://github.com/mate-desktop/mate-dev-scripts/raw/master/travis/docker-build
- - curl -Ls -o gen-index https://github.com/mate-desktop/mate-dev-scripts/raw/master/travis/gen-index.sh
- - chmod +x docker-build gen-index
-
-install:
- - pip3 install PyGithub
- - ./docker-build --name ${DISTRO} --config .build.yml --install
-
-script:
- - ./docker-build --name ${DISTRO} --verbose --config .build.yml --build scripts
-
-notifications:
- irc:
- if: (tag OR branch = master) AND
- repo = "mate-desktop/caja-extensions"
- channels:
- - "irc.libera.chat#mate-dev"
- template:
- - "[%{repository_name}] %{author}: %{commit_subject}"
- - "[%{branch}] %{commit} %{message} %{build_url}"
- on_success: never
- on_failure: always
-
-deploy:
- - provider: pages
- edge: true
- token: $GITHUB_TOKEN
- keep_history: false
- committer_from_gh: true
- target_branch: gh-pages
- local_dir: html-report
- strategy: git
- on:
- all_branches: true
- condition: ${DISTRO} =~ ^fedora.*$
- - provider: script
- edge: true
- script: ./docker-build --verbose --config .build.yml --release github
- on:
- tags: true
- condition: "${TRAVIS_TAG} =~ ^v.*$ && ${DISTRO} =~ ^fedora.*$"
-
-after_success:
- - 'if [[ "$TRAVIS_SECURE_ENV_VARS" == "true" && "$TRAVIS_PULL_REQUEST" != "false" && ${DISTRO} =~ ^fedora.*$ ]]; then
- REPO_SLUG_ARRAY=(${TRAVIS_REPO_SLUG//\// });
- REPO_NAME=${REPO_SLUG_ARRAY[1]};
- URL="https://${REPO_NAME}.mate-desktop.dev";
- COMMENT="Code analysis completed";
- curl -H "Authorization: token $GITHUB_TOKEN" -X POST
- -d "{\"state\": \"success\", \"description\": \"$COMMENT\", \"context\":\"scan-build\", \"target_url\": \"$URL\"}"
- https://api.github.com/repos/${TRAVIS_REPO_SLUG}/statuses/${TRAVIS_PULL_REQUEST_SHA};
- fi'
-
-env:
-# - DISTRO="archlinux:latest"
- - DISTRO="debian:testing"
- - DISTRO="fedora:latest"
-# - DISTRO="ubuntu:rolling"