mirror of
https://gitlab.com/TECHNOFAB/nix-gitlab-ci.git
synced 2025-12-12 18:20:07 +01:00
chore: initial commit
This commit is contained in:
commit
0df36ad437
7 changed files with 768 additions and 0 deletions
112
flake.nix
Normal file
112
flake.nix
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
{
|
||||
outputs = {
|
||||
self,
|
||||
flake-parts,
|
||||
systems,
|
||||
nixpkgs,
|
||||
devenv,
|
||||
...
|
||||
} @ inputs:
|
||||
flake-parts.lib.mkFlake {inherit inputs;} {
|
||||
imports = [
|
||||
inputs.devenv.flakeModule
|
||||
./flakeModule.nix
|
||||
];
|
||||
systems = import systems;
|
||||
flake = {
|
||||
flakeModule = ./flakeModule.nix;
|
||||
};
|
||||
perSystem = {
|
||||
pkgs,
|
||||
system,
|
||||
inputs',
|
||||
...
|
||||
}: {
|
||||
formatter = pkgs.alejandra;
|
||||
devenv.shells = {
|
||||
default = {
|
||||
packages = [pkgs.dive pkgs.skopeo];
|
||||
|
||||
pre-commit = {
|
||||
hooks = {
|
||||
alejandra.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
ci = {
|
||||
stages = ["test"];
|
||||
default = {
|
||||
retry = {
|
||||
max = 2;
|
||||
when = "runner_system_failure";
|
||||
};
|
||||
};
|
||||
jobs = {
|
||||
"test" = {
|
||||
stage = "test";
|
||||
# wait an hour so the image builds
|
||||
start_in = "1 hour";
|
||||
deps = [pkgs.hello pkgs.curl];
|
||||
script = [
|
||||
"hello"
|
||||
"curl google.de"
|
||||
];
|
||||
};
|
||||
"test-non-nix" = {
|
||||
nix = false;
|
||||
stage = "test";
|
||||
image = "alpine:latest";
|
||||
script = [
|
||||
"echo \"This job will not be modified to use nix\""
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
packages = {
|
||||
image = pkgs.dockerTools.buildImage {
|
||||
name = "nix-gitlab-ci";
|
||||
fromImage = pkgs.dockerTools.pullImage {
|
||||
imageName = "nixpkgs/nix-unstable-static";
|
||||
imageDigest = "sha256:8a9138d663d5a0d4c3ab01ee328e7e30dd236119d542df0a0355d66231049228";
|
||||
sha256 = "1ynn0xklh3bjqqrm1438fw029pwzsrxr0645nbyb6bl0x4102rjs";
|
||||
finalImageName = "nixpkgs/nix-unstable-static";
|
||||
finalImageTag = "latest";
|
||||
};
|
||||
copyToRoot = pkgs.buildEnv {
|
||||
name = "image-root";
|
||||
paths = [pkgs.gitMinimal pkgs.cachix inputs'.attic.packages.attic-client];
|
||||
pathsToLink = ["/bin"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
|
||||
# flake & devenv related
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
systems.url = "github:nix-systems/default-linux";
|
||||
devenv = {
|
||||
url = "github:cachix/devenv";
|
||||
inputs.pre-commit-hooks.follows = "pre-commit-hooks";
|
||||
};
|
||||
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
|
||||
attic.url = "github:zhaofengli/attic";
|
||||
};
|
||||
|
||||
nixConfig = {
|
||||
extra-substituters = [
|
||||
"https://cache.nixos.org/"
|
||||
"https://nix-community.cachix.org"
|
||||
];
|
||||
|
||||
extra-trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue