vieter/.woodpecker/.build.yml

44 lines
1.2 KiB
YAML

matrix:
PLATFORM:
- linux/amd64
- linux/arm64
- linux/arm/v7
# These checks already get performed on the feature branches
branches:
exclude: [ main, dev ]
platform: ${PLATFORM}
pipeline:
# The default build isn't needed, as alpine switches to gcc for the compiler anyways
debug:
image: 'chewingbever/vlang:latest'
group: 'build'
commands:
- make debug
prod:
image: 'chewingbever/vlang:latest'
environment:
- LDFLAGS=-lz -lbz2 -llzma -lexpat -lzstd -llz4 -static
group: 'build'
commands:
- make prod
# Make sure the binary is actually static
- readelf -d pvieter
- du -h pvieter
- '[ "$(readelf -d pvieter | grep NEEDED | wc -l)" = 0 ]'
# This removes so much, it's amazing
- strip -s pvieter
- du -h pvieter
upload:
image: 'alpine:latest'
secrets: [ s3_username, s3_password ]
commands:
# https://min.io/download#/linux
- wget https://dl.min.io/client/mc/release/linux-amd64/mc
- chmod +x mc
- ./mc alias set s3 https://s3.rustybever.be "$S3_USERNAME" "$S3_PASSWORD"
- ./mc cp pvieter "s3/vieter/commits/$CI_COMMIT_SHA/vieter-$(echo '${PLATFORM}' | sed 's:/:-:')"