CI #1
							
								
								
									
										27
									
								
								.gitea/workflows/build.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								.gitea/workflows/build.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | |||||||
|  | name: build | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  | jobs: | ||||||
|  |   build: | ||||||
|  |     container: | ||||||
|  |       image: node:24-bookworm | ||||||
|  |       env: | ||||||
|  |         USER: node | ||||||
|  |         HOME: /home/node | ||||||
|  |         NIX_CONFIG: experimental-features = nix-command flakes | ||||||
|  |       volumes: | ||||||
|  |         - /var/lib/pbri/docker/nix_runner_nix:/nix | ||||||
|  |         - /var/lib/pbri/docker/nix_runner_etc:/etc/nix | ||||||
|  |         - /var/lib/pbri/docker/nix_runner_home_node:/home/node | ||||||
|  |       options: --user 1000:1000 | ||||||
|  |     steps: | ||||||
|  |       - name: Prep nix env | ||||||
|  |         run: | | ||||||
|  |           if [ ! -f ~/.nix-profile/etc/profile.d/nix.sh ]; then | ||||||
|  |             curl -L https://nixos.org/nix/install | bash -s -- --no-daemon | ||||||
|  |           fi | ||||||
|  |           . ~/.nix-profile/etc/profile.d/nix.sh  | ||||||
|  |           env >> "$GITHUB_ENV" | ||||||
|  |       - name: Checkout repo | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  |       - run: nix build --log-format raw --print-build-logs .#yore | ||||||
							
								
								
									
										40
									
								
								.gitea/workflows/deliver.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								.gitea/workflows/deliver.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,40 @@ | |||||||
|  | name: deliver | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     tags: | ||||||
|  |       - 'v*' | ||||||
|  | jobs: | ||||||
|  |   deliver: | ||||||
|  |     container: | ||||||
|  |       image: node:24-bookworm | ||||||
|  |       env: | ||||||
|  |         USER: node | ||||||
|  |         HOME: /home/node | ||||||
|  |         NIX_CONFIG: experimental-features = nix-command flakes | ||||||
|  |       volumes: | ||||||
|  |         - /var/lib/pbri/docker/nix_runner_nix:/nix | ||||||
|  |         - /var/lib/pbri/docker/nix_runner_etc:/etc/nix | ||||||
|  |         - /var/lib/pbri/docker/nix_runner_home_node:/home/node | ||||||
|  |       options: --user 1000:1000 | ||||||
|  |     steps: | ||||||
|  |       - name: Prep nix env | ||||||
|  |         run: | | ||||||
|  |           if [ ! -f ~/.nix-profile/etc/profile.d/nix.sh ]; then | ||||||
|  |             curl -L https://nixos.org/nix/install | bash -s -- --no-daemon | ||||||
|  |           fi | ||||||
|  |           . ~/.nix-profile/etc/profile.d/nix.sh | ||||||
|  |           env >> "$GITHUB_ENV" | ||||||
|  |       - name: Checkout repo | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  |       - name: Get image meta | ||||||
|  |         run: nix build .#yore-meta -o /tmp/yore-meta | ||||||
|  |       - name: Version check | ||||||
|  |         run: | | ||||||
|  |           VERSION=$(cat /tmp/yore-meta/version) | ||||||
|  |           [ "$GITHUB_REF_NAME" = v"$VERSION" ] | ||||||
|  |       - run: nix build --log-format raw --print-build-logs .#image -o image.tar.gz | ||||||
|  |       - run: gunzip -c image.tar.gz > image.tar | ||||||
|  |       - run: nix run .#crane -- auth login git.pbrinkmeier.de -u paul -p "$PASSWORD" | ||||||
|  |         env: | ||||||
|  |           PASSWORD: "${{ secrets.REGISTRY_PASSWORD }}" | ||||||
|  |       - run: nix run .#crane -- push image.tar $(cat /tmp/yore-meta/image-tag) | ||||||
| @ -25,7 +25,7 @@ You can also use it to run a database for development by choosing a `$COMMAND` t | |||||||
| ``` | ``` | ||||||
| BASE_DIR=./pgdata scripts/with-db psql "dbname=yore-test port=5433 user=yore-test" | BASE_DIR=./pgdata scripts/with-db psql "dbname=yore-test port=5433 user=yore-test" | ||||||
| # cabal repl with env vars set | # cabal repl with env vars set | ||||||
| BASE_DIR=./pgdata scripts/with-db scripts/dev | BASE_DIR=./pgdata scripts/with-db cabal run | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| By setting `$BASE_DIR` you can persist the database for later runs. | By setting `$BASE_DIR` you can persist the database for later runs. | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										8
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @ -64,11 +64,11 @@ | |||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1756064767, |         "lastModified": 1759790870, | ||||||
|         "narHash": "sha256-SaJK9VYc/oF5aBSMSW+We8TggER4+uTAHvc2ztnLpYo=", |         "narHash": "sha256-rEsaO38v2wvAThPzgbYPgnv29mu6GxTYLjgci3GYaO4=", | ||||||
|         "ref": "main", |         "ref": "main", | ||||||
|         "rev": "af16429d827816cf9bec69026e13f50acc3d2691", |         "rev": "4db509c1b52ee7b5012abfef5e11e62beab27a16", | ||||||
|         "revCount": 65, |         "revCount": 66, | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://git.pbrinkmeier.de/paul/opium" |         "url": "https://git.pbrinkmeier.de/paul/opium" | ||||||
|       }, |       }, | ||||||
|  | |||||||
							
								
								
									
										31
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								flake.nix
									
									
									
									
									
								
							| @ -26,11 +26,18 @@ | |||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         # For building the package, we use only the files not ignored by Git as inputs. |         # For building the package, we use only the files not ignored by Git as inputs. | ||||||
