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:/:-:')"