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
|
||||
|
||||
# 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'
|
||||
pull: true
|
||||
group: 'build'
|
||||
commands:
|
||||
- make debug
|
||||
when:
|
||||
event: push
|
||||
|
||||
prod:
|
||||
image: 'chewingbever/vlang:latest'
|
||||
pull: true
|
||||
environment:
|
||||
- LDFLAGS=-lz -lbz2 -llzma -lexpat -lzstd -llz4 -static
|
||||
group: 'build'
|
||||
commands:
|
||||
- make prod
|
||||
# Make sure the binary is actually static
|
||||
# Make sure the binary is actually statically built
|
||||
- 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
|
||||
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:
|
||||
lint:
|
||||
image: 'chewingbever/vlang:latest'
|
||||
pull: true
|
||||
group: lint
|
||||
commands:
|
||||
- make lint
|
||||
|
||||
vet:
|
||||
image: 'chewingbever/vlang:latest'
|
||||
group: lint
|
||||
commands:
|
||||
- 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