mirror of
https://gitlab.computer.surgery/matrix/grapevine.git
synced 2025-12-16 15:21:24 +01:00
It doesn't actually do anything unless more configuration is added, but it's not really necessary for this use case so removing it is easier.
80 lines
2.7 KiB
YAML
80 lines
2.7 KiB
YAML
stages:
|
|
- ci
|
|
- artifacts
|
|
- deploy
|
|
|
|
variables:
|
|
# Makes some things print in color
|
|
TERM: ansi
|
|
|
|
before_script:
|
|
# Enable nix-command and flakes
|
|
- if command -v nix > /dev/null; then echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf; fi
|
|
|
|
# Disable IFD, to ensure we are able to build without it
|
|
- if command -v nix > /dev/null; then echo "allow-import-from-derivation = false" >> /etc/nix/nix.conf; fi
|
|
|
|
# Add our own binary cache
|
|
- if command -v nix > /dev/null && [ -n "$ATTIC_ENDPOINT" ] && [ -n "$ATTIC_CACHE" ]; then echo "extra-substituters = $ATTIC_ENDPOINT/$ATTIC_CACHE" >> /etc/nix/nix.conf; fi
|
|
- if command -v nix > /dev/null && [ -n "$ATTIC_PUBLIC_KEY" ]; then echo "extra-trusted-public-keys = $ATTIC_PUBLIC_KEY" >> /etc/nix/nix.conf; fi
|
|
|
|
# Add crane binary cache
|
|
- if command -v nix > /dev/null; then echo "extra-substituters = https://crane.cachix.org" >> /etc/nix/nix.conf; fi
|
|
- if command -v nix > /dev/null; then echo "extra-trusted-public-keys = crane.cachix.org-1:8Scfpmn9w+hGdXH/Q9tTLiYAE/2dnJYRJP7kl80GuRk=" >> /etc/nix/nix.conf; fi
|
|
|
|
# Add nix-community binary cache
|
|
- if command -v nix > /dev/null; then echo "extra-substituters = https://nix-community.cachix.org" >> /etc/nix/nix.conf; fi
|
|
- if command -v nix > /dev/null; then echo "extra-trusted-public-keys = nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" >> /etc/nix/nix.conf; fi
|
|
|
|
# Install direnv
|
|
- if command -v nix > /dev/null; then nix profile install --impure --inputs-from . nixpkgs#direnv; fi
|
|
|
|
# Allow .envrc
|
|
- if command -v nix > /dev/null; then direnv allow; fi
|
|
|
|
# Set CARGO_HOME to a cacheable path
|
|
- export CARGO_HOME="$(git rev-parse --show-toplevel)/.gitlab-ci.d/cargo"
|
|
|
|
|
|
cache-ci-deps:
|
|
stage: ci
|
|
image: git.lix.systems/lix-project/lix:2.93.3
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
script: direnv exec . job cache-ci-deps
|
|
|
|
ci:
|
|
stage: ci
|
|
image: git.lix.systems/lix-project/lix:2.93.3
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
script:
|
|
- direnv exec . job ci
|
|
cache:
|
|
paths:
|
|
- target
|
|
- .gitlab-ci.d
|
|
|
|
artifacts:
|
|
stage: artifacts
|
|
image: git.lix.systems/lix-project/lix:2.93.3
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
script:
|
|
- direnv exec . job artifacts
|
|
artifacts:
|
|
paths:
|
|
- grapevine-static-aarch64-unknown-linux-musl
|
|
- grapevine-static-x86_64-unknown-linux-musl
|
|
|
|
pages:
|
|
stage: deploy
|
|
image: git.lix.systems/lix-project/lix:2.93.3
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
script:
|
|
- direnv exec . job pages
|
|
artifacts:
|
|
paths:
|
|
- public
|