Compare commits

..

1 commit

Author SHA1 Message Date
01b3880b41 test: add debug line to workflow 2026-05-29 16:06:58 +02:00
4 changed files with 40 additions and 60 deletions

View file

@ -2,9 +2,6 @@ name: Build and Push docker image
on: on:
workflow_dispatch: workflow_dispatch:
workflow_call: workflow_call:
push:
branches:
- main
jobs: jobs:
buildAndPush: buildAndPush:
@ -13,12 +10,15 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Nix build - name: Nix build
run: nix build --extra-experimental-features "flakes nix-command" . run: nix build --extra-experimental-features "flakes nix-command" .
- name: Debug
run: echo $PWD
- name: Setup skopeo - name: Setup skopeo
run: curl -o /etc/containers/policy.json --create-dirs https://raw.githubusercontent.com/containers/skopeo/refs/heads/main/default-policy.json run: curl -o /etc/containers/policy.json --create-dirs https://raw.githubusercontent.com/containers/skopeo/refs/heads/main/default-policy.json
- name: Push Image - name: Push Image
run: | run: |
skopeo copy --dest-password "$UPLOAD_TOKEN" --dest-username "$USERNAME" "docker-archive://$(realpath result)" "docker://$IMG_URL:$(date --iso-8601)" && \ nix shell --extra-experimental-features "flakes nix-command" nixpkgs#skopeo -c sh -c \
skopeo copy --dest-password "$UPLOAD_TOKEN" --dest-username "$USERNAME" "docker-archive://$(realpath result)" "docker://$IMG_URL" 'skopeo copy --dest-password "$UPLOAD_TOKEN" --dest-username "$USERNAME" docker-archive://$(realpath result) "docker://$IMG_URL:$(date --iso-8601)" && \
skopeo copy --dest-password "$UPLOAD_TOKEN" --dest-username "$USERNAME" docker-archive://$(realpath result) "docker://$IMG_URL"'
env: env:
USERNAME: tamipes USERNAME: tamipes
UPLOAD_TOKEN: ${{ secrets.UPLOAD_TOKEN }} UPLOAD_TOKEN: ${{ secrets.UPLOAD_TOKEN }}

View file

