Ignite/.drone.yml

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
...