From 9c51fb65f1ef6665cff52bb7e8bade7c2b081376 Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Wed, 23 Apr 2025 12:08:46 +0200 Subject: [PATCH 01/12] Init CI --- .gitea/workflows/build-container.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .gitea/workflows/build-container.yml diff --git a/.gitea/workflows/build-container.yml b/.gitea/workflows/build-container.yml new file mode 100644 index 0000000..619690a --- /dev/null +++ b/.gitea/workflows/build-container.yml @@ -0,0 +1,9 @@ +name: Gitea Actions Demo +on: [push] +jobs: + build-container: + steps: + - run: echo echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." + - name: Checkout repo + uses: actions/checkout@v4 + - run: ls -l -- 2.47.1 From 0b1a6699bbe2d81f199f9e111cf71581f358eabf Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Wed, 23 Apr 2025 12:12:19 +0200 Subject: [PATCH 02/12] Set runs-on --- .gitea/workflows/build-container.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build-container.yml b/.gitea/workflows/build-container.yml index 619690a..1973175 100644 --- a/.gitea/workflows/build-container.yml +++ b/.gitea/workflows/build-container.yml @@ -2,6 +2,7 @@ name: Gitea Actions Demo on: [push] jobs: build-container: + runs-on: node-22-bookworm steps: - run: echo echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." - name: Checkout repo -- 2.47.1 From 4e6e4f91e0054687a3c67882351edb4326efadaa Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Wed, 23 Apr 2025 12:19:13 +0200 Subject: [PATCH 03/12] Add install nix and build container steps --- .gitea/workflows/build-container.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/build-container.yml b/.gitea/workflows/build-container.yml index 1973175..8ccaf64 100644 --- a/.gitea/workflows/build-container.yml +++ b/.gitea/workflows/build-container.yml @@ -1,10 +1,16 @@ -name: Gitea Actions Demo +name: Build container on: [push] jobs: build-container: - runs-on: node-22-bookworm + runs-on: ubuntu-22.04 steps: - - run: echo echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." - name: Checkout repo uses: actions/checkout@v4 - run: ls -l + - name: Install Nix + uses: cachix/install-nix-action@v31 + with: + enable_kvm: false + - name: Build container + run: nix build .#docker + - run: find result/* -- 2.47.1 From b15f0b08a150e9a58e981961771910d30685d8d9 Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Wed, 23 Apr 2025 12:27:47 +0200 Subject: [PATCH 04/12] Try nix-quick-install-action --- .gitea/workflows/build-container.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.gitea/workflows/build-container.yml b/.gitea/workflows/build-container.yml index 8ccaf64..3100ff0 100644 --- a/.gitea/workflows/build-container.yml +++ b/.gitea/workflows/build-container.yml @@ -8,9 +8,7 @@ jobs: uses: actions/checkout@v4 - run: ls -l - name: Install Nix - uses: cachix/install-nix-action@v31 - with: - enable_kvm: false + uses: nixbuild/nix-quick-install-action@v30 - name: Build container run: nix build .#docker - run: find result/* -- 2.47.1 From 9e5c73e3db3993e269b9d0121039fb24cb5a35a3 Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Wed, 23 Apr 2025 12:29:01 +0200 Subject: [PATCH 05/12] Add sudo installation step --- .gitea/workflows/build-container.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/build-container.yml b/.gitea/workflows/build-container.yml index 3100ff0..5a1b13e 100644 --- a/.gitea/workflows/build-container.yml +++ b/.gitea/workflows/build-container.yml @@ -7,8 +7,14 @@ jobs: - name: Checkout repo uses: actions/checkout@v4 - run: ls -l + - run: apt update && apt install sudo - name: Install Nix - uses: nixbuild/nix-quick-install-action@v30 + uses: cachix/install-nix-action@v31 + with: + enable_kvm: false + - name: Prefetch deps + run: nix flake prefetch - name: Build container run: nix build .#docker - - run: find result/* + - run: ls -l + - run: ls -l result -- 2.47.1 From 1cc660dbf2baa470ffe8fa45e577908c21c0c718 Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Wed, 23 Apr 2025 12:42:25 +0200 Subject: [PATCH 06/12] Add docker load command --- .gitea/workflows/build-container.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/build-container.yml b/.gitea/workflows/build-container.yml index 5a1b13e..21181f1 100644 --- a/.gitea/workflows/build-container.yml +++ b/.gitea/workflows/build-container.yml @@ -17,4 +17,5 @@ jobs: - name: Build container run: nix build .#docker - run: ls -l - - run: ls -l result + - run: ls -l $(readlink -f result) + - run: docker load < result -- 2.47.1 From 831d3765ef2275fa54ae38c62cb2e9d3df1936be Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Wed, 23 Apr 2025 12:57:29 +0200 Subject: [PATCH 07/12] Add crane tool --- .gitea/workflows/build-container.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/build-container.yml b/.gitea/workflows/build-container.yml index 21181f1..9e75b00 100644 --- a/.gitea/workflows/build-container.yml +++ b/.gitea/workflows/build-container.yml @@ -12,10 +12,12 @@ jobs: uses: cachix/install-nix-action@v31 with: enable_kvm: false - - name: Prefetch deps - run: nix flake prefetch - name: Build container run: nix build .#docker - run: ls -l - run: ls -l $(readlink -f result) - - run: docker load < result + - name: Install crane + run: | + curl -sL "https://github.com/google/go-containerregistry/releases/download/v0.20.3/go-containerregistry_Linux_x86_64.tar.gz" > go-containerregistry.tar.gz + tar -zxvf go-containerregistry.tar.gz -C /usr/local/bin/ crane + - run: crane push result -- 2.47.1 From c98044dbbc06238dcffe5992bc9a89a56fe6027b Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Wed, 23 Apr 2025 13:27:11 +0200 Subject: [PATCH 08/12] Add version file for crane push --- .gitea/workflows/build-container.yml | 25 ++++++++++++++++++------- flake.nix | 5 ++++- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/build-container.yml b/.gitea/workflows/build-container.yml index 9e75b00..4041ff4 100644 --- a/.gitea/workflows/build-container.yml +++ b/.gitea/workflows/build-container.yml @@ -1,23 +1,34 @@ -name: Build container +name: Build image on: [push] jobs: - build-container: + build-image: runs-on: ubuntu-22.04 steps: - name: Checkout repo uses: actions/checkout@v4 - run: ls -l - - run: apt update && apt install sudo + - run: apt-get update && apt-get install -y sudo - name: Install Nix uses: cachix/install-nix-action@v31 with: enable_kvm: false - - name: Build container - run: nix build .#docker + - name: Build image + run: nix build .#image -o image.tar.gz + - name: Get image name + run: nix build .#image-name -o image-name - run: ls -l - - run: ls -l $(readlink -f result) + - run: ls -l $(readlink -f image.tar.gz) - name: Install crane run: | curl -sL "https://github.com/google/go-containerregistry/releases/download/v0.20.3/go-containerregistry_Linux_x86_64.tar.gz" > go-containerregistry.tar.gz tar -zxvf go-containerregistry.tar.gz -C /usr/local/bin/ crane - - run: crane push result + + - run: echo $(cat image-name) + + - run: tar tvf image.tar.gz + - run: echo $(readlink -f image.tar.gz) + - uses: actions/upload-artifact@v3 + with: + name: tarball + path: image.tar.gz + - run: crane push $(readlink -f image.tar.gz) $(cat image-name) diff --git a/flake.nix b/flake.nix index 912a63f..178dcca 100644 --- a/flake.nix +++ b/flake.nix @@ -39,7 +39,10 @@ }; packages.${system} = { default = vrnp-static; - docker = pkgs.dockerTools.buildImage { + image-name = pkgs.runCommand "vrnp-version" {} '' + echo -n git.pbrinkmeier.de/paul/vrnp:${vrnp-static.version} > $out + ''; + image = pkgs.dockerTools.buildImage { name = "git.pbrinkmeier.de/paul/vrnp"; tag = vrnp-static.version; copyToRoot = pkgs.buildEnv { -- 2.47.1 From 2abfb10605b29150d001a8e4a31a1e7eeda6b367 Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Wed, 23 Apr 2025 14:00:56 +0200 Subject: [PATCH 09/12] Try using catthehacker/ubuntu container --- .gitea/workflows/build-container.yml | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/.gitea/workflows/build-container.yml b/.gitea/workflows/build-container.yml index 4041ff4..80f8c71 100644 --- a/.gitea/workflows/build-container.yml +++ b/.gitea/workflows/build-container.yml @@ -2,7 +2,8 @@ name: Build image on: [push] jobs: build-image: - runs-on: ubuntu-22.04 + container: + image: catthehacker/ubuntu:act-latest steps: - name: Checkout repo uses: actions/checkout@v4 @@ -18,17 +19,4 @@ jobs: run: nix build .#image-name -o image-name - run: ls -l - run: ls -l $(readlink -f image.tar.gz) - - name: Install crane - run: | - curl -sL "https://github.com/google/go-containerregistry/releases/download/v0.20.3/go-containerregistry_Linux_x86_64.tar.gz" > go-containerregistry.tar.gz - tar -zxvf go-containerregistry.tar.gz -C /usr/local/bin/ crane - - - run: echo $(cat image-name) - - - run: tar tvf image.tar.gz - - run: echo $(readlink -f image.tar.gz) - - uses: actions/upload-artifact@v3 - with: - name: tarball - path: image.tar.gz - - run: crane push $(readlink -f image.tar.gz) $(cat image-name) + - run: docker load < image.tar.gz -- 2.47.1 From b77a2d908d4ce1369610d226c571079050884092 Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Wed, 23 Apr 2025 14:23:36 +0200 Subject: [PATCH 10/12] Add docker commands --- .gitea/workflows/build-container.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/build-container.yml b/.gitea/workflows/build-container.yml index 80f8c71..e5389e7 100644 --- a/.gitea/workflows/build-container.yml +++ b/.gitea/workflows/build-container.yml @@ -1,5 +1,5 @@ name: Build image -on: [push] +on: [tags] jobs: build-image: container: @@ -7,16 +7,18 @@ jobs: steps: - name: Checkout repo uses: actions/checkout@v4 - - run: ls -l - run: apt-get update && apt-get install -y sudo - name: Install Nix uses: cachix/install-nix-action@v31 with: enable_kvm: false + - run: echo $GITHUB_REF_NAME - name: Build image run: nix build .#image -o image.tar.gz - name: Get image name run: nix build .#image-name -o image-name - - run: ls -l - - run: ls -l $(readlink -f image.tar.gz) + - run: docker login -u paul -p "$PASSWORD" git.pbrinkmeier.de + env: + PASSWORD: "${{ secrets.REGISTRY_PASSWORD }}" - run: docker load < image.tar.gz + - run: docker image push $(cat image-name) -- 2.47.1 From 1eedb2a1135d6355eaf64114d104669a8592322c Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Wed, 23 Apr 2025 16:44:29 +0200 Subject: [PATCH 11/12] Run on tags instead of push --- .gitea/workflows/build-container.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/build-container.yml b/.gitea/workflows/build-container.yml index e5389e7..b1acf26 100644 --- a/.gitea/workflows/build-container.yml +++ b/.gitea/workflows/build-container.yml @@ -1,5 +1,8 @@ name: Build image -on: [tags] +on: + push: + tags: + - 'v*' jobs: build-image: container: -- 2.47.1 From 9f26a280cd65bec46010984de5c5d3ee257452d7 Mon Sep 17 00:00:00 2001 From: Paul Brinkmeier Date: Wed, 23 Apr 2025 17:01:00 +0200 Subject: [PATCH 12/12] Add version to image meta --- .../{build-container.yml => build-image.yml} | 15 ++++++++++----- flake.nix | 6 ++++-- 2 files changed, 14 insertions(+), 7 deletions(-) rename .gitea/workflows/{build-container.yml => build-image.yml} (59%) diff --git a/.gitea/workflows/build-container.yml b/.gitea/workflows/build-image.yml similarity index 59% rename from .gitea/workflows/build-container.yml rename to .gitea/workflows/build-image.yml index b1acf26..763446d 100644 --- a/.gitea/workflows/build-container.yml +++ b/.gitea/workflows/build-image.yml @@ -10,18 +10,23 @@ jobs: steps: - name: Checkout repo uses: actions/checkout@v4 - - run: apt-get update && apt-get install -y sudo + # Required for installing nix + - name: Install sudo + run: apt-get update && apt-get install -y sudo - name: Install Nix uses: cachix/install-nix-action@v31 with: enable_kvm: false - - run: echo $GITHUB_REF_NAME + - name: Get image meta + run: nix build .#image-meta -o image-meta + - name: Version check + run: | + VERSION=$(cat image-meta/version) + [ "$GITHUB_REF_NAME" = v"$VERSION" ] - name: Build image run: nix build .#image -o image.tar.gz - - name: Get image name - run: nix build .#image-name -o image-name - run: docker login -u paul -p "$PASSWORD" git.pbrinkmeier.de env: PASSWORD: "${{ secrets.REGISTRY_PASSWORD }}" - run: docker load < image.tar.gz - - run: docker image push $(cat image-name) + - run: docker image push $(cat image-meta/name) diff --git a/flake.nix b/flake.nix index 178dcca..7f132a2 100644 --- a/flake.nix +++ b/flake.nix @@ -39,8 +39,10 @@ }; packages.${system} = { default = vrnp-static; - image-name = pkgs.runCommand "vrnp-version" {} '' - echo -n git.pbrinkmeier.de/paul/vrnp:${vrnp-static.version} > $out + image-meta = pkgs.runCommand "vrnp-version" {} '' + mkdir -p $out + echo -n ${vrnp-static.version} > $out/version + echo -n git.pbrinkmeier.de/paul/vrnp:${vrnp-static.version} > $out/name ''; image = pkgs.dockerTools.buildImage { name = "git.pbrinkmeier.de/paul/vrnp"; -- 2.47.1