80 lines
1.8 KiB
YAML
80 lines
1.8 KiB
YAML
default:
|
|
image: rust:latest
|
|
|
|
stages:
|
|
- build
|
|
- test
|
|
- release
|
|
|
|
compile-with-posix-features:
|
|
stage: build
|
|
script:
|
|
- cargo build
|
|
|
|
compile-without-posix-features:
|
|
stage: build
|
|
script:
|
|
- cargo build --no-default-features
|
|
|
|
compile-implicit-load:
|
|
stage: build
|
|
script:
|
|
- cargo build -F implicit-load
|
|
|
|
unit-tests:
|
|
stage: test
|
|
script:
|
|
- cargo test
|
|
|
|
userlib-tests:
|
|
stage: test
|
|
script:
|
|
- cargo run --no-default-features snippets/userlib.f snippets/userlib-tests.f
|
|
|
|
prepare-release:
|
|
stage: release
|
|
script:
|
|
- cargo build -F implicit-load --release
|
|
- |
|
|
tar -czf flesh-$CI_COMMIT_TAG.tar.gz \
|
|
--xform='s,target/release/,,'
|
|
--xform='s,snippets/,,'
|
|
--xform='s,snippets/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: 'See release_contents.txt'
|
|
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
|