forked from vieter-v/vieter
Merge pull request 'Upload artifacts to S3; first attempt at Gitea releases' (#52) from gitea-releases into dev
Reviewed-on: Chewing_Bever/vieter#52main
commit
d357f8ebbf
|
@ -5,26 +5,61 @@ matrix:
|
||||||
- linux/arm/v7
|
- linux/arm/v7
|
||||||
|
|
||||||
# These checks already get performed on the feature branches
|
# These checks already get performed on the feature branches
|
||||||
branches:
|
|
||||||
exclude: [ main, dev ]
|
|
||||||
platform: ${PLATFORM}
|
platform: ${PLATFORM}
|
||||||
|
|
||||||
pipeline:
|
pipeline:
|
||||||
# The default build isn't needed, as alpine switches to gcc for the compiler anyways
|
# The default build isn't needed, as alpine switches to gcc for the compiler anyways
|
||||||
debug:
|
debug:
|
||||||
image: 'chewingbever/vlang:latest'
|
image: 'chewingbever/vlang:latest'
|
||||||
|
pull: true
|
||||||
group: 'build'
|
group: 'build'
|
||||||
commands:
|
commands:
|
||||||
- make debug
|
- make debug
|
||||||
|
when:
|
||||||
|
event: push
|
||||||
|
|
||||||
prod:
|
prod:
|
||||||
image: 'chewingbever/vlang:latest'
|
image: 'chewingbever/vlang:latest'
|
||||||
|
pull: true
|
||||||
environment:
|
environment:
|
||||||
- LDFLAGS=-lz -lbz2 -llzma -lexpat -lzstd -llz4 -static
|
- LDFLAGS=-lz -lbz2 -llzma -lexpat -lzstd -llz4 -static
|
||||||
group: 'build'
|
group: 'build'
|
||||||
commands:
|
commands:
|
||||||
- make prod
|
- make prod
|
||||||
# Make sure the binary is actually static
|
# Make sure the binary is actually statically built
|
||||||
- readelf -d pvieter
|
- readelf -d pvieter
|
||||||
- du -h pvieter
|
- du -h pvieter
|
||||||
- '[ "$(readelf -d pvieter | grep NEEDED | wc -l)" = 0 ]'
|
- '[ "$(readelf -d pvieter | grep NEEDED | wc -l)" = 0 ]'
|
||||||
|
# This removes so much, it's amazing
|
||||||
|
- strip -s pvieter
|
||||||
|
- du -h pvieter
|
||||||
|
when:
|
||||||
|
event: push
|
||||||
|
|
||||||
|
upload:
|
||||||
|
image: 'alpine:latest'
|
||||||
|
secrets: [ s3_username, s3_password ]
|
||||||
|
commands:
|
||||||
|
# We should just add this to the builder image instead
|
||||||
|
- apk add curl openssl
|
||||||
|
|
||||||
|
# https://gist.github.com/JustinTimperio/7c7115f87b775618637d67ac911e595f
|
||||||
|
- export URL=s3.rustybever.be
|
||||||
|
- export OBJ_PATH="/vieter/commits/$CI_COMMIT_SHA/vieter-$(echo '${PLATFORM}' | sed 's:/:-:g')"
|
||||||
|
- export DATE="$(date -R --utc)"
|
||||||
|
- export CONTENT_TYPE='application/zstd'
|
||||||
|
- export SIG_STRING="PUT\n\n$CONTENT_TYPE\n$DATE\n$OBJ_PATH"
|
||||||
|
- export SIGNATURE=`echo -en $SIG_STRING | openssl sha1 -hmac $S3_PASSWORD -binary | base64`
|
||||||
|
|
||||||
|
- >
|
||||||
|
curl
|
||||||
|
--silent
|
||||||
|
-XPUT
|
||||||
|
-T pvieter
|
||||||
|
-H "Host: $URL"
|
||||||
|
-H "Date: $DATE"
|
||||||
|
-H "Content-Type: $CONTENT_TYPE"
|
||||||
|
-H "Authorization: AWS $S3_USERNAME:$SIGNATURE"
|
||||||
|
https://$URL$OBJ_PATH
|
||||||
|
when:
|
||||||
|
event: push
|
||||||
|
|
|
@ -6,12 +6,8 @@ platform: linux/amd64
|
||||||
pipeline:
|
pipeline:
|
||||||
lint:
|
lint:
|
||||||
image: 'chewingbever/vlang:latest'
|
image: 'chewingbever/vlang:latest'
|
||||||
|
pull: true
|
||||||
group: lint
|
group: lint
|
||||||
commands:
|
commands:
|
||||||
- make lint
|
- make lint
|
||||||
|
|
||||||
vet:
|
|
||||||
image: 'chewingbever/vlang:latest'
|
|
||||||
group: lint
|
|
||||||
commands:
|
|
||||||
- make vet
|
- make vet
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
# Yeah so this only works on tags so we'll worry about this later
|
||||||
|
platform: linux/amd64
|
||||||
|
branches: main
|
||||||
|
|
||||||
|
# We need the entire repo in order for the release names to work
|
||||||
|
skip_clone: true
|
||||||
|
|
||||||
|
pipeline:
|
||||||
|
prepare:
|
||||||
|
image: 'chewingbever/vlang:latest'
|
||||||
|
secrets: [ s3_username, s3_password ]
|
||||||
|
commands:
|
||||||
|
- git clone "$CI_REPO_REMOTE" .
|
||||||
|
- git checkout "$CI_COMMIT_BRANCH"
|
||||||
|
# Write the title to a file that the plugin can then read
|
||||||
|
- echo "$(git describe --tags --abbrev=0 2> /dev/null || echo '0.0.0')-$(git rev-list --count ^dev)" > title
|
||||||
|
- cat title
|
||||||
|
- 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 -r "s3/vieter/commits/$CI_COMMIT_SHA" assets
|
||||||
|
|
||||||
|
release:
|
||||||
|
image: 'plugins/gitea-release'
|
||||||
|
secrets:
|
||||||
|
- gitea_release_api_key
|
||||||
|
settings:
|
||||||
|
base_url: https://git.rustybever.be
|
||||||
|
files: assets/*
|
||||||
|
checksums:
|
||||||
|
- md5
|
||||||
|
- sha256
|
||||||
|
prerelease: true
|
||||||
|
# This should get read in as a file
|
||||||
|
title: title
|
||||||
|
when:
|
||||||
|
event: push
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- build
|
Loading…
Reference in New Issue