--- stages: - test - build - publish default: tests: stage: test image: rust before_script: - rustc --version - cargo --version - rustup component add rustfmt script: - cargo fmt --check - cargo test flake-check: stage: test image: nixpkgs/nix-flakes:nixos-24.11-x86_64-linux before_script: - mkdir -p ~/.ssh - eval $(ssh-agent -s) - chmod 400 "$NIX_SSH_PRIVATE_KEY" - ssh-add "$NIX_SSH_PRIVATE_KEY" - cp "$SSH_KNOWN_HOSTS" ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts - echo "substituters = ssh://nix-ssh@build.enoent.fr?priority=10 https://cache.nixos.org?priority=40 https://cuda-maintainers.cachix.org https://nix-community.cachix.org https://statix.cachix.org https://pre-commit-hooks.cachix.org" >> /etc/nix/nix.conf - echo "trusted-substituters = ssh://nix-ssh@build.enoent.fr" >> /etc/nix/nix.conf - echo "trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= statix.cachix.org-1:Z9E/g1YjCjU117QOOt07OjhljCoRZddiAm4VVESvais= pre-commit-hooks.cachix.org-1:Pkk3Panw5AW24TOv6kz3PvLhlH8puAsJTBbOPmBo7Rc=" >> /etc/nix/nix.conf - echo "extra-trusted-public-keys = galatea-0:E7F1FzfoY+X9l9Xn9AvNWDkW1U7H644FHDzX3lpxHkI=" >> /etc/nix/nix.conf - echo "builders-use-substitutes = true" >> /etc/nix/nix.conf - echo "max-jobs = 0" >> /etc/nix/nix.conf - echo "ssh://nix-ssh@build.enoent.fr x86_64-linux" >> /etc/nix/machines - echo "ssh://nix-ssh@build.enoent.fr aarch64-linux" >> /etc/nix/machines - nix store info --store ssh://nix-ssh@build.enoent.fr script: - nix flake check build:amd64: stage: build image: rust before_script: - rustc --version - cargo --version script: - cargo build --release artifacts: paths: - target/release/reddit-magnet rustdoc: stage: build image: rust before_script: - rustc --version - cargo --version script: - cargo doc artifacts: paths: - target/doc pages: stage: publish image: alpine dependencies: - build:amd64 - rustdoc script: - mkdir -p public - mv target/doc public/doc - mv target/release/reddit-magnet public/reddit-magnet-amd64 artifacts: paths: - public only: - main ...