From 0d0e88af1fdaa3fa9f6c605deb032a0c0272836e Mon Sep 17 00:00:00 2001 From: dadada Date: Sun, 28 May 2023 15:29:11 +0200 Subject: [PATCH] flake: add docker image --- .github/workflows/deploy.yml | 38 ++++++++++++++++++++++++++++++ .github/workflows/docker-image.yml | 16 ------------- Dockerfile | 11 --------- flake.nix | 18 +++++++++----- nix/default.nix | 3 ++- 5 files changed, 52 insertions(+), 34 deletions(-) create mode 100644 .github/workflows/deploy.yml delete mode 100644 .github/workflows/docker-image.yml delete mode 100644 Dockerfile diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..ef31e02 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,38 @@ +name: Deploy + +on: + push: + branches: [main] + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + checks: + name: "Deploy" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: cachix/install-nix-action@v21 + with: + nix_path: nixpkgs=channel:nixos-stable + extra_nix_config: | + experimental-features = nix-command flakes + access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} + system-features = nixos-test benchmark big-parallel kvm + - uses: cachix/cachix-action@v12 + with: + name: pad-archiver + signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + - run: nix --experimental-features 'nix-command flakes' build .#dockerImage -L + - run: docker load -i ./result/image.tar.gz + - run: docker tag pad-archiver ${{ env.IMAGE_NAME }} + - name: Log in to the Container registry + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - run: docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml deleted file mode 100644 index ea188c0..0000000 --- a/.github/workflows/docker-image.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Docker Image CI - -on: - push: - branches: [ "main" ] - -jobs: - - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Build the Docker image - run: docker build . --file Dockerfile --tag my-image-name:$(date +%s) diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index e3fba78..0000000 --- a/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM golang:1.19 - -WORKDIR /usr/src/app - -COPY go.mod go.sum ./ -RUN go mod download && go mod verify - -COPY . . -RUN go build -v -o /usr/local/bin/pad-archiver ./... - -CMD ["pad-archiver"] diff --git a/flake.nix b/flake.nix index c0439ad..b55b63d 100644 --- a/flake.nix +++ b/flake.nix @@ -10,16 +10,22 @@ in rec { formatter = pkgs.nixpkgs-fmt; - - packages = flake-utils.lib.flattenTree { - pad-archiver = pkgs.callPackage ./nix { pkgs = pkgs; }; - gitAndTools = pkgs.gitAndTools; + packages = flake-utils.lib.flattenTree rec { + pad-archiver = pkgs.callPackage ./nix { }; + dockerImage = pkgs.dockerTools.buildLayeredImage { + name = "pad-archiver"; + tag = "latest"; + contents = [ pad-archiver ]; + config = { + Cmd = [ "${pad-archiver}/bin/pad-archiver" ]; + WorkingDir = "/data"; + Volumes = { "/data" = { }; }; + }; + }; }; - checks = { nix-format = pkgs.runCommand "nix-format" { buildInputs = [ formatter ]; } "nixpkgs-fmt --check ${./.} && touch $out"; }; - defaultPackage = packages.pad-archiver; apps.pad-archiver = flake-utils.lib.mkApp { drv = packages.pad-archiver; }; defaultApp = apps.pad-archiver; diff --git a/nix/default.nix b/nix/default.nix index 9edd34e..d53755c 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -1,9 +1,10 @@ -{ pkgs, lib, buildGoModule }: +{ lib, buildGoModule }: buildGoModule { pname = "pad-archiver"; version = "0.0.1"; src = ../.; vendorSha256 = "sha256-vBni3j3o0P13PJg/Ab1ux9zSVr05Iha/sb8dVTX4G0g="; + ldflags = [ "-s" "-w" ]; meta = with lib; { description = "Archives Etherpads with git"; homepage = "https://github.com/dadada/pad-archiver";