* 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>
86 lines
2.1 KiB
YAML
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
|