Compare commits

..
Author SHA1 Message Date
André Roth f04d2e390e add test workflow 2026-06-20 10:14:22 +02:00
André Roth 1c1c131b95 add github action for aptly upload 2026-06-20 10:14:22 +02:00
10 changed files with 61 additions and 93 deletions

No files matched your search

+21 -18
View File
@@ -24,7 +24,7 @@ jobs:
timeout-minutes: 30 timeout-minutes: 30
steps: steps:
- name: "Checkout Repository" - name: "Checkout Repository"
uses: actions/checkout@v7 uses: actions/checkout@v4
with: with:
# fetch the whole repo for `git describe` to work # fetch the whole repo for `git describe` to work
fetch-depth: 0 fetch-depth: 0
@@ -36,7 +36,7 @@ jobs:
make docker-unit-test make docker-unit-test
mkdir -p out/coverage mkdir -p out/coverage
mv unit.out out/coverage/ mv unit.out out/coverage/
- uses: actions/upload-artifact@v7 - uses: actions/upload-artifact@v4
with: with:
name: unit-tests-coverage name: unit-tests-coverage
path: out/ path: out/
@@ -60,7 +60,7 @@ jobs:
sudo apt-get install -y --no-install-recommends graphviz gnupg2 gpgv2 git gcc make devscripts python3 python3-requests-unixsocket python3-termcolor python3-swiftclient python3-boto python3-azure-storage python3-etcd3 python3-plyvel flake8 faketime dput-ng sudo apt-get install -y --no-install-recommends graphviz gnupg2 gpgv2 git gcc make devscripts python3 python3-requests-unixsocket python3-termcolor python3-swiftclient python3-boto python3-azure-storage python3-etcd3 python3-plyvel flake8 faketime dput-ng
- name: "Checkout Repository" - name: "Checkout Repository"
uses: actions/checkout@v7 uses: actions/checkout@v4
with: with:
# fetch the whole repo for `git describe` to work # fetch the whole repo for `git describe` to work
fetch-depth: 0 fetch-depth: 0
@@ -77,7 +77,7 @@ jobs:
id: goversion id: goversion
- name: "Setup Go" - name: "Setup Go"
uses: actions/setup-go@v7 uses: actions/setup-go@v3
with: with:
go-version: ${{ steps.goversion.outputs.GOVER }} go-version: ${{ steps.goversion.outputs.GOVER }}
@@ -108,7 +108,7 @@ jobs:
mkdir -p out/coverage mkdir -p out/coverage
COVERAGE_DIR=$PWD/out/coverage make system-test COVERAGE_DIR=$PWD/out/coverage make system-test
- uses: actions/upload-artifact@v7 - uses: actions/upload-artifact@v4
with: with:
name: system-tests-coverage name: system-tests-coverage
path: out/ path: out/
@@ -123,15 +123,15 @@ jobs:
- test - test
steps: steps:
- name: "Checkout Repository" - name: "Checkout Repository"
uses: actions/checkout@v7 uses: actions/checkout@v4
- name: "Download Unit Test Coverage" - name: "Download Unit Test Coverage"
uses: actions/download-artifact@v8 uses: actions/download-artifact@v4
with: with:
name: unit-tests-coverage name: unit-tests-coverage
- name: "Download System Test Coverage" - name: "Download System Test Coverage"
uses: actions/download-artifact@v8 uses: actions/download-artifact@v4
with: with:
name: system-tests-coverage name: system-tests-coverage
@@ -158,7 +158,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
name: ["Debian 13/trixie", "Debian 12/bookworm", "Ubuntu 26.04", "Ubuntu 24.04", "Ubuntu 22.04", "Ubuntu 20.04"] name: ["Debian 13/trixie", "Debian 12/bookworm", "Debian 11/bullseye", "Ubuntu 26.04", "Ubuntu 24.04", "Ubuntu 22.04", "Ubuntu 20.04"]
arch: ["amd64", "i386" , "arm64" , "armhf"] arch: ["amd64", "i386" , "arm64" , "armhf"]
include: include:
- name: "Debian 13/trixie" - name: "Debian 13/trixie"
@@ -167,6 +167,9 @@ jobs:
- name: "Debian 12/bookworm" - name: "Debian 12/bookworm"
suite: bookworm suite: bookworm
image: debian:bookworm-slim image: debian:bookworm-slim
- name: "Debian 11/bullseye"
suite: bullseye
image: debian:bullseye-slim
- name: "Ubuntu 26.04" - name: "Ubuntu 26.04"
suite: resolute suite: resolute
image: ubuntu:26.04 image: ubuntu:26.04
@@ -196,7 +199,7 @@ jobs:
git config --global --add safe.directory "$GITHUB_WORKSPACE" git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: "Checkout Repository" - name: "Checkout Repository"
uses: actions/checkout@v7 uses: actions/checkout@v4
with: with:
# fetch the whole repo for `git describe` to work # fetch the whole repo for `git describe` to work
fetch-depth: 0 fetch-depth: 0
@@ -209,7 +212,7 @@ jobs:
id: goversion id: goversion
- name: "Setup Go" - name: "Setup Go"
uses: actions/setup-go@v7 uses: actions/setup-go@v3
with: with:
go-version: ${{ steps.goversion.outputs.GOVER }} go-version: ${{ steps.goversion.outputs.GOVER }}
@@ -265,7 +268,7 @@ jobs:
- name: "Upload CI Artifacts" - name: "Upload CI Artifacts"
if: github.ref != 'refs/heads/master' && !startsWith(github.event.ref, 'refs/tags') if: github.ref != 'refs/heads/master' && !startsWith(github.event.ref, 'refs/tags')
uses: actions/upload-artifact@v7 uses: actions/upload-artifact@v4
with: with:
name: aptly_${{ steps.releaseversion.outputs.VERSION }}_${{ matrix.suite }}_${{ matrix.arch }} name: aptly_${{ steps.releaseversion.outputs.VERSION }}_${{ matrix.suite }}_${{ matrix.arch }}
path: build/ path: build/
@@ -287,7 +290,7 @@ jobs:
goarch: arm goarch: arm
steps: steps:
- name: "Checkout Repository" - name: "Checkout Repository"
uses: actions/checkout@v7 uses: actions/checkout@v4
with: with:
# fetch the whole repo for `git describe` to work # fetch the whole repo for `git describe` to work
fetch-depth: 0 fetch-depth: 0
@@ -298,7 +301,7 @@ jobs:
id: goversion id: goversion
- name: "Setup Go" - name: "Setup Go"
uses: actions/setup-go@v7 uses: actions/setup-go@v3
with: with:
go-version: ${{ steps.goversion.outputs.GOVER }} go-version: ${{ steps.goversion.outputs.GOVER }}
@@ -325,7 +328,7 @@ jobs:
make binaries GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }} make binaries GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }}
- name: "Upload Artifacts" - name: "Upload Artifacts"
uses: actions/upload-artifact@v7 uses: actions/upload-artifact@v4
if: startsWith(github.event.ref, 'refs/tags') if: startsWith(github.event.ref, 'refs/tags')
with: with:
name: aptly_${{ steps.releaseversion.outputs.VERSION }}_${{ matrix.goos }}_${{ matrix.goarch }} name: aptly_${{ steps.releaseversion.outputs.VERSION }}_${{ matrix.goos }}_${{ matrix.goarch }}
@@ -333,7 +336,7 @@ jobs:
compression-level: 0 # no compression compression-level: 0 # no compression
- name: "Upload CI Artifacts" - name: "Upload CI Artifacts"
uses: actions/upload-artifact@v7 uses: actions/upload-artifact@v4
if: "!startsWith(github.event.ref, 'refs/tags')" if: "!startsWith(github.event.ref, 'refs/tags')"
with: with:
name: aptly_${{ steps.releaseversion.outputs.VERSION }}_${{ matrix.goos }}_${{ matrix.goarch }} name: aptly_${{ steps.releaseversion.outputs.VERSION }}_${{ matrix.goos }}_${{ matrix.goarch }}
@@ -349,7 +352,7 @@ jobs:
if: startsWith(github.event.ref, 'refs/tags') if: startsWith(github.event.ref, 'refs/tags')
steps: steps:
- name: "Checkout Repository" - name: "Checkout Repository"
uses: actions/checkout@v7 uses: actions/checkout@v4
- name: "Get aptly version" - name: "Get aptly version"
env: env:
@@ -361,7 +364,7 @@ jobs:
id: releaseversion id: releaseversion
- name: "Download Artifacts" - name: "Download Artifacts"
uses: actions/download-artifact@v8 uses: actions/download-artifact@v4
with: with:
path: out/ path: out/
+2 -2
View File
@@ -15,7 +15,7 @@ jobs:
name: lint name: lint
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v7 - uses: actions/checkout@v4
- name: "Read go version from go.mod" - name: "Read go version from go.mod"
run: | run: |
@@ -23,7 +23,7 @@ jobs:
id: goversion id: goversion
- name: "Setup Go" - name: "Setup Go"
uses: actions/setup-go@v7 uses: actions/setup-go@v3
with: with:
go-version: ${{ steps.goversion.outputs.GOVER }} go-version: ${{ steps.goversion.outputs.GOVER }}
+21
View File
@@ -0,0 +1,21 @@
name: test aptly upload-lint
on:
push:
pull_request:
permissions:
contents: read
jobs:
aptly-upload:
name: upload
runs-on: ubuntu-latest
steps:
- name: Publish to aptly server
uses: neolynx/aptly-github-action/publish@v0.0.15
with:
directory: buildout
aptly_server: https://aptly.info
aptly_user: ${{ secrets.APTLY_USER }}
aptly_password: ${{ secrets.APTLY_PASSWORD }}
-4
View File
@@ -126,10 +126,6 @@ GUI for aptly API:
- `Python aptly GUI (via pyqt5) <https://github.com/chnyda/python-aptly-gui>`_ by Cedric Hnyda - `Python aptly GUI (via pyqt5) <https://github.com/chnyda/python-aptly-gui>`_ by Cedric Hnyda
Repository management:
- `AptlyPilot <https://github.com/mmayabi/AptlyPilot>`_ by Maryam Mayabi - Web-based management platform for Aptly repositories with Repository as Code workflows and lifecycle automation.
Scala sbt: Scala sbt:
- `sbt aptly plugin <https://github.com/amalakar/sbt-aptly>`_ by Arup Malakar - `sbt aptly plugin <https://github.com/amalakar/sbt-aptly>`_ by Arup Malakar
-1
View File
@@ -16,4 +16,3 @@ git push origin v$version master
- update version in content/download.md - update version in content/download.md
- push commit to master - push commit to master
- create release announcement on https://github.com/aptly-dev/aptly/discussions - create release announcement on https://github.com/aptly-dev/aptly/discussions
- update aptly infrastructure
+1 -1
View File
@@ -141,7 +141,7 @@ func apiGPGAddKey(c *gin.Context) {
// @Description Returns all public keys currently installed in the aptly GPG keyring. // @Description Returns all public keys currently installed in the aptly GPG keyring.
// @Description // @Description
// @Tags Mirrors // @Tags Mirrors
// @Param keyring query string false "Keyring file to list keys from (default: trustedkeys.gpg)" // @Param keyring query string false "Keyring file to list keys from (default: trustedkeys.gpg)" example(trustedkeys.gpg)
// @Produce json // @Produce json
// @Success 200 {object} gpgKeyListResponse "OK" // @Success 200 {object} gpgKeyListResponse "OK"
// @Failure 400 {object} Error "Bad Request" // @Failure 400 {object} Error "Bad Request"
+12 -11
View File
@@ -185,6 +185,18 @@ filesystem_publish_endpoints:
# # * size (compare file size) # # * size (compare file size)
# verify_method: md5 # verify_method: md5
# S3 Endpoint Support
#
# cloud storage). First, publishing
# endpoints should be described in aptly configuration file. Each endpoint has name
# and associated settings.
#
# In order to publish to S3, specify endpoint as `s3:endpoint-name:` before
# publishing prefix on the command line, e.g.:
#
# `aptly publish snapshot wheezy-main s3:test:`
#
# JFrog Artifactory Endpoint Support # JFrog Artifactory Endpoint Support
# #
# aptly can be configured to publish repositories directly to JFrog Artifactory. First, # aptly can be configured to publish repositories directly to JFrog Artifactory. First,
@@ -213,17 +225,6 @@ jfrog_publish_endpoints:
# api_key: api_key # api_key: api_key
# access_token: access_token # access_token: access_token
# S3 Endpoint Support
#
# cloud storage). First, publishing
# endpoints should be described in aptly configuration file. Each endpoint has name
# and associated settings.
#
# In order to publish to S3, specify endpoint as `s3:endpoint-name:` before
# publishing prefix on the command line, e.g.:
#
# `aptly publish snapshot wheezy-main s3:test:`
#
s3_publish_endpoints: s3_publish_endpoints:
# # Endpoint Name # # Endpoint Name
# test: # test:
-52
View File
@@ -1,55 +1,3 @@
aptly (1.6.3) stable; urgency=medium
* NEW FEATURES:
* Google Cloud Storage (GCS) publish backend (https://github.com/aptly-dev/aptly/pull/1550)
* dput-compatible file upload API (https://github.com/aptly-dev/aptly/pull/1436)
* JFrog Artifactory publish backend (https://github.com/aptly-dev/aptly/pull/1553)
* AppStream (DEP-11) mirror support (https://github.com/aptly-dev/aptly/pull/1543)
* Multiple GPG keys support (https://github.com/aptly-dev/aptly/pull/1479)
* GPG key list & delete API (https://github.com/aptly-dev/aptly/pull/1558)
* Edit mirror API endpoint (https://github.com/aptly-dev/aptly/pull/1535)
* NumPackages in list responses (https://github.com/aptly-dev/aptly/pull/1559)
* Mirror latest packages (https://github.com/aptly-dev/aptly/pull/1513)
* Reproducible builds / `SOURCE_DATE_EPOCH` support (https://github.com/aptly-dev/aptly/pull/1537), https://github.com/aptly-dev/aptly/pull/1542)
* `Release` file `Version` field support (https://github.com/aptly-dev/aptly/pull/1533)
* `InRelease` file `Signed-By` field support (https://github.com/aptly-dev/aptly/pull/1518), https://github.com/aptly-dev/aptly/pull/1519)
* GCP / Google Artifact Registry authentication (https://github.com/aptly-dev/aptly/pull/1505)
* Update publish label & origin (https://github.com/aptly-dev/aptly/pull/1484)
* Ubuntu 26.04 / resolute builds (https://github.com/aptly-dev/aptly/pull/1571)
* BUG FIXES:
* Race condition & concurrency fixes for the REST API (https://github.com/aptly-dev/aptly/pull/1574)
* Fix empty line in `Package-List` for source packages (https://github.com/aptly-dev/aptly/pull/1588)
* Publish: check storage exists before publishing (https://github.com/aptly-dev/aptly/pull/1587)
* S3 publish race condition (https://github.com/aptly-dev/aptly/pull/1594)
* Repo edit name optionally (https://github.com/aptly-dev/aptly/pull/1593)
* Fix crash in `aptly db recover` (https://github.com/aptly-dev/aptly/pull/1565)
* Fix deadlocks in task list (https://github.com/aptly-dev/aptly/pull/1529)
* Fix S3 re-upload issue (https://github.com/aptly-dev/aptly/pull/1480)
* Fix `aptly repo edit` API (https://github.com/aptly-dev/aptly/pull/1493)
* Fix out-of-disk-space error handling (https://github.com/aptly-dev/aptly/pull/1504)
* Fix `aptly mirror update` removing unrelated params (https://github.com/aptly-dev/aptly/pull/1466)
* Fix concurrent pool linking race condition (https://github.com/aptly-dev/aptly/pull/1481)
* Fix `dpkg`-compliant version comparison (https://github.com/aptly-dev/aptly/pull/1509)
* Fix Swagger property casing and spec errors (https://github.com/aptly-dev/aptly/pull/1510), https://github.com/aptly-dev/aptly/pull/1498)
* Remove useless nil check (https://github.com/aptly-dev/aptly/pull/1482)
* Format Go code with gofmt (https://github.com/aptly-dev/aptly/pull/1483)
* DEPENDENCIES CHANGES:
* Go toolchain → 1.25.0
* `go.opentelemetry.io/otel` → v1.41.0 (https://github.com/aptly-dev/aptly/pull/1586)
* `go.opentelemetry.io/otel/sdk` → v1.43.0 (https://github.com/aptly-dev/aptly/pull/1584)
* `github.com/go-jose/go-jose/v4` → v4.1.4 (https://github.com/aptly-dev/aptly/pull/1585)
* `github.com/go-git/go-git/v5` → v5.19.1 (https://github.com/aptly-dev/aptly/pull/1590)
* `github.com/ulikunitz/xz` → v0.5.15 (fixes 32-bit build failures)
* `golang.org/x/crypto` → v0.45.0 (https://github.com/aptly-dev/aptly/pull/1506)
* `google.golang.org/grpc` → v1.79.3 (https://github.com/aptly-dev/aptly/pull/1546)
* `github.com/aws/aws-sdk-go-v2/service/s3` → v1.97.3 (https://github.com/aptly-dev/aptly/pull/1554)
* `github.com/cloudflare/circl` → v1.6.3 (https://github.com/aptly-dev/aptly/pull/1461), https://github.com/aptly-dev/aptly/pull/1541)
* `requests` (Python, system tests) → 2.33.0 (https://github.com/aptly-dev/aptly/pull/1460), https://github.com/aptly-dev/aptly/pull/1547)
* `github.com/ProtonMail/go-crypto` → v1.4.0
* `golang.org/x/net` → v0.48.0
-- André Roth <neolynx@gmail.com> Wed, 24 Jun 2026 18:47:05 +0200
aptly (1.6.2) stable; urgency=medium aptly (1.6.2) stable; urgency=medium
* doc: add swagger doc for /api/gpg/key (https://github.com/aptly-dev/aptly/pull/1456) * doc: add swagger doc for /api/gpg/key (https://github.com/aptly-dev/aptly/pull/1456)
+1 -1
View File
@@ -1,6 +1,6 @@
module github.com/aptly-dev/aptly module github.com/aptly-dev/aptly
go 1.26 go 1.25.0
require ( require (
github.com/AlekSi/pointer v1.1.0 github.com/AlekSi/pointer v1.1.0
+3 -3
View File
@@ -2,7 +2,7 @@ FROM debian:trixie-slim
RUN echo 'deb http://deb.debian.org/debian trixie-backports main' > /etc/apt/sources.list.d/backports.list && \ RUN echo 'deb http://deb.debian.org/debian trixie-backports main' > /etc/apt/sources.list.d/backports.list && \
apt-get update -y && apt-get install -y --no-install-recommends curl gnupg bzip2 xz-utils ca-certificates vim procps \ apt-get update -y && apt-get install -y --no-install-recommends curl gnupg bzip2 xz-utils ca-certificates vim procps \
golang-1.26 golang-1.26-go golang-1.26-src \ golang-1.25 golang-1.25-go golang-1.25-src \
make git python3 python3-requests-unixsocket python3-termcolor python3-swiftclient python3-boto3 python3-azure-storage \ make git python3 python3-requests-unixsocket python3-termcolor python3-swiftclient python3-boto3 python3-azure-storage \
g++ python3-etcd3 python3-plyvel graphviz devscripts sudo dh-golang binutils-i686-linux-gnu binutils-aarch64-linux-gnu \ g++ python3-etcd3 python3-plyvel graphviz devscripts sudo dh-golang binutils-i686-linux-gnu binutils-aarch64-linux-gnu \
binutils-arm-linux-gnueabihf bash-completion zip ruby-dev lintian npm \ binutils-arm-linux-gnueabihf bash-completion zip ruby-dev lintian npm \
@@ -10,8 +10,8 @@ RUN echo 'deb http://deb.debian.org/debian trixie-backports main' > /etc/apt/sou
gcc-i686-linux-gnu gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu \ gcc-i686-linux-gnu gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu \
faketime dput-ng && \ faketime dput-ng && \
apt-get clean && rm -rf /var/lib/apt/lists/* && \ apt-get clean && rm -rf /var/lib/apt/lists/* && \
ln -sf /usr/lib/go-1.26/bin/go /usr/local/bin/go && \ ln -sf /usr/lib/go-1.25/bin/go /usr/local/bin/go && \
ln -sf /usr/lib/go-1.26/bin/gofmt /usr/local/bin/gofmt ln -sf /usr/lib/go-1.25/bin/gofmt /usr/local/bin/gofmt
RUN useradd -m --shell /bin/bash --home-dir /var/lib/aptly aptly RUN useradd -m --shell /bin/bash --home-dir /var/lib/aptly aptly
RUN sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/' /var/lib/aptly/.bashrc RUN sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/' /var/lib/aptly/.bashrc