Compare commits
62 Commits
21bcea8054
...
c1126d408f
Author | SHA1 | Date |
---|---|---|
pepe | c1126d408f | |
pepe | 061c7e17d7 | |
Tristan | 9cb0c2eeb7 | |
Tristan | e71e421807 | |
Tristan | 194563879b | |
Tristan | 795f632c9b | |
Tristan | 067ef5336d | |
Tristan | 817a0079ff | |
Tristan | 371278e75f | |
Tristan | 9702f96ba0 | |
Tristan | 2b26573f1d | |
Tristan | fa1beddbec | |
Tristan | 9c1a13681c | |
Tristan | 975878b941 | |
Tristan | 761bccadeb | |
Tristan | a26fabe908 | |
Tristan | 05344aef65 | |
Tristan | ed31dff1c5 | |
Tristan | 4888f7c869 | |
Tristan | 36e84bc54c | |
Tristan | d12b1433fe | |
Tristan | 3361b0e4d0 | |
Tristan | e64a9c4953 | |
Tristan | dcecc653c8 | |
Tristan | 64fd603ccc | |
Tristan | 96b0709507 | |
Tristan | 35f00bcfde | |
Tristan | 22ec656f90 | |
Tristan | ea70b6ee0b | |
Tristan | cfc4de3891 | |
Tristan | 5831164ca8 | |
Tristan | af1523246b | |
Tristan | a3a77900ff | |
Tristan | 8eea0a2573 | |
Tristan | 5cb27769c6 | |
Tristan | 46640ccb6a | |
Tristan | d68227c3a5 | |
Tristan | 3f862d79f6 | |
Tristan | ebd38fb082 | |
Tristan | 802995fe61 | |
Tristan | 13d0df84bc | |
Tristan | 7e948ce854 | |
Tristan | 354298869c | |
Tristan | 017ecbe2e1 | |
Tristan | 859199f151 | |
Tristan | e4550c93fa | |
Tristan | 48dc3eaedd | |
Tristan | f6a0654c4d | |
Tristan | c38793fd15 | |
Tristan | 9f9e0548b8 | |
Tristan | f100d93140 | |
Tristan | 1cfaa656d1 | |
Tristan | 26bd931cb6 | |
Tristan | 0f430ba122 | |
Tristan | 260921b4e2 | |
Tristan | ae2f85e5c1 | |
Tristan | 58c65b11ad | |
Tristan | f374c5e9df | |
Tristan | 51fa92f284 | |
Tristan | 935157a6eb | |
Tristan | 197568677e | |
Tristan | d334db82f7 |
|
@ -8,7 +8,7 @@ max_line_length = 120
|
|||
tab_width = 4
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.{md, yaml, yml}]
|
||||
[*.{md,yaml,yml}]
|
||||
indent_size = 2
|
||||
tab_width = 2
|
||||
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
name: Fetch HAProxy dependencies
|
||||
description: "Retrieve previously compiled build-time dependencies"
|
||||
|
||||
inputs:
|
||||
INSTALL_NATIVE_DEPS:
|
||||
description: Install native build dependencies
|
||||
required: false
|
||||
default: "true"
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
|
||||
steps:
|
||||
- name: Dependencies - Fetch - LUA
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: lua-dist.tar.gz
|
||||
path: deps/lua
|
||||
- name: Dependencies - Unpack - LUA
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -pv deps/lua/dist
|
||||
tar -C deps/lua/dist -xf deps/lua/lua-dist.tar.gz
|
||||
|
||||
- name: Dependencies - Fetch - PCRE2
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: pcre2-dist.tar.gz
|
||||
path: deps/pcre2
|
||||
- name: Dependencies - Unpack - PCRE2
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -pv deps/pcre2/dist
|
||||
tar -C deps/pcre2/dist -xf deps/pcre2/pcre2-dist.tar.gz
|
||||
|
||||
- name: Dependencies - Fetch - QuicTLS
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: quictls-dist.tar.gz
|
||||
path: deps/quictls
|
||||
- name: Dependencies - Unpack - QuicTLS
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -pv deps/quictls/dist
|
||||
tar -C deps/quictls/dist -xf deps/quictls/quictls-dist.tar.gz
|
||||
|
||||
- name: Dependencies - Fetch - VTest
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: vtest-dist.tar.gz
|
||||
path: deps/vtest
|
||||
- name: Dependencies - Unpack - VTest
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -pv deps/vtest/dist
|
||||
tar -C deps/vtest/dist -xf deps/vtest/vtest-dist.tar.gz
|
||||
|
||||
- name: Install native build dependencies
|
||||
if: ${{ inputs.INSTALL_NATIVE_DEPS == 'true' }}
|
||||
shell: bash
|
||||
run: |
|
||||
apt update && apt install -y \
|
||||
bzip2 \
|
||||
devscripts \
|
||||
debhelper \
|
||||
pkg-config \
|
||||
libpcre2-dev \
|
||||
libreadline-dev \
|
||||
libsystemd-dev \
|
||||
zlib1g-dev
|
|
@ -0,0 +1,14 @@
|
|||
name: Setup Debian-based OS dependencies
|
||||
description: |
|
||||
Because we live in a dumb world where I have to care about the source OS' libc version of the programs I compile...
|
||||
|
||||
Fuck static linking forever
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
|
||||
steps:
|
||||
- name: Install OS dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
./tool/setup-debian.sh
|
|
@ -0,0 +1,6 @@
|
|||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
|
@ -0,0 +1,39 @@
|
|||
on:
|
||||
push:
|
||||
branches: [ "*" ]
|
||||
tags: [ "*" ]
|
||||
|
||||
jobs:
|
||||
haproxy-dependencies:
|
||||
uses: "./.github/workflows/haproxy-deps.yml"
|
||||
with:
|
||||
DEBIAN_CODENAME: "bullseye"
|
||||
CLANG_VERSION: 14
|
||||
|
||||
dist-stable:
|
||||
needs: [ "haproxy-dependencies" ]
|
||||
uses: "./.github/workflows/haproxy-dist.yml"
|
||||
secrets: "inherit" # for Docker image publication
|
||||
with:
|
||||
DEBIAN_CODENAME: "bullseye"
|
||||
CLANG_VERSION: 14
|
||||
HAPROXY_FLAVOUR: "stable"
|
||||
# https://git.haproxy.org/?p=haproxy-2.7.git;a=commit;h=4dadaaafb20106619510fd3fc6f2819f47777729
|
||||
HAPROXY_GITREPO: "https://git.haproxy.org/?p=haproxy-2.7.git"
|
||||
HAPROXY_VERSION: "2.7-stable"
|
||||
HAPROXY_GITREF: "4dadaaafb20106619510fd3fc6f2819f47777729"
|
||||
HAPROXY_DATAPLANEAPI_VERSION: "v2.7"
|
||||
|
||||
dist-dev:
|
||||
needs: [ "haproxy-dependencies" ]
|
||||
uses: "./.github/workflows/haproxy-dist.yml"
|
||||
secrets: "inherit" # for Docker image publication
|
||||
with:
|
||||
DEBIAN_CODENAME: "bullseye"
|
||||
CLANG_VERSION: 14
|
||||
HAPROXY_FLAVOUR: "dev"
|
||||
# https://git.haproxy.org/?p=haproxy.git;a=commit;h=6fd2576d5ebbe90039cc918d01d0f62970f7cd67
|
||||
HAPROXY_GITREPO: "https://git.haproxy.org/?p=haproxy.git"
|
||||
HAPROXY_VERSION: "2.8-dev"
|
||||
HAPROXY_GITREF: "6fd2576d5ebbe90039cc918d01d0f62970f7cd67"
|
||||
HAPROXY_DATAPLANEAPI_VERSION: "master"
|
|
@ -0,0 +1,38 @@
|
|||
name: HAProxy dependencies
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
DEBIAN_CODENAME:
|
||||
required: true
|
||||
type: string
|
||||
CLANG_VERSION:
|
||||
required: true
|
||||
type: number
|
||||
|
||||
jobs:
|
||||
dependency:
|
||||
runs-on: ubuntu-latest
|
||||
container: "docker.io/library/debian:${{ inputs.DEBIAN_CODENAME }}"
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
strategy:
|
||||
matrix:
|
||||
dependency_name:
|
||||
- lua
|
||||
- pcre2
|
||||
- quictls
|
||||
- vtest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Setup OS
|
||||
uses: "./.github/actions/setup-os"
|
||||
- name: Build ${{ matrix.dependency_name }}
|
||||
run: make -C deps/${{ matrix.dependency_name }}
|
||||
- name: Archive ${{ matrix.dependency_name }} distribution
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ matrix.dependency_name }}-dist.tar.gz
|
||||
path: deps/${{ matrix.dependency_name }}/${{ matrix.dependency_name }}-dist.tar.gz
|
|
@ -0,0 +1,202 @@
|
|||
name: Build HAProxy version
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
DEBIAN_CODENAME:
|
||||
required: true
|
||||
type: string
|
||||
CLANG_VERSION:
|
||||
required: true
|
||||
type: number
|
||||
HAPROXY_FLAVOUR:
|
||||
required: true
|
||||
type: string
|
||||
HAPROXY_GITREPO:
|
||||
required: true
|
||||
type: string
|
||||
HAPROXY_VERSION:
|
||||
required: true
|
||||
type: string
|
||||
HAPROXY_GITREF:
|
||||
required: true
|
||||
type: string
|
||||
HAPROXY_DATAPLANEAPI_VERSION:
|
||||
required: true
|
||||
type: string
|
||||
|
||||
# For Docker publication
|
||||
env:
|
||||
REGISTRY: "ghcr.io"
|
||||
IMAGE_NAME: "${{ github.repository }}"
|
||||
|
||||
jobs:
|
||||
regtests:
|
||||
runs-on: ubuntu-latest
|
||||
container: "docker.io/library/debian:${{ inputs.DEBIAN_CODENAME }}"
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Setup OS
|
||||
uses: "./.github/actions/setup-os"
|
||||
- name: Fetch build-time dependencies
|
||||
uses: "./.github/actions/fetch-deps"
|
||||
- name: Build and test
|
||||
continue-on-error: true
|
||||
run: |
|
||||
make -C haproxy \
|
||||
HAPROXY_GITREPO="${{ inputs.HAPROXY_GITREPO }}" \
|
||||
HAPROXY_VERSION="${{ inputs.HAPROXY_VERSION }}" \
|
||||
HAPROXY_GITREF="${{ inputs.HAPROXY_GITREF }}" \
|
||||
BUILD_PATCHES_DIR="patches-${{ inputs.HAPROXY_FLAVOUR }}" \
|
||||
build test
|
||||
|
||||
dataplaneapi:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v4.0.0
|
||||
with:
|
||||
go-version: '1.19'
|
||||
- name: Build Dataplane API
|
||||
run: |
|
||||
make -C deps/dataplaneapi DATAPLANEAPI_VERSION=${{ inputs.HAPROXY_DATAPLANEAPI_VERSION }}
|
||||
- name: Archive binary tarball
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: dataplaneapi-${{ inputs.HAPROXY_FLAVOUR }}.tar.gz
|
||||
path: deps/dataplaneapi/dataplaneapi-dist.tar.gz
|
||||
|
||||
dist-binary:
|
||||
runs-on: ubuntu-latest
|
||||
container: "docker.io/library/debian:${{ inputs.DEBIAN_CODENAME }}"
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
needs: [ dataplaneapi, regtests ]
|
||||
strategy:
|
||||
matrix:
|
||||
dist_type: [ bin, deb ]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Setup OS
|
||||
uses: "./.github/actions/setup-os"
|
||||
- name: Fetch build-time dependencies
|
||||
uses: "./.github/actions/fetch-deps"
|
||||
|
||||
# Standalone as it's version-dependent
|
||||
- name: Dependencies - Fetch - Data Plane API
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: dataplaneapi-${{ inputs.HAPROXY_FLAVOUR }}.tar.gz
|
||||
path: deps/dataplaneapi
|
||||
- name: Dependencies - Unpack - Data Plane API
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -pv deps/dataplaneapi/dist
|
||||
tar -C deps/dataplaneapi/dist -xf deps/dataplaneapi/dataplaneapi-dist.tar.gz
|
||||
|
||||
- name: Build distribution
|
||||
env:
|
||||
BUILD_MESSAGE: "${{ github.event.head_commit.message }}"
|
||||
run: |
|
||||
make -C haproxy \
|
||||
HAPROXY_GITREPO="${{ inputs.HAPROXY_GITREPO }}" \
|
||||
HAPROXY_VERSION="${{ inputs.HAPROXY_VERSION }}" \
|
||||
HAPROXY_GITREF="${{ inputs.HAPROXY_GITREF }}" \
|
||||
BUILD_PATCHES_DIR="patches-${{ inputs.HAPROXY_FLAVOUR }}" \
|
||||
dist-${{ matrix.dist_type }}
|
||||
ls -l haproxy
|
||||
|
||||
- name: Archive binary tarball
|
||||
if: ${{ matrix.dist_type == 'bin' }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: haproxy-${{ inputs.HAPROXY_FLAVOUR }}.tar.gz
|
||||
path: haproxy/haproxy-dist.tar.gz
|
||||
|
||||
- name: Collect Debian packages
|
||||
if: ${{ matrix.dist_type == 'deb' }}
|
||||
run: |
|
||||
echo "DEB_BIN=$(ls -1 haproxy/haproxy-dbgsym_*.deb | cut -d'/' -f2)" | tee -a $GITHUB_ENV
|
||||
echo "DEB_DBG=$(ls -1 haproxy/haproxy_*.deb | cut -d'/' -f2)" | tee -a $GITHUB_ENV
|
||||
- name: Archive Debian packages - binary
|
||||
if: ${{ matrix.dist_type == 'deb' }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ env.DEB_BIN }}
|
||||
path: haproxy/${{ env.DEB_BIN }}
|
||||
- name: Archive Debian packages - debug symbols
|
||||
if: ${{ matrix.dist_type == 'deb' }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ env.DEB_DBG }}
|
||||
path: haproxy/${{ env.DEB_DBG }}
|
||||
|
||||
dist-docker:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
needs: [ dataplaneapi, dist-binary, regtests ]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Fetch build-time dependencies
|
||||
uses: "./.github/actions/fetch-deps"
|
||||
with:
|
||||
INSTALL_NATIVE_DEPS: "false"
|
||||
|
||||
# Standalone as it's version-dependent
|
||||
- name: Dependencies - Fetch - Data Plane API
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: dataplaneapi-${{ inputs.HAPROXY_FLAVOUR }}.tar.gz
|
||||
path: deps/dataplaneapi
|
||||
- name: Dependencies - Unpack - Data Plane API
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -pv deps/dataplaneapi/dist
|
||||
tar -C deps/dataplaneapi/dist -xf deps/dataplaneapi/dataplaneapi-dist.tar.gz
|
||||
|
||||
- name: Fetch HAProxy dist
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: haproxy-${{ inputs.HAPROXY_FLAVOUR }}.tar.gz
|
||||
path: haproxy
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Log in to the Container registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Extract metadata (tags, labels) for Docker
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||
tags: |
|
||||
type=sha,event=push,enable=true,prefix=branch-{{ branch }}-${{ inputs.HAPROXY_VERSION }}-git-,format=short
|
||||
type=sha,event=push,enable={{ is_default_branch }},prefix=${{ inputs.HAPROXY_VERSION }}-git-,format=short
|
||||
type=raw,event=push,enable={{ is_default_branch }},value=${{ inputs.HAPROXY_VERSION }}
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
|
@ -31,6 +31,10 @@ variables: &default-variables
|
|||
KUBERNETES_MEMORY_REQUEST: 2Gi
|
||||
KUBERNETES_MEMORY_LIMIT: 2Gi
|
||||
|
||||
.build-resources-l: &build-resources-l
|
||||
KUBERNETES_MEMORY_REQUEST: 4Gi
|
||||
KUBERNETES_MEMORY_LIMIT: 4Gi
|
||||
|
||||
.haproxy_stable: &haproxy-stable
|
||||
HAPROXY_GITREPO: "https://git.haproxy.org/?p=haproxy-2.7.git"
|
||||
HAPROXY_VERSION: 2.7-stable
|
||||
|
@ -41,12 +45,12 @@ variables: &default-variables
|
|||
.haproxy_dev: &haproxy-dev
|
||||
HAPROXY_GITREPO: "https://git.haproxy.org/?p=haproxy.git"
|
||||
HAPROXY_VERSION: 2.8-dev
|
||||
# https://git.haproxy.org/?p=haproxy.git;a=commit;h=7d6270a84554283557c2707d6df2c275e81c8bf1
|
||||
HAPROXY_GITREF: "7d6270a84554283557c2707d6df2c275e81c8bf1"
|
||||
# https://git.haproxy.org/?p=haproxy.git;a=commit;h=6fd2576d5ebbe90039cc918d01d0f62970f7cd67
|
||||
HAPROXY_GITREF: "6fd2576d5ebbe90039cc918d01d0f62970f7cd67"
|
||||
BUILD_PATCHES_DIR: "patches-dev"
|
||||
|
||||
.build-job: &build-job
|
||||
image: registry.gitlab.com/mangadex-pub/debuilder/buster:main
|
||||
image: ghcr.io/mangadex-pub/debuilder:main-bullseye
|
||||
needs: [ ]
|
||||
before_script:
|
||||
- apt -qq update
|
||||
|
@ -57,6 +61,18 @@ variables: &default-variables
|
|||
# Common dependencies
|
||||
#----------------------
|
||||
|
||||
dataplaneapi:
|
||||
<<: *build-job
|
||||
image: docker.io/library/golang:1.19-bullseye
|
||||
stage: dependencies
|
||||
script: make -C deps/dataplaneapi
|
||||
variables:
|
||||
<<: *default-variables
|
||||
<<: *build-resources-l
|
||||
artifacts:
|
||||
expire_in: 7 days
|
||||
paths: [ "deps/dataplaneapi/dataplaneapi-dist.tar.gz" ]
|
||||
|
||||
lua:
|
||||
<<: *build-job
|
||||
stage: dependencies
|
||||
|
@ -102,6 +118,8 @@ vtest:
|
|||
paths: [ "deps/vtest/dist/vtest" ]
|
||||
|
||||
.needs-dependencies: &needs-dependencies
|
||||
- job: dataplaneapi
|
||||
artifacts: true
|
||||
- job: lua
|
||||
artifacts: true
|
||||
- job: pcre2
|
||||
|
@ -118,9 +136,9 @@ vtest:
|
|||
stage: build
|
||||
script:
|
||||
- apt install -y --no-install-recommends -qq bzip2 git
|
||||
- mkdir deps/lua/dist && tar -C deps/lua/dist -xf deps/lua/lua-dist.tar.gz
|
||||
- mkdir deps/pcre2/dist && tar -C deps/pcre2/dist -xf deps/pcre2/pcre2-dist.tar.gz
|
||||
- mkdir deps/quictls/dist && tar -C deps/quictls/dist -xf deps/quictls/quictls-dist.tar.gz
|
||||
- mkdir deps/lua/dist && tar -C deps/lua/dist -xf deps/lua/lua-dist.tar.gz
|
||||
- mkdir deps/pcre2/dist && tar -C deps/pcre2/dist -xf deps/pcre2/pcre2-dist.tar.gz
|
||||
- mkdir deps/quictls/dist && tar -C deps/quictls/dist -xf deps/quictls/quictls-dist.tar.gz
|
||||
- make -C haproxy HAPROXY_GITREPO="$HAPROXY_GITREPO" HAPROXY_VERSION="$HAPROXY_VERSION" HAPROXY_GITREF="$HAPROXY_GITREF" BUILD_PATCHES_DIR="$BUILD_PATCHES_DIR"
|
||||
needs: *needs-dependencies
|
||||
artifacts:
|
||||
|
@ -132,9 +150,9 @@ vtest:
|
|||
stage: test
|
||||
script:
|
||||
- apt install -y --no-install-recommends -qq bzip2 git
|
||||
- mkdir deps/lua/dist && tar -C deps/lua/dist -xf deps/lua/lua-dist.tar.gz
|
||||
- mkdir deps/pcre2/dist && tar -C deps/pcre2/dist -xf deps/pcre2/pcre2-dist.tar.gz
|
||||
- mkdir deps/quictls/dist && tar -C deps/quictls/dist -xf deps/quictls/quictls-dist.tar.gz
|
||||
- mkdir deps/lua/dist && tar -C deps/lua/dist -xf deps/lua/lua-dist.tar.gz
|
||||
- mkdir deps/pcre2/dist && tar -C deps/pcre2/dist -xf deps/pcre2/pcre2-dist.tar.gz
|
||||
- mkdir deps/quictls/dist && tar -C deps/quictls/dist -xf deps/quictls/quictls-dist.tar.gz
|
||||
- make -C haproxy HAPROXY_GITREPO="$HAPROXY_GITREPO" HAPROXY_VERSION="$HAPROXY_VERSION" HAPROXY_GITREF="$HAPROXY_GITREF" BUILD_PATCHES_DIR="$BUILD_PATCHES_DIR" build test
|
||||
needs:
|
||||
- *needs-dependencies
|
||||
|
@ -146,9 +164,10 @@ vtest:
|
|||
stage: publish
|
||||
script:
|
||||
- apt install -y --no-install-recommends -qq bzip2 devscripts debhelper pkg-config
|
||||
- mkdir deps/lua/dist && tar -C deps/lua/dist -xf deps/lua/lua-dist.tar.gz
|
||||
- mkdir deps/pcre2/dist && tar -C deps/pcre2/dist -xf deps/pcre2/pcre2-dist.tar.gz
|
||||
- mkdir deps/quictls/dist && tar -C deps/quictls/dist -xf deps/quictls/quictls-dist.tar.gz
|
||||
- mkdir deps/dataplaneapi/dist && tar -C deps/dataplaneapi/dist -xf deps/dataplaneapi/dataplaneapi-dist.tar.gz
|
||||
- mkdir deps/lua/dist && tar -C deps/lua/dist -xf deps/lua/lua-dist.tar.gz
|
||||
- mkdir deps/pcre2/dist && tar -C deps/pcre2/dist -xf deps/pcre2/pcre2-dist.tar.gz
|
||||
- mkdir deps/quictls/dist && tar -C deps/quictls/dist -xf deps/quictls/quictls-dist.tar.gz
|
||||
- export BUILD_MESSAGE="$CI_COMMIT_MESSAGE"
|
||||
- make -C haproxy dist-deb HAPROXY_GITREPO="$HAPROXY_GITREPO" HAPROXY_VERSION="$HAPROXY_VERSION" HAPROXY_GITREF="$HAPROXY_GITREF" BUILD_PATCHES_DIR="$BUILD_PATCHES_DIR"
|
||||
- |
|
||||
|
@ -320,6 +339,8 @@ docker:stable:
|
|||
<<: *build-resources-m
|
||||
<<: *haproxy-stable
|
||||
needs:
|
||||
- job: "dataplaneapi"
|
||||
artifacts: true
|
||||
- job: "quictls"
|
||||
artifacts: true
|
||||
- job: "regtests:stable"
|
||||
|
@ -334,6 +355,8 @@ docker:dev:
|
|||
<<: *build-resources-m
|
||||
<<: *haproxy-dev
|
||||
needs:
|
||||
- job: "dataplaneapi"
|
||||
artifacts: true
|
||||
- job: "quictls"
|
||||
artifacts: true
|
||||
- job: "regtests:dev"
|
||||
|
|
|
@ -5,6 +5,10 @@ FROM base as dists
|
|||
|
||||
RUN apt -qq update && apt install -qq -y bzip2
|
||||
|
||||
WORKDIR /tmp/dataplaneapi
|
||||
COPY ./deps/dataplaneapi/dataplaneapi-dist.tar.gz /tmp/dataplaneapi/dataplaneapi.tar.gz
|
||||
RUN ls -alh && tar xf dataplaneapi.tar.gz
|
||||
|
||||
WORKDIR /tmp/quictls
|
||||
COPY ./deps/quictls/quictls-dist.tar.gz /tmp/quictls/quictls.tar.gz
|
||||
RUN ls -alh && tar xf quictls.tar.gz
|
||||
|
@ -22,6 +26,7 @@ MAINTAINER MangaDex <opensource@mangadex.org>
|
|||
ARG CANONICAL_VERSION="local-SNAPSHOT"
|
||||
LABEL Version=${CANONICAL_VERSION}
|
||||
|
||||
COPY --chown=root:root --from=dists /tmp/dataplaneapi/usr /usr
|
||||
COPY --chown=root:root --from=dists /tmp/quictls/opt /opt
|
||||
COPY --chown=root:root --from=dists /tmp/haproxy/usr /usr
|
||||
|
||||
|
|
5
Makefile
5
Makefile
|
@ -1,6 +1,9 @@
|
|||
all: deps haproxy
|
||||
|
||||
deps: deps/lua deps/pcre2 deps/quictls deps/vtest
|
||||
deps: deps/dataplaneapi deps/lua deps/pcre2 deps/quictls deps/vtest
|
||||
|
||||
deps/dataplaneapi:
|
||||
$(MAKE) -C "deps/dataplaneapi"
|
||||
|
||||
deps/lua:
|
||||
$(MAKE) -C "deps/lua"
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
DATAPLANEAPI_VERSION = v2.7
|
||||
DATAPLANEAPI_SOURCES = https://codeload.github.com/haproxytech/dataplaneapi/tar.gz/$(DATAPLANEAPI_VERSION)
|
||||
DATAPLANEAPI_TARBALL = dataplaneapi-$(DATAPLANEAPI_VERSION).tar.gz
|
||||
DATAPLANEAPI_BUILDIR = src
|
||||
DATAPLANEAPI_DESTDIR = dist
|
||||
DATAPLANEAPI_DESTDIR_ABS = $(shell realpath $(DATAPLANEAPI_DESTDIR))
|
||||
DATAPLANEAPI_ARCHIVE = dataplaneapi-dist.tar.gz
|
||||
|
||||
BUILD_VERSION_REPOSHA = $(shell git rev-parse --short HEAD)
|
||||
|
||||
all: build $(DATAPLANEAPI_DESTDIR) $(DATAPLANEAPI_ARCHIVE)
|
||||
|
||||
$(DATAPLANEAPI_TARBALL):
|
||||
curl -fsSL -o "$(DATAPLANEAPI_TARBALL)" "$(DATAPLANEAPI_SOURCES)"
|
||||
|
||||
$(DATAPLANEAPI_BUILDIR): $(DATAPLANEAPI_TARBALL)
|
||||
@if ! [ -d "$(DATAPLANEAPI_BUILDIR)" ]; then mkdir -v "$(DATAPLANEAPI_BUILDIR)"; fi
|
||||
tar -C $(DATAPLANEAPI_BUILDIR) --strip-components=1 -xf "$(DATAPLANEAPI_TARBALL)"
|
||||
|
||||
build: $(DATAPLANEAPI_BUILDIR)
|
||||
cd "$(DATAPLANEAPI_BUILDIR)" && make \
|
||||
GIT_HEAD_COMMIT="$(DATAPLANEAPI_VERSION)" \
|
||||
GIT_MODIFIED="+mangadex-$(BUILD_VERSION_REPOSHA)" \
|
||||
GIT_REPO="mangadex-pub/haproxy@git{hub, lab}"
|
||||
"$(DATAPLANEAPI_BUILDIR)/build/dataplaneapi" --version
|
||||
|
||||
$(DATAPLANEAPI_DESTDIR): build
|
||||
if ! [ -d "$(DATAPLANEAPI_DESTDIR)/usr/sbin" ]; then mkdir -pv "$(DATAPLANEAPI_DESTDIR)/usr/sbin"; fi
|
||||
cp -fv "$(DATAPLANEAPI_BUILDIR)/build/dataplaneapi" "$(DATAPLANEAPI_DESTDIR)/usr/sbin/dataplaneapi"
|
||||
|
||||
$(DATAPLANEAPI_ARCHIVE): $(DATAPLANEAPI_DESTDIR)
|
||||
tar -C "$(DATAPLANEAPI_DESTDIR)" -cjf "$(DATAPLANEAPI_ARCHIVE)" "usr"
|
||||
|
||||
clean:
|
||||
rm -fv "$(DATAPLANEAPI_TARBALL)"
|
||||
rm -rf "$(DATAPLANEAPI_BUILDIR)"
|
||||
rm -rf "$(DATAPLANEAPI_DESTDIR)"
|
||||
rm -fv "$(DATAPLANEAPI_ARCHIVE)"
|
||||
|
||||
.PHONY: clean build
|
|
@ -9,7 +9,7 @@ LUA_ARCHIVE = lua-dist.tar.gz
|
|||
all: build $(LUA_DESTDIR) $(LUA_ARCHIVE)
|
||||
|
||||
$(LUA_TARBALL):
|
||||
curl -fsSL -o "$(LUA_TARBALL)" "$(LUA_SOURCES)"
|
||||
xbps-fetch -o "$(LUA_TARBALL)" "$(LUA_SOURCES)"
|
||||
|
||||
$(LUA_BUILDIR): $(LUA_TARBALL)
|
||||
@if ! [ -d "$(LUA_BUILDIR)" ]; then mkdir -v "$(LUA_BUILDIR)"; fi
|
||||
|
|
|
@ -9,7 +9,7 @@ PCRE2_ARCHIVE = pcre2-dist.tar.gz
|
|||
all: build $(PCRE2_DESTDIR) $(PCRE2_ARCHIVE)
|
||||
|
||||
$(PCRE2_TARBALL):
|
||||
curl -fsSL -o "$(PCRE2_TARBALL)" "$(PCRE2_SOURCES)"
|
||||
xbps-fetch -o "$(PCRE2_TARBALL)" "$(PCRE2_SOURCES)"
|
||||
|
||||
$(PCRE2_BUILDIR): $(PCRE2_TARBALL)
|
||||
@if ! [ -d "$(PCRE2_BUILDIR)" ]; then mkdir -v "$(PCRE2_BUILDIR)"; fi
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
OPENSSL_VERSION = 1.1.1t
|
||||
BUILD_VERSION_REPOSHA = $(shell git rev-parse --short HEAD)
|
||||
QUICTLS_BUILD_VERSION = quic-mangadex-$(BUILD_VERSION_REPOSHA)
|
||||
QUICTLS_TAG = OpenSSL_$(subst .,_,$(OPENSSL_VERSION))-quic1
|
||||
|
||||
QUICTLS_SOURCES = https://codeload.github.com/quictls/openssl/tar.gz/$(QUICTLS_TAG)
|
||||
|
@ -13,16 +12,15 @@ QUICTLS_ARCHIVE = quictls-dist.tar.gz
|
|||
all: build $(QUICTLS_DESTDIR) $(QUICTLS_ARCHIVE)
|
||||
|
||||
$(QUICTLS_TARBALL):
|
||||
curl -sfS -o "$(QUICTLS_TARBALL)" "$(QUICTLS_SOURCES)"
|
||||
xbps-fetch -o "$(QUICTLS_TARBALL)" "$(QUICTLS_SOURCES)"
|
||||
|
||||
$(QUICTLS_BUILDIR): $(QUICTLS_TARBALL)
|
||||
@if ! [ -d "$(QUICTLS_BUILDIR)" ]; then mkdir -v "$(QUICTLS_BUILDIR)"; fi
|
||||
tar -C $(QUICTLS_BUILDIR) --strip-components=1 -xf "$(QUICTLS_TARBALL)"
|
||||
|
||||
build: $(QUICTLS_BUILDIR)
|
||||
cd "$(QUICTLS_BUILDIR)" && sed -i 's/^# define OPENSSL_VERSION_TEXT.*$\/# define OPENSSL_VERSION_TEXT "OpenSSL $(OPENSSL_VERSION)+$(QUICTLS_BUILD_VERSION) $(shell date -u +'%e %b %Y')"/g' "include/openssl/opensslv.h"
|
||||
cd "$(QUICTLS_BUILDIR)" && CC=cc ./config --prefix="/opt/quictls" --openssldir="/opt/quictls" --libdir="lib" no-shared
|
||||
$(MAKE) -C "$(QUICTLS_BUILDIR)" -j "$(shell nproc)" VERSION=$(OPENSSL_VERSION)+quic-mangadex-$(BUILD_VERSION_REPOSHA)
|
||||
$(MAKE) -C "$(QUICTLS_BUILDIR)" -j "$(shell nproc)"
|
||||
"$(QUICTLS_BUILDIR)/apps/openssl" version
|
||||
$(MAKE) buildinfo_$(shell uname -s)
|
||||
|
||||
|
@ -42,7 +40,7 @@ $(QUICTLS_DESTDIR): build
|
|||
$(QUICTLS_DESTDIR_ABS)/opt/quictls/bin/openssl version
|
||||
|
||||
$(QUICTLS_ARCHIVE): $(QUICTLS_DESTDIR)
|
||||
tar -C "$(QUICTLS_DESTDIR)" -cjf "$(QUICTLS_ARCHIVE)" "opt"
|
||||
tar -C "$(QUICTLS_DESTDIR)" --owner=root:0 --group=root:0 -czf "$(QUICTLS_ARCHIVE)" "opt"
|
||||
|
||||
clean:
|
||||
rm -fv "$(QUICTLS_TARBALL)"
|
||||
|
|
|
@ -3,11 +3,12 @@ VTEST_SOURCES = https://codeload.github.com/vtest/vtest/tar.gz/master
|
|||
VTEST_TARBALL = VTEST-$(VTEST_VERSION).tar.gz
|
||||
VTEST_BUILDIR = src
|
||||
VTEST_DESTDIR = dist
|
||||
VTEST_ARCHIVE = vtest-dist.tar.gz
|
||||
|
||||
all: build $(VTEST_DESTDIR) $(VTEST_DESTDIR)
|
||||
all: build $(VTEST_DESTDIR) $(VTEST_ARCHIVE)
|
||||
|
||||
$(VTEST_TARBALL):
|
||||
curl -sfS -o "$(VTEST_TARBALL)" "$(VTEST_SOURCES)"
|
||||
xbps-fetch -o "$(VTEST_TARBALL)" "$(VTEST_SOURCES)"
|
||||
|
||||
$(VTEST_BUILDIR): $(VTEST_TARBALL)
|
||||
@if ! [ -d "$(VTEST_BUILDIR)" ]; then mkdir -v "$(VTEST_BUILDIR)"; fi
|
||||
|
@ -31,6 +32,9 @@ $(VTEST_DESTDIR): build
|
|||
cp -fv "$(VTEST_BUILDIR)/vtest" "$(VTEST_DESTDIR)/vtest"
|
||||
chmod -v +x "$(VTEST_DESTDIR)/vtest"
|
||||
|
||||
$(VTEST_ARCHIVE): $(VTEST_DESTDIR)
|
||||
tar -C "$(VTEST_DESTDIR)" -cjf "$(VTEST_ARCHIVE)" "."
|
||||
|
||||
clean:
|
||||
rm -fv "$(VTEST_TARBALL)"
|
||||
rm -rf "$(VTEST_BUILDIR)"
|
||||
|
|
|
@ -27,11 +27,9 @@ DEBUG_CFLAGS = -ggdb3 -gdwarf-4
|
|||
|
||||
MAKEARGS = DEBUG="-DDEBUG_MEMORY_POOLS -DDEBUG_STRICT" \
|
||||
DEBUG_CFLAGS="$(DEBUG_CFLAGS)"\
|
||||
DEFINE="-DMAX_SESS_STKCTR=5" \
|
||||
IGNOREGIT=true \
|
||||
ADDLIB="-Wl,-rpath,/opt/quictls/lib" \
|
||||
TARGET="linux-glibc" \
|
||||
EXTRAVERSION="+mangadex-$(BUILD_VERSION_REPOSHA)" \
|
||||
VERDATE="$(shell date -u -I'minutes')" \
|
||||
USE_LIBCRYPT=1 \
|
||||
USE_LUA=1 \
|
||||
|
@ -54,7 +52,7 @@ MAKEARGS_LINUX = $(MAKEARGS) \
|
|||
USE_PCRE2_JIT=1 \
|
||||
USE_STATIC_PCRE2=1 \
|
||||
USE_NS=1 \
|
||||
USE_SYSTEMD=1 \
|
||||
SBINDIR=/usr/local/bin
|
||||
TARGET=linux-glibc
|
||||
|
||||
MAKEARGS_DARWIN = $(MAKEARGS) \
|
||||
|
@ -68,7 +66,7 @@ dist-bin: build $(HAPROXY_DESTDIR) $(HAPROXY_ARCHIVE)
|
|||
dist-deb: build-deb
|
||||
|
||||
$(HAPROXY_TARBALL):
|
||||
curl -sfS -o "$(HAPROXY_TARBALL)" "$(HAPROXY_SOURCES)"
|
||||
xbps-fetch -o "$(HAPROXY_TARBALL)" "$(HAPROXY_SOURCES)"
|
||||
|
||||
$(HAPROXY_BUILDIR): $(HAPROXY_TARBALL)
|
||||
@if ! [ -d "$(HAPROXY_BUILDIR)" ]; then mkdir -v "$(HAPROXY_BUILDIR)"; fi
|
||||
|
@ -105,7 +103,7 @@ $(HAPROXY_DESTDIR):
|
|||
$(HAPROXY_DESTDIR_ABS)/usr/local/sbin/haproxy -vv
|
||||
|
||||
$(HAPROXY_ARCHIVE): $(HAPROXY_DESTDIR)
|
||||
tar -C "$(HAPROXY_DESTDIR)" -cjf "$(HAPROXY_ARCHIVE)" "usr"
|
||||
tar -C "$(HAPROXY_DESTDIR)" --owner=root:0 --group=root:0 -czf "$(HAPROXY_ARCHIVE)" "usr"
|
||||
|
||||
$(HAPROXY_DEBORIG): $(HAPROXY_TARBALL)
|
||||
cp -fv "$(HAPROXY_TARBALL)" "$(HAPROXY_DEBORIG)"
|
||||
|
@ -121,7 +119,7 @@ prepare-deb: $(HAPROXY_DEBORIG) $(HAPROXY_BUILDIR)
|
|||
cat debian/changelog >> "$(HAPROXY_BUILDIR)/debian/changelog"
|
||||
|
||||
build-deb: prepare-deb
|
||||
cd $(HAPROXY_BUILDIR) && debuild -us -uc
|
||||
cd $(HAPROXY_BUILDIR) && debuild -us -uc --lintian-opts --no-lintian
|
||||
rm -fv $(HAPROXY_TARBALL)
|
||||
rm -rf $(HAPROXY_BUILDIR)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
haproxy ($BUILD_VERSION) experimental; urgency=medium
|
||||
haproxy ($BUILD_VERSION) UNRELEASED; urgency=medium
|
||||
|
||||
* $BUILD_MESSAGE
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/make -f
|
||||
|
||||
DEP_DIST_ROOT_DATAPLANEAPI = $(shell realpath ../../deps/dataplaneapi/dist)
|
||||
DEP_DIST_ROOT_LUA = $(shell realpath ../../deps/lua/dist)
|
||||
DEP_DIST_ROOT_PCRE2 = $(shell realpath ../../deps/pcre2/dist)
|
||||
DEP_DIST_ROOT_QUICTLS = $(shell realpath ../../deps/quictls/dist)
|
||||
|
@ -60,10 +61,12 @@ override_dh_auto_clean:
|
|||
|
||||
override_dh_auto_install-arch:
|
||||
cp -rf $(DEP_DIST_ROOT_QUICTLS)/opt debian/haproxy/opt
|
||||
cp -rf $(DEP_DIST_ROOT_DATAPLANEAPI)/usr debian/haproxy/usr
|
||||
$(MAKE) -j $(shell nproc) $(MAKEARGS) install
|
||||
if [ -f "dev/haring/haring" ]; then install -m 0755 -D dev/haring/haring debian/haproxy/usr/sbin/haring; fi
|
||||
install -m 0644 -D debian/rsyslog.conf debian/haproxy/etc/rsyslog.d/49-haproxy.conf
|
||||
install -m 0644 -D debian/logrotate.conf debian/haproxy/etc/logrotate.d/haproxy
|
||||
ls -1 debian/haproxy
|
||||
|
||||
override_dh_auto_install-indep:
|
||||
|
||||
|
@ -85,4 +88,8 @@ override_dh_strip:
|
|||
# see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=933541, still not shipped in buster
|
||||
# and don't want to update to bullseye because of GCC version diff with Ubuntu 20.04... *sigh*
|
||||
override_dh_dwz:
|
||||
dh_dwz --no-dwz-multifile --exclude="openssl"
|
||||
dh_dwz \
|
||||
--no-dwz-multifile \
|
||||
--exclude="dataplaneapi" \
|
||||
--exclude="haring" \
|
||||
--exclude="openssl"
|
||||
|
|
|
@ -6,7 +6,6 @@ export DEBIAN_FRONTEND=noninteractive
|
|||
|
||||
apt -qq update
|
||||
apt -qq -y --no-install-recommends install apt-utils apt-transport-https ca-certificates
|
||||
sed -i -e 's/http\:/https\:/g' /etc/apt/sources.list
|
||||
apt -qq update
|
||||
apt -qq -y --no-install-recommends install \
|
||||
build-essential \
|
||||
|
|
Loading…
Reference in New Issue