ci: test docker regestry
This commit is contained in:
@@ -0,0 +1,35 @@
|
|||||||
|
name: Nix Docker Push Test
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-push:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Nix
|
||||||
|
uses: cachix/install-nix-action@v27
|
||||||
|
|
||||||
|
- name: Build Docker Image with Nix
|
||||||
|
run: |
|
||||||
|
nix build .#dockerImage
|
||||||
|
cp result hello-image.tar.gz
|
||||||
|
|
||||||
|
- name: Load image to Local Docker
|
||||||
|
run: docker load < hello-image.tar.gz
|
||||||
|
|
||||||
|
- name: Login to Gitea Registry
|
||||||
|
run: |
|
||||||
|
echo "${{ secrets.GITEA_TOKEN }}" | docker login git.zhukovsky.me -u ${{ gitea.actor }} --password-stdin
|
||||||
|
|
||||||
|
- name: Tag and Push
|
||||||
|
run: |
|
||||||
|
# В Gitea путь к образу: <domain>/<owner>/<repo>
|
||||||
|
# Приводим к нижнему регистру для реестра
|
||||||
|
REGISTRY_IMAGE="git.zhukovsky.me/$(echo ${{ gitea.repository }} | tr '[:upper:]' '[:lower:]')"
|
||||||
|
|
||||||
|
# Находим ID образа, который мы только что загрузили (test-nix-hello:latest)
|
||||||
|
docker tag test-nix-hello:latest $REGISTRY_IMAGE:latest
|
||||||
|
docker push $REGISTRY_IMAGE:latest
|
||||||
|
|
||||||
@@ -1,17 +1,31 @@
|
|||||||
{
|
{
|
||||||
description = "A simple Nix flake for testing Gitea Actions";
|
description = "A simple Nix flake for testing Gitea Actions Docker build";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs }:
|
outputs = { nixpkgs, ... }:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
# Обычный пакет
|
||||||
packages.${system}.default = pkgs.hello;
|
packages.${system}.default = pkgs.hello;
|
||||||
|
|
||||||
|
# Docker образ
|
||||||
|
packages.${system}.dockerImage = pkgs.dockerTools.buildImage {
|
||||||
|
name = "test-nix-hello";
|
||||||
|
tag = "latest";
|
||||||
|
copyToRoot = pkgs.buildEnv {
|
||||||
|
name = "image-root";
|
||||||
|
paths = [ pkgs.hello pkgs.coreutils ];
|
||||||
|
pathsToLink = [ "/bin" ];
|
||||||
|
};
|
||||||
|
config = {
|
||||||
|
Cmd = [ "/bin/hello" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user