@ -7,22 +7,21 @@ As you cannot run a forgejo runner with `nixos/nix` due to it not having `node`
```bash ```bash
USERNAME="tamipes" USERNAME="tamipes"
URL="git.tami.moe" URL="git.tami.moe"
IMG_NAME="nix"
nix build --extra-experimental-features "flakes nix-command" . nix build --extra-experimental-features "flakes nix-command" .
docker load -i result docker load -i result
docker image tag "$IMG_NAME" "$URL/$USERNAME/$IMG_NAME:latest" docker image tag nix "$URL/$USERNAME/nix:latest"
docker login "https://$URL" docker login "https://$URL"
docker push "$URL/$USERNAME/$IMG_NAME" docker push "$URL/$USERNAME/nix"
rm result # don't forget to cleanup the GC root rm result # don't forget to cleanup the GC root
# I also tag with the date, but this might be unneeded # I also tag with the date, but this might be unneeded
docker image tag "$IMG_NAME" "$URL/$USERNAME/$IMG_NAME:latest$(date --iso-8601)" docker image tag nix "$URL/$USERNAME/nix:latest$(date --iso-8601)"
docker push "$URL/$USERNAME/$IMG_NAME" docker push "$URL/$USERNAME/nix"
``` ```
# Extra info # Extra info
- These image are essentially still "based" on `nixos/nix`, but it builds it with nodejs(+extras) included. Checkout the flake.nix! - This image is essentially still "based" on `nixos/nix`, but it builds it with nodejs included. Checkout the flake.nix!
- it does not use `nixos/nix` as a base image, but uses the same build script and adds extra stuff - it does not use `nixos/nix` as a base image, but uses the same build script and adds extra stuff
- [nixpkgs manual](https://nix.dev/manual/nix/2.24/installation/installing-docker#docker-image-with-the-latest-development-version-of-nix) - [nixpkgs manual](https://nix.dev/manual/nix/2.24/installation/installing-docker#docker-image-with-the-latest-development-version-of-nix)
- [nixos/nix build script](https://github.com/NixOS/nix/blob/master/docker.nix) - [nixos/nix build script](https://github.com/NixOS/nix/blob/master/docker.nix)

38
flake.lock generated
View file

@ -24,11 +24,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1778716662, "lastModified": 1733312601,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -48,14 +48,18 @@
"nixpkgs": [ "nixpkgs": [
"nix", "nix",
"nixpkgs" "nixpkgs"
],
"nixpkgs-stable": [
"nix",
"nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1778507602, "lastModified": 1734279981,
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=", "narHash": "sha256-NdaCraHPp8iYMWzdXAt5Nv6sA3MUzlCiGiR586TCwo0=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a", "rev": "aa9f40c906904ebd83da78e7f328cd8aeaeae785",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -74,11 +78,11 @@
"nixpkgs-regression": "nixpkgs-regression" "nixpkgs-regression": "nixpkgs-regression"
}, },
"locked": { "locked": {
"lastModified": 1780022537, "lastModified": 1768165334,
"narHash": "sha256-yhmkWBrvoIi0pSDmyBQZVNd4d1UZvWlgrXbUg8qZlnc=", "narHash": "sha256-42bXWekwea6E+q00HVskzi7ggMQSr8g/7ApQaNd+mr0=",
"owner": "nixos", "owner": "nixos",
"repo": "nix", "repo": "nix",
"rev": "9b03e7daa40b3d4d0a40a17d43bcc6c6d2b112ef", "rev": "252aff5c8f1dcdea1046b03a8196ef63ecf3b112",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -89,15 +93,15 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1778003029, "lastModified": 1763948260,
"narHash": "sha256-amc4Y3GF3+anUi7IJeLVzf7hVqLb3ZqCGzYtkVyp7Qw=", "narHash": "sha256-zZk7fn2ARAqmLwaYTpxBJmj81KIdz11NiWt7ydHHD/M=",
"rev": "0c88e1f2bdb93d5999019e99cb0e61e1fe2af4c5", "rev": "1c8ba8d3f7634acac4a2094eef7c32ad9106532c",
"type": "tarball", "type": "tarball",
"url": "https://releases.nixos.org/nixos/25.11/nixos-25.11.10470.0c88e1f2bdb9/nixexprs.tar.xz" "url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.813095.1c8ba8d3f763/nixexprs.tar.xz"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
"url": "https://channels.nixos.org/nixos-25.11/nixexprs.tar.xz" "url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz"
} }
}, },
"nixpkgs-23-11": { "nixpkgs-23-11": {
@ -134,11 +138,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1779560665, "lastModified": 1768127708,
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=", "narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", "rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -6,39 +6,16 @@
}; };
outputs = { nixpkgs, nix, self }: outputs = { nixpkgs, nix, self }:
let pkgs = import nixpkgs { system = "x86_64-linux"; }; in { let pkgs = import nixpkgs { system = "x86_64-linux"; }; in {
packages.x86_64-linux = rec { packages.x86_64-linux.default = import (nix + "/docker.nix") {
default = nix-with-tools; inherit pkgs;
extraPkgs = [ pkgs.nodejs ];
minimal-nix = import (nix + "/docker.nix") { Labels = {
inherit pkgs; "org.opencontainers.image.title" = "Nix";
extraPkgs = [ pkgs.nodejs ]; "org.opencontainers.image.source" = "https://git.tami.moe/tamipes/";
"org.opencontainers.image.vendor" = "Tamipes";
Labels = { "org.opencontainers.image.version" = pkgs.nix.version;
"org.opencontainers.image.title" = "Nix (minimal)"; "org.opencontainers.image.description" = "Nix container image with nodejs";
"org.opencontainers.image.source" = "https://git.tami.moe/tamipes/forgejo-actions";
"org.opencontainers.image.vendor" = "Tamipes";
"org.opencontainers.image.version" = pkgs.nix.version;
"org.opencontainers.image.description" = "Nix container image with nodejs";
};
};
nix-with-tools = import (nix + "/docker.nix") {
inherit pkgs;
extraPkgs = [ pkgs.nodejs pkgs.skopeo ];
nixConf = {
extra-substituters = [ "https://nix-cache.tami.moe" ];
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-cache.tami.moe:3jrWZ412K0YTFfKMJC6ftc4lsugeMVWDBiudFCAdDb8="
];
};
Labels = {
"org.opencontainers.image.title" = "Nix";
"org.opencontainers.image.source" = "https://git.tami.moe/tamipes/forgejo-actions";
"org.opencontainers.image.vendor" = "Tamipes";
"org.opencontainers.image.version" = pkgs.nix.version;
"org.opencontainers.image.description" = "Nix container image with more cli tools";
};
}; };
}; };
}; };