317 lines
12 KiB
YAML
317 lines
12 KiB
YAML
kind: pipeline
|
|
type: docker
|
|
name: from-source-amd64
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
environment:
|
|
GOPROXY: direct
|
|
GOARCH: amd64
|
|
GOAMD64: v3
|
|
GOOS: linux
|
|
GOTRACEBACK: 2
|
|
GOEXPERIMENT: "cgocheck2"
|
|
CFLAGS: "-march=native -Ofast"
|
|
CXXFLAGS: "-march=native -Ofast"
|
|
LDFLAGS: "-flto -Wl,-z,stack-size=2097152 -static -static-libstdc++"
|
|
PKG_CONFIG_PATH: "/drone/src/build_deps/lib/pkgconfig"
|
|
LD_LIBRARY_PATH: "/drone/src/build_deps/lib"
|
|
CGO_CFLAGS: "-I/drone/src/build_deps/include"
|
|
CGO_LDFLAGS: "-L/drone/src/build_deps/lib"
|
|
X264_TAG: "stable"
|
|
VMAF_TAG: "v2.3.1"
|
|
AOM_TAG: "v3.7.0"
|
|
DAV1D_TAG: "1.3.0"
|
|
|
|
workspace:
|
|
path: /drone/src
|
|
|
|
steps:
|
|
- name: prepare-testdata
|
|
image: alpine
|
|
commands:
|
|
- apk update
|
|
- apk add --no-cache wget bash
|
|
- ./testdata/prepare.sh
|
|
- name: build-x264
|
|
image: alpine:3.18
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc g++ bash make libtool nasm
|
|
- cd /tmp
|
|
- >-
|
|
git clone --depth 1 --branch $X264_TAG https://code.videolan.org/videolan/x264.git && cd x264 &&
|
|
./configure --disable-cli --disable-ffms --disable-lavf --disable-swscale --enable-static --bit-depth=all --chroma-format=all --enable-lto --enable-pic --disable-opencl --prefix=/drone/src/build_deps &&
|
|
make -j$(nproc) &&
|
|
make install &&
|
|
cd ..
|
|
- name: build-vmaf
|
|
image: alpine:3.18
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc g++ bash cmake make libtool meson ccache nasm perl xxd pkgconfig
|
|
- cd /tmp
|
|
- >-
|
|
git clone --depth 1 --branch $VMAF_TAG https://github.com/Netflix/vmaf.git && cd vmaf/libvmaf &&
|
|
meson setup build . --prefix /drone/src/build_deps --buildtype release --default-library=static
|
|
-Denable_float=true -Dbuilt_in_models=true -Denable_tests=false -Denable_docs=false &&
|
|
ninja -vC build &&
|
|
ninja -vC build install &&
|
|
cd ../..
|
|
- name: build-libaom
|
|
image: alpine:3.18
|
|
depends_on:
|
|
- build-vmaf
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc g++ bash cmake make libtool ccache nasm perl xxd pkgconfig
|
|
- cd /tmp
|
|
- >-
|
|
git clone --depth 1 --branch $AOM_TAG https://aomedia.googlesource.com/aom.git && cd aom &&
|
|
mkdir b && cd b &&
|
|
cmake .. -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -D CMAKE_INSTALL_PREFIX:PATH=/drone/src/build_deps
|
|
-DENABLE_DOCS=OFF -DENABLE_EXAMPLES=OFF -DENABLE_TOOLS=OFF -DENABLE_TESTS=OFF -DENABLE_CCACHE=ON
|
|
-DCONFIG_TUNE_VMAF=1 -DCONFIG_THREE_PASS=0 -DCONFIG_AV1_ENCODER=1 -DCONFIG_AV1_DECODER=1 &&
|
|
make -j$(nproc) &&
|
|
make install &&
|
|
cd ../..
|
|
- name: build-dav1d
|
|
image: alpine:3.18
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc g++ bash libtool meson ccache nasm pkgconfig
|
|
- cd /tmp
|
|
- >-
|
|
git clone --depth 1 --branch $DAV1D_TAG https://code.videolan.org/videolan/dav1d.git && cd dav1d &&
|
|
meson setup build . --prefix /drone/src/build_deps --buildtype release --default-library=static &&
|
|
ninja -vC build &&
|
|
ninja -vC build install
|
|
&& cd ..
|
|
- name: test-nocgo-short
|
|
image: golang:1.21-alpine3.18
|
|
depends_on:
|
|
- prepare-testdata
|
|
commands:
|
|
- apk update
|
|
- apk add --no-cache git
|
|
- CGO_ENABLED=0 go test -p 1 -failfast -timeout 60m -cover -gcflags=-d=checkptr -v ./... -test.short
|
|
- name: test-cgo-libdav1d-long
|
|
image: golang:1.21-alpine3.18
|
|
depends_on:
|
|
- build-dav1d
|
|
- prepare-testdata
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc pkgconfig musl-dev libstdc++-dev
|
|
- >-
|
|
go test -p 1 -failfast -timeout 60m -cover -gcflags=-d=checkptr -v
|
|
-ldflags '-linkmode external -extldflags "-Wl,-z,stack-size=2097152 -fno-PIC -static -lstdc++"'
|
|
-tags 'osusergo netgo static_build disable_library_libaom disable_library_libx264 disable_library_libvmaf'
|
|
./decoder/libdav1d
|
|
- name: test-cgo-libaom-long
|
|
image: golang:1.21-alpine3.18
|
|
depends_on:
|
|
- build-libaom
|
|
- prepare-testdata
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc pkgconfig musl-dev libstdc++-dev
|
|
- >-
|
|
go test -p 1 -failfast -timeout 60m -cover -gcflags=-d=checkptr -v
|
|
-ldflags '-linkmode external -extldflags "-Wl,-z,stack-size=2097152 -fno-PIC -static -lstdc++"'
|
|
-tags 'osusergo netgo static_build disable_library_libdav1d disable_library_libx264 disable_library_libvmaf'
|
|
./encoder/libaom
|
|
- name: test-cgo-libx264-long
|
|
image: golang:1.21-alpine3.18
|
|
depends_on:
|
|
- build-x264
|
|
- prepare-testdata
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc pkgconfig musl-dev libstdc++-dev
|
|
- >-
|
|
go test -p 1 -failfast -timeout 60m -cover -gcflags=-d=checkptr -v
|
|
-ldflags '-linkmode external -extldflags "-Wl,-z,stack-size=2097152 -fno-PIC -static -lstdc++"'
|
|
-tags 'osusergo netgo static_build disable_library_libdav1d disable_library_libaom disable_library_libvmaf'
|
|
./encoder/libx264
|
|
- name: test-cgo-libvmaf-long
|
|
image: golang:1.21-alpine3.18
|
|
depends_on:
|
|
- build-dav1d
|
|
- build-vmaf
|
|
- prepare-testdata
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc pkgconfig musl-dev libstdc++-dev
|
|
- >-
|
|
go test -p 1 -failfast -timeout 60m -cover -gcflags=-d=checkptr -v
|
|
-ldflags '-linkmode external -extldflags "-Wl,-z,stack-size=2097152 -fno-PIC -static -lstdc++"'
|
|
-tags 'osusergo netgo static_build disable_library_libaom disable_library_libx264'
|
|
./utilities/libvmaf
|
|
- name: test-cgo-full-short
|
|
image: golang:1.21-alpine3.18
|
|
depends_on:
|
|
- build-x264
|
|
- build-vmaf
|
|
- build-libaom
|
|
- build-dav1d
|
|
- prepare-testdata
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc pkgconfig musl-dev libstdc++-dev
|
|
- >-
|
|
go test -p 1 -failfast -timeout 60m -cover -gcflags=-d=checkptr -v
|
|
-ldflags '-linkmode external -extldflags "-Wl,-z,stack-size=2097152 -fno-PIC -static -lstdc++"'
|
|
-tags 'osusergo netgo static_build'
|
|
./... -test.short
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: from-source-arm64
|
|
platform:
|
|
os: linux
|
|
arch: arm64
|
|
|
|
environment:
|
|
GOPROXY: direct
|
|
GOARCH: arm64
|
|
GOOS: linux
|
|
GOTRACEBACK: 2
|
|
GOEXPERIMENT: "cgocheck2"
|
|
CFLAGS: "-march=armv8-a -Ofast"
|
|
CXXFLAGS: "-march=armv8-a -Ofast"
|
|
LDFLAGS: "-flto -Wl,-z,stack-size=2097152 -static -static-libstdc++"
|
|
PKG_CONFIG_PATH: "/drone/src/build_deps/lib/pkgconfig"
|
|
LD_LIBRARY_PATH: "/drone/src/build_deps/lib"
|
|
CGO_CFLAGS: "-I/drone/src/build_deps/include"
|
|
CGO_LDFLAGS: "-L/drone/src/build_deps/lib"
|
|
X264_TAG: "stable"
|
|
VMAF_TAG: "v2.3.1"
|
|
AOM_TAG: "v3.7.0"
|
|
DAV1D_TAG: "1.3.0"
|
|
|
|
workspace:
|
|
path: /drone/src
|
|
|
|
steps:
|
|
- name: prepare-testdata
|
|
image: alpine:3.18
|
|
commands:
|
|
- apk update
|
|
- apk add --no-cache wget bash
|
|
- ./testdata/prepare.sh
|
|
- name: build-x264
|
|
image: alpine:3.18
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc g++ bash make libtool nasm
|
|
- cd /tmp
|
|
- >-
|
|
git clone --depth 1 --branch $X264_TAG https://code.videolan.org/videolan/x264.git && cd x264 &&
|
|
./configure --disable-cli --disable-ffms --disable-lavf --disable-swscale --enable-static --bit-depth=all --chroma-format=all --enable-lto --enable-pic --disable-opencl --prefix=/drone/src/build_deps &&
|
|
make -j$(nproc) &&
|
|
make install &&
|
|
cd ..
|
|
- name: build-vmaf
|
|
image: alpine:3.18
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc g++ bash cmake make libtool meson ccache nasm perl xxd pkgconfig
|
|
- cd /tmp
|
|
- >-
|
|
git clone --depth 1 --branch $VMAF_TAG https://github.com/Netflix/vmaf.git && cd vmaf/libvmaf &&
|
|
meson setup build . --prefix /drone/src/build_deps --libdir=lib --buildtype release --default-library=static
|
|
-Denable_float=true -Dbuilt_in_models=true -Denable_tests=false -Denable_docs=false &&
|
|
ninja -vC build &&
|
|
ninja -vC build install &&
|
|
cd ../..
|
|
- name: build-libaom
|
|
image: alpine:3.18
|
|
depends_on:
|
|
- build-vmaf
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc g++ bash cmake make libtool ccache nasm perl xxd pkgconfig
|
|
- cd /tmp
|
|
- >-
|
|
git clone --depth 1 --branch $AOM_TAG https://aomedia.googlesource.com/aom.git && cd aom &&
|
|
mkdir b && cd b &&
|
|
cmake .. -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -D CMAKE_INSTALL_PREFIX:PATH=/drone/src/build_deps
|
|
-DENABLE_DOCS=OFF -DENABLE_EXAMPLES=OFF -DENABLE_TOOLS=OFF -DENABLE_TESTS=OFF -DENABLE_CCACHE=ON
|
|
-DCONFIG_TUNE_VMAF=1 -DCONFIG_THREE_PASS=0 -DCONFIG_AV1_ENCODER=1 -DCONFIG_AV1_DECODER=1 &&
|
|
make -j$(nproc) &&
|
|
make install &&
|
|
cd ../..
|
|
- name: build-dav1d
|
|
image: alpine:3.18
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc g++ bash libtool meson ccache nasm pkgconfig
|
|
- cd /tmp
|
|
- >-
|
|
git clone --depth 1 --branch $DAV1D_TAG https://code.videolan.org/videolan/dav1d.git && cd dav1d &&
|
|
meson setup build . --prefix /drone/src/build_deps --libdir=lib --buildtype release --default-library=static &&
|
|
ninja -vC build &&
|
|
ninja -vC build install
|
|
&& cd ..
|
|
- name: test-nocgo-short
|
|
image: golang:1.21-alpine3.18
|
|
depends_on:
|
|
- prepare-testdata
|
|
commands:
|
|
- apk update
|
|
- apk add --no-cache git
|
|
- CGO_ENABLED=0 go test -p 1 -failfast -timeout 60m -cover -gcflags=-d=checkptr -v ./... -test.short
|
|
- name: test-cgo-libdav1d-long
|
|
image: golang:1.21-alpine3.18
|
|
depends_on:
|
|
- build-dav1d
|
|
- prepare-testdata
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc pkgconfig musl-dev libstdc++-dev
|
|
- >-
|
|
go test -p 1 -failfast -timeout 60m -cover -gcflags=-d=checkptr -v
|
|
-ldflags '-linkmode external -extldflags "-Wl,-z,stack-size=2097152 -fno-PIC -static -lstdc++"'
|
|
-tags 'osusergo netgo static_build disable_library_libaom disable_library_libx264 disable_library_libvmaf'
|
|
./decoder/libdav1d
|
|
- name: test-cgo-libaom-long
|
|
image: golang:1.21-alpine3.18
|
|
depends_on:
|
|
- build-libaom
|
|
- prepare-testdata
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc pkgconfig musl-dev libstdc++-dev
|
|
- >-
|
|
go test -p 1 -failfast -timeout 60m -cover -gcflags=-d=checkptr -v
|
|
-ldflags '-linkmode external -extldflags "-Wl,-z,stack-size=2097152 -fno-PIC -static -lstdc++"'
|
|
-tags 'osusergo netgo static_build disable_library_libdav1d disable_library_libx264 disable_library_libvmaf'
|
|
./encoder/libaom
|
|
- name: test-cgo-libx264-long
|
|
image: golang:1.21-alpine3.18
|
|
depends_on:
|
|
- build-x264
|
|
- prepare-testdata
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc pkgconfig musl-dev libstdc++-dev
|
|
- >-
|
|
go test -p 1 -failfast -timeout 60m -cover -gcflags=-d=checkptr -v
|
|
-ldflags '-linkmode external -extldflags "-Wl,-z,stack-size=2097152 -fno-PIC -static -lstdc++"'
|
|
-tags 'osusergo netgo static_build disable_library_libdav1d disable_library_libaom disable_library_libvmaf'
|
|
./encoder/libx264
|
|
- name: test-cgo-libvmaf-long
|
|
image: golang:1.21-alpine3.18
|
|
depends_on:
|
|
- build-dav1d
|
|
- build-vmaf
|
|
- prepare-testdata
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc pkgconfig musl-dev libstdc++-dev
|
|
- >-
|
|
go test -p 1 -failfast -timeout 60m -cover -gcflags=-d=checkptr -v
|
|
-ldflags '-linkmode external -extldflags "-Wl,-z,stack-size=2097152 -fno-PIC -static -lstdc++"'
|
|
-tags 'osusergo netgo static_build disable_library_libaom disable_library_libx264'
|
|
./utilities/libvmaf
|
|
- name: test-cgo-full-short
|
|
image: golang:1.21-alpine3.18
|
|
depends_on:
|
|
- build-x264
|
|
- build-vmaf
|
|
- build-libaom
|
|
- build-dav1d
|
|
- prepare-testdata
|
|
commands:
|
|
- apk update && apk add --no-cache git gcc pkgconfig musl-dev libstdc++-dev
|
|
- >-
|
|
go test -p 1 -failfast -timeout 60m -cover -gcflags=-d=checkptr -v
|
|
-ldflags '-linkmode external -extldflags "-Wl,-z,stack-size=2097152 -fno-PIC -static -lstdc++"'
|
|
-tags 'osusergo netgo static_build'
|
|
./... -test.short
|
|
... |