Browse Source

an attempt at automated CI release builds that almost certainly won't work

edition-2021
Lynne Megido 3 months ago
parent
commit
8a91ca3ef4
Signed by: lynnesbian GPG Key ID: F0A184B5213D9F90
  1. 4
      .gitignore
  2. 45
      .gitlab-ci.yml

4
.gitignore vendored

@ -1,6 +1,6 @@
/target
/imgs
fif_*
/fif_*
/old
/.mypy_cache
/__pycache__
@ -11,3 +11,5 @@ todo.txt
/pkg/*
/out
/packages
/fif
/fif.exe

45
.gitlab-ci.yml

@ -2,6 +2,7 @@ image: "rust:latest"
variables:
CARGO_HOME: $CI_PROJECT_DIR/.cargo
PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/fif"
cache:
paths:
@ -19,6 +20,7 @@ stages:
- build-base
- build
- test
- release
# TEMPLATES
@ -173,3 +175,46 @@ test-nightly:
paths:
- target
- .cargo
build-release:
stage: release
cache: { }
rules:
- if: $CI_COMMIT_TAG
needs: ["test-stable"]
script:
- ./package.sh
artifacts:
paths:
- out/
upload-release:
stage: release
cache: { }
rules:
- if: $CI_COMMIT_TAG
image: curlimages/curl:latest
script:
- git describe --tags --abbrev=0 | cut -c 2- > tmp
- |
cd out
for _bin in *.{zip,xz} do; curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "$_bin" "${PACKAGE_REGISTRY_URL}/$(cat ../tmp)/${_bin}"; done
- rm ../tmp
create-release:
stage: release
cache: {}
image: registry.gitlab.com/gitlab-org/release-cli:latest
rules:
- if: $CI_COMMIT_TAG
script:
- |
cd out
echo -n "release-cli create --name \"Release $CI_COMMIT_TAG\" --tag-name=\"$CI_COMMIT_TAG\" " > tmp.sh
git describe --tags --abbrev=0 | cut -c 2- > tmp
for _bin in *.{zip,xz}; do echo -n --assets-link \"\{\"name\":\"${_bin}\",\"url\":\"${PACKAGE_REGISTRY_URL}/$(cat tmp)/${_bin}\"\}\" >> tmp.sh; echo -n " " >> tmp.sh; done
- cat tmp.sh
- bash tmp.sh
- |
rm tmp.sh
rm tmp

Loading…
Cancel
Save