|         # Also, flake.nix and flake.lock are not included to avoid rebuilds when |         # Also, flake.nix, flake.lock and .gitea are not included to avoid rebuilds when | ||||||
|         # working on them. |         # working on them. | ||||||
|         src = pkgs.lib.cleanSourceWith { |         src = pkgs.lib.cleanSourceWith { | ||||||
|           src = gitignore.lib.gitignoreSource ./.; |           src = ./.; | ||||||
|           filter = path: type: builtins.elem (builtins.baseNameOf path) [ "flake.nix" "flake.lock" ]; |           filter = gitignore.lib.gitignoreFilterWith { | ||||||
|  |             basePath = ./.; | ||||||
|  |             extraRules = '' | ||||||
|  |               flake.nix | ||||||
|  |               flake.lock | ||||||
|  |               .gitea | ||||||
|  |             ''; | ||||||
|  |           }; | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         yore = pkgs.lib.pipe |         yore = pkgs.lib.pipe | ||||||
| @ -53,15 +60,21 @@ | |||||||
|           ]; |           ]; | ||||||
|       in { |       in { | ||||||
|         packages = rec { |         packages = rec { | ||||||
|           docker = |           default = yore; | ||||||
|  |           inherit yore; | ||||||
|  |           yore-meta = pkgs.runCommand "yore-meta" {} '' | ||||||
|  |             mkdir -p $out | ||||||
|  |             echo -n ${yore.version} > $out/version | ||||||
|  |             echo -n git.pbrinkmeier.de/paul/yore:${yore.version} > $out/image-tag | ||||||
|  |           ''; | ||||||
|  | 
 | ||||||
|  |           image = | ||||||
|             pkgs.dockerTools.buildImage { |             pkgs.dockerTools.buildImage { | ||||||
|               name = "git.pbrinkmeier.de/paul/yore"; |               name = "git.pbrinkmeier.de/paul/yore"; | ||||||
|               tag = yore.version; |               tag = yore.version; | ||||||
|               config.Cmd = [ "${yore}/bin/yore" ]; |               config.Cmd = [ "${yore}/bin/yore" ]; | ||||||
|             }; |             }; | ||||||
| 
 | 
 | ||||||
|           default = yore; |  | ||||||
| 
 |  | ||||||
|           opium_ = opium.packages.${system}.opium; |           opium_ = opium.packages.${system}.opium; | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
| @ -82,5 +95,11 @@ | |||||||
|               overrides = addOpium; |               overrides = addOpium; | ||||||
|             }).env; |             }).env; | ||||||
|         }; |         }; | ||||||
|  |         apps = { | ||||||
|  |           crane = { | ||||||
|  |             type = "app"; | ||||||
|  |             program = "${pkgs.crane}/bin/crane"; | ||||||
|  |           }; | ||||||
|  |         }; | ||||||
|       }); |       }); | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| cabal-version: 3.4 | cabal-version: 3.4 | ||||||
| 
 | 
 | ||||||
| name:           yore | name:           yore | ||||||
| version:        0 | version:        0.0.1 | ||||||
| author:         Paul Brinkmeier | author:         Paul Brinkmeier | ||||||
| maintainer:     hallo@pbrinkmeier.de | maintainer:     hallo@pbrinkmeier.de | ||||||
| copyright:      2023 Paul Brinkmeier | copyright:      2023 Paul Brinkmeier | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user