diff --git a/.gitignore b/.gitignore index 97a415a..f5859dd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ /target /imgs -fif_* +/fif_* /old /.mypy_cache /__pycache__ @@ -11,3 +11,5 @@ todo.txt /pkg/* /out /packages +/fif +/fif.exe diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 49dbb9f..6abad33 100644 --- a/.gitlab-ci.yml +++ b/.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