mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-06-03 05:00:56 +00:00
0eccaf2b60
Before, a "partial" URL (either "localhost:port" or an endpoint URL *without* the account name as the subdomain) would be specified, and the full one would automatically be inferred. Although this is somewhat nice, it means that the endpoint string doesn't match the official Azure syntax: https://docs.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string This also raises issues for the creation of functional tests for Azure, as the code to determine the endpoint string needs to be duplicated there as well. Instead, it's just easiest to follow Azure's own standard, and then sidestep the need for any custom logic in the functional tests. Signed-off-by: Ryan Gonzalez <ryan.gonzalez@collabora.com>
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: "http://127.0.0.1:10000/devstoreaccount1"
|
|
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 }}
|