flesh/.gitlab-ci.yml
Ava Affine 6d2925984f Big project dir refactor
* split into multi member workspace in preparation for a no_std core
* env and posix stuff neatly crammed into a seperate shell project
* some pokes at interactive-devel.f
* updated ci
* removed 'l' shortcut for 'load' and update docs
* remove out of date readme content
* updated tests
* more sensible cond implementation and extra tests
* substr stdlib function with tests

Signed-off-by: Ava Affine <ava@sunnypup.io>
2024-07-12 13:45:09 -07:00

86 lines
2.1 KiB
YAML

default:
image: rust:latest
stages:
- build
- test
- release
compile-shell-with-posix-features:
stage: build
script:
- cargo build -p flesh-shell -F posix
compile-shell-without-posix-features:
stage: build
script:
- cargo build -p flesh-shell --no-default-features
compile-core:
stage: build
script:
- cargo build -p flesh-core
unit-test-shell:
stage: test
script:
- cargo test -p flesh-shell
unit-test-core:
stage: test
script:
- cargo test -p flesh-core
userlib-tests:
stage: test
script:
- cargo run --no-default-features snippets/userlib.f snippets/userlib-tests.f
prepare-release:
stage: release
script:
- cargo build --release
- |
tar -czf flesh-$CI_COMMIT_TAG.tar.gz \
--xform='s,target/release/,,' \
--xform='s,snippets/,,' \
--xform='s,snippets/release/,,' \
--xform='s,release/,,' \
target/release/flesh \
Readme.org Writing.org Shell.org \
snippets/flesh-mode.el \
snippets/genbind.f \
snippets/interactive-devel.f \
snippets/userlib.f \
LICENSE.md \
snippets/release/default_fleshrc.f \
snippets/release/release_contents.txt \
snippets/release/install.sh
- echo $CI_COMMIT_TAG > VERSION
- echo $CI_JOB_ID > ID
artifacts:
paths:
- flesh-$CI_COMMIT_TAG.tar.gz
- VERSION
- ID
rules:
- if: '$CI_COMMIT_TAG =~ "/^v\d+.\d+.\d+/"'
create-release:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
needs:
- job: prepare-release
artifacts: true
script:
- echo "running job for release!"
rules:
- if: '$CI_COMMIT_TAG =~ "/^v\d+.\d+.\d+/"'
release:
name: 'Release $(cat VERSION)'
description: 'This release was cut automatically from a git tag. See release_contents.txt for more information on the contents of the release.'
tag_name: $CI_COMMIT_TAG
assets:
links:
- name: Get the release here
url: https://gitlab.com/whom/relish/-/jobs/`cat ID`/artifacts/file/flesh-`cat VERSION`.tar.gz