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