From 23797bbd73f6a7c946ba26edc3dd1d06935373fd Mon Sep 17 00:00:00 2001 From: jschneck Date: Tue, 9 Jun 2026 18:47:24 -0400 Subject: [PATCH 1/6] ci: add reusable CI (build on PR, publish on tag) Calls avocado-linux/actions/.github/workflows/extension.yml@v1: install + ext build against the 2024 SDK on PRs; package + keyless publish to connect on tags. Build target auto-derived from avocado.yaml. --- .github/workflows/ci.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..deaeb06 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,19 @@ +name: CI + +# Thin caller — all logic lives in the shared reusable workflow. +# See https://github.com/avocado-linux/actions +on: + pull_request: + push: + tags: + - '[0-9]+.[0-9]+.[0-9]+' + - '[0-9]+.[0-9]+.[0-9]+-*' + +permissions: + contents: read + id-token: write # keyless publish to connect on tags (GitHub OIDC) + +jobs: + ci: + uses: avocado-linux/actions/.github/workflows/extension.yml@v1 + # All inputs optional; the build target is auto-derived from avocado.yaml. From 1d9ee72a0f208b1693dd0a664c53d641ac01bc86 Mon Sep 17 00:00:00 2001 From: Justin Schneck Date: Sun, 14 Jun 2026 16:24:26 -0400 Subject: [PATCH 2/6] chore: set extension version to 0.1.0 --- avocado.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/avocado.yaml b/avocado.yaml index 3a4249a..42b218f 100644 --- a/avocado.yaml +++ b/avocado.yaml @@ -2,7 +2,7 @@ supported_targets: '*' extensions: avocado-ext-dev: - version: 2024.1.0 + version: 0.1.0 release: r0 summary: Avocado development tools description: Avocado development tools From 8e44289ad8cff4a3e61b8bcaf6501e96cb090163 Mon Sep 17 00:00:00 2001 From: Justin Schneck Date: Sun, 14 Jun 2026 16:41:50 -0400 Subject: [PATCH 3/6] ci: adopt avocado-linux/actions v1 reusable workflows + changelog - test.yml: PR build check (target qemux86-64 @ 2026/edge) - release.yml: tag/dispatch package + publish (PAT auth) - CHANGELOG.md: 0.1.0 initial release --- .github/workflows/ci.yml | 19 ------------------- .github/workflows/release.yml | 27 +++++++++++++++++++++++++++ .github/workflows/test.yml | 21 +++++++++++++++++++++ CHANGELOG.md | 12 ++++++++++++ 4 files changed, 60 insertions(+), 19 deletions(-) delete mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/test.yml create mode 100644 CHANGELOG.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index deaeb06..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: CI - -# Thin caller — all logic lives in the shared reusable workflow. -# See https://github.com/avocado-linux/actions -on: - pull_request: - push: - tags: - - '[0-9]+.[0-9]+.[0-9]+' - - '[0-9]+.[0-9]+.[0-9]+-*' - -permissions: - contents: read - id-token: write # keyless publish to connect on tags (GitHub OIDC) - -jobs: - ci: - uses: avocado-linux/actions/.github/workflows/extension.yml@v1 - # All inputs optional; the build target is auto-derived from avocado.yaml. diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..f43fd6f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,27 @@ +name: Release + +# Package + publish on a version tag. The matrix lives here (the caller owns it); +# each leg calls the single-combo reusable helper. The publish feed is derived from +# distro-release/distro-channel. The tag must equal the avocado.yaml version. +on: + push: + tags: + - '[0-9]+.[0-9]+.[0-9]+' + - '[0-9]+.[0-9]+.[0-9]+-*' + workflow_dispatch: + +jobs: + publish: + strategy: + fail-fast: false + matrix: + include: + - { target: qemux86-64, distro-release: "2026", distro-channel: edge } + uses: avocado-linux/actions/.github/workflows/extension-release.yml@v1 + with: + target: ${{ matrix.target }} + distro-release: ${{ matrix.distro-release }} + distro-channel: ${{ matrix.distro-channel }} + secrets: + connect-token: ${{ secrets.AVOCADO_CONNECT_TOKEN }} + connect-org: ${{ secrets.AVOCADO_CONNECT_ORG }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..b2a8398 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,21 @@ +name: Test + +# "Does it build" check on PRs. The matrix lives here (the caller owns it); each leg +# calls the single-combo reusable helper. Add rows for more targets/feeds as needed. +on: + pull_request: + workflow_dispatch: + +jobs: + build: + strategy: + fail-fast: false + matrix: + include: + - { target: qemux86-64, distro-release: "2026", distro-channel: edge } + uses: avocado-linux/actions/.github/workflows/extension-test.yml@v1 + with: + target: ${{ matrix.target }} + distro-release: ${{ matrix.distro-release }} + distro-channel: ${{ matrix.distro-channel }} + repo-url: ${{ matrix.repo-url }} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..767995f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,12 @@ +# Changelog + +All notable changes to avocado-ext-dev are documented in this file. +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [0.1.0] + +### Added +- Initial release: Avocado development tools. +- CI via the shared `avocado-linux/actions` reusable workflows: PR build check + (`test.yml`) and tag-driven package + publish to the Avocado feed (`release.yml`). From 48198b2a15ae3cd505d51955aa4943a3cc0ded50 Mon Sep 17 00:00:00 2001 From: Justin Schneck Date: Tue, 23 Jun 2026 07:37:41 -0400 Subject: [PATCH 4/6] ci(release): also publish to 2024/edge-next Add a 2024/edge-next matrix row alongside 2026/edge so this extension also publishes into the 2024 pre-release test channel (edge-next), leaving 2024/edge served from its previous build. Renderers + the 854 bucket policy now permit writes to 2024/edge-next/*. --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f43fd6f..d1db88c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,6 +17,7 @@ jobs: matrix: include: - { target: qemux86-64, distro-release: "2026", distro-channel: edge } + - { target: qemux86-64, distro-release: "2024", distro-channel: edge-next } uses: avocado-linux/actions/.github/workflows/extension-release.yml@v1 with: target: ${{ matrix.target }} From cb49ee931366df8651a812534798ab26044311c7 Mon Sep 17 00:00:00 2001 From: Justin Schneck Date: Tue, 23 Jun 2026 14:35:09 -0400 Subject: [PATCH 5/6] ci(test): default CI to test against 2024/edge-next Point the test workflow's matrix at 2024/edge-next (was 2026/edge) so PRs validate each extension against the 2024 pre-release channel we now build/render. release.yml still publishes to both 2026/edge and 2024/edge-next. --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b2a8398..3a42642 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,7 +12,7 @@ jobs: fail-fast: false matrix: include: - - { target: qemux86-64, distro-release: "2026", distro-channel: edge } + - { target: qemux86-64, distro-release: "2024", distro-channel: edge-next } uses: avocado-linux/actions/.github/workflows/extension-test.yml@v1 with: target: ${{ matrix.target }} From d4e9f2a4f90bafe0ca39c6ed3da5a4b202714a86 Mon Sep 17 00:00:00 2001 From: Justin Schneck Date: Tue, 23 Jun 2026 14:39:27 -0400 Subject: [PATCH 6/6] ext: SDK image is release-scoped, not channel-scoped Use docker.io/avocadolinux/sdk:{{ env.AVOCADO_DISTRO_RELEASE }} (drop the -{{ env.AVOCADO_DISTRO_CHANNEL }} suffix). The SDK container is published per release, not per channel, so a channel like edge-next has no matching image tag; the release tag resolves for any channel (incl. edge-next test legs). --- avocado.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/avocado.yaml b/avocado.yaml index 42b218f..dabf83b 100644 --- a/avocado.yaml +++ b/avocado.yaml @@ -50,4 +50,4 @@ extensions: nativesdk-rsync: '*' sdk: - image: docker.io/avocadolinux/sdk:{{ env.AVOCADO_DISTRO_RELEASE }}-{{ env.AVOCADO_DISTRO_CHANNEL }} + image: docker.io/avocadolinux/sdk:{{ env.AVOCADO_DISTRO_RELEASE }}