mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-06-05 05:20:34 +00:00
f233a21787
Since the pipeline changed to use ucuntu22.04 runners, the nighty debian packages do not work on debian buster anymore.
This change updates the pipeline to build for Ubuntu 20.04 and 22.04 as well as for
Debian 10, 11 and 12.
The distribution specific apt sources are as follows:
"deb http://repo.aptly.info/nightly-bookworm bookworm main"
(replace bookworm with focal, buster, bullseye. Install aptly repo key with: curl -fsS https://www.aptly.info/pubkey.txt | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/aptly.gpg)
The builds on focal will also release to the legacy nightly apt repo: https://github.com/aptly-dev/aptly/actions/runs/8723898496/job/23933824692#step:7:24
This only affects nightly builds, for now.
Pipeline example: [](https://github.com/aptly-dev/aptly/actions/runs/8723898496)
169 lines
4.6 KiB
YAML
169 lines
4.6 KiB
YAML
# Based on https://github.com/aptly-dev/aptly/blob/master/.travis.yml
|
|
|
|
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
branches:
|
|
- 'master'
|
|
|
|
defaults:
|
|
run:
|
|
# see: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#using-a-specific-shell
|
|
shell: bash --noprofile --norc -eo pipefail -x {0}
|
|
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
|
|
jobs:
|
|
build:
|
|
name: test
|
|
runs-on: ubuntu-22.04
|
|
continue-on-error: false
|
|
timeout-minutes: 30
|
|
|
|
env:
|
|
NO_FTP_ACCESS: yes
|
|
BOTO_CONFIG: /dev/null
|
|
GO111MODULE: "on"
|
|
GOPROXY: "https://proxy.golang.org"
|
|
GOVER: '1.21'
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v3
|
|
with:
|
|
go-version: ${{ env.GOVER }}
|
|
|
|
- name: Get aptly version
|
|
run: |
|
|
make version
|
|
go generate
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Install O/S packages
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y graphviz gnupg2 gpgv2 git gcc make
|
|
|
|
- name: Install Python packages
|
|
run: |
|
|
pip install six packaging appdirs virtualenv
|
|
pip install -U pip setuptools
|
|
pip install -r system/requirements.txt
|
|
|
|
- name: Install Azurite
|
|
id: azuright
|
|
uses: potatoqualitee/azuright@v1.1
|
|
with:
|
|
directory: ${{ runner.temp }}
|
|
|
|
- name: Make
|
|
env:
|
|
RUN_LONG_TESTS: 'yes'
|
|
AZURE_STORAGE_ENDPOINT: "127.0.0.1:10000"
|
|
AZURE_STORAGE_ACCOUNT: "devstoreaccount1"
|
|
AZURE_STORAGE_ACCESS_KEY: "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
|
|
run: |
|
|
COVERAGE_DIR=${{ runner.temp }} make
|
|
|
|
- name: Merge code coverage
|
|
run: |
|
|
go install github.com/wadey/gocovmerge@latest
|
|
~/go/bin/gocovmerge unit.out ${{ runner.temp }}/*.out > coverage.txt
|
|
|
|
- name: Upload code coverage
|
|
uses: codecov/codecov-action@v2
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
files: coverage.txt
|
|
|
|
release:
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
name: [Ubuntu-20, Ubuntu-22, Debian-10, Debian-11, Debian-12]
|
|
include:
|
|
- name: Ubuntu-20
|
|
image: "ubuntu:20.04"
|
|
suite: focal
|
|
GOVER: '1.21'
|
|
install: "make ca-certificates git curl"
|
|
- name: Ubuntu-22
|
|
image: "ubuntu:22.04"
|
|
suite: jammy
|
|
install: "make ca-certificates git curl golang"
|
|
- name: Debian-10
|
|
image: "debian:buster"
|
|
suite: buster
|
|
GOVER: '1.21'
|
|
install: "make ca-certificates git curl"
|
|
- name: Debian-11
|
|
image: "debian:bullseye"
|
|
suite: bullseye
|
|
GOVER: '1.21'
|
|
install: "make ca-certificates git curl"
|
|
- name: Debian-12
|
|
image: "debian:bookworm"
|
|
suite: bookworm
|
|
install: "make ca-certificates git curl golang"
|
|
container:
|
|
image: ${{ matrix.image }}
|
|
env:
|
|
APT_LISTCHANGES_FRONTEND: none
|
|
DEBIAN_FRONTEND: noninteractive
|
|
steps:
|
|
- name: Install O/S packages
|
|
run: |
|
|
apt-get update
|
|
apt-get install -y --no-install-recommends ${{ matrix.install }}
|
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
echo GOVER: ${{ env.GOVER }}
|
|
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
# fetch the whole repo for `git describe` to
|
|
# work and get the nightly verion
|
|
fetch-depth: 0
|
|
|
|
- name: Setup Go
|
|
if: ${{ matrix.GOVER != '' }}
|
|
uses: actions/setup-go@v3
|
|
with:
|
|
go-version: ${{ matrix.GOVER }}
|
|
|
|
- name: Make Release
|
|
env:
|
|
GOBIN: /usr/local/bin
|
|
run: |
|
|
make release
|
|
|
|
- name: Publish nightly release to aptly
|
|
if: github.ref == 'refs/heads/master'
|
|
env:
|
|
APTLY_USER: ${{ secrets.APTLY_USER }}
|
|
APTLY_PASSWORD: ${{ secrets.APTLY_PASSWORD }}
|
|
run: |
|
|
./upload-artifacts.sh nightly ${{ matrix.suite }}
|
|
|
|
- name: Publish release to aptly
|
|
if: startsWith(github.event.ref, 'refs/tags')
|
|
env:
|
|
APTLY_USER: ${{ secrets.APTLY_USER }}
|
|
APTLY_PASSWORD: ${{ secrets.APTLY_PASSWORD }}
|
|
run: |
|
|
./upload-artifacts.sh release ${{ matrix.suite }}
|