nix docker image

This commit is contained in:
Robin Appelman 2023-06-01 19:58:43 +02:00
commit 938ca06599
3 changed files with 33 additions and 32 deletions

View file

@ -49,7 +49,7 @@ jobs:
- uses: Swatinem/rust-cache@v1 - uses: Swatinem/rust-cache@v1
- uses: lriesebos/nix-develop-command@6f5f4830884d1957767e920c51d6118c9b0ac828 - uses: lriesebos/nix-develop-command@6f5f4830884d1957767e920c51d6118c9b0ac828
with: with:
command: "cargo clippy -D warnings" command: "cargo clippy -- -D warnings"
build: build:
name: Build name: Build
@ -62,4 +62,21 @@ jobs:
name: ci name: ci
instance: https://cache.icewind.me instance: https://cache.icewind.me
authToken: '${{ secrets.ATTIC_TOKEN }}' authToken: '${{ secrets.ATTIC_TOKEN }}'
- run: nix build .#${{ matrix.target }} - run: nix build .#${{ matrix.target }}
docker:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- uses: icewind1991/attic-action@v1
with:
name: ci
instance: https://cache.icewind.me
authToken: '${{ secrets.ATTIC_TOKEN }}'
- run: nix build .#dockerImage
- name: Push image
if: github.ref == 'refs/heads/main'
run: |
skopeo copy --dest-creds="${{ secrets.DOCKERHUB_USERNAME }}:${{ secrets.DOCKERHUB_TOKEN }}" "docker-archive:$(nix build .#dockerImage --print-out-paths)" "docker://demostf/backup"

View file

@ -1,27 +0,0 @@
name: docker-build
on:
push:
branches:
- 'main'
- 'master'
jobs:
docker:
runs-on: ubuntu-20.04
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
push: true
tags: demostf/backup:latest
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}

View file

@ -11,12 +11,23 @@
system: let system: let
pkgs = nixpkgs.legacyPackages."${system}"; pkgs = nixpkgs.legacyPackages."${system}";
naersk-lib = naersk.lib."${system}"; naersk-lib = naersk.lib."${system}";
lib = pkgs.lib;
in in
rec { rec {
# `nix build` # `nix build`
packages.demobackup = naersk-lib.buildPackage { packages = rec {
pname = "demobackup"; demobackup = naersk-lib.buildPackage {
root = ./.; pname = "demobackup";
root = lib.sources.sourceByRegex (lib.cleanSource ./.) ["Cargo.*" "src" "src/.*"];
};
dockerImage = pkgs.dockerTools.buildImage {
name = "demostf/backup";
tag = "latest";
copyToRoot = [demobackup];
config = {
Cmd = [ "${demobackup}/bin/backup"];
};
};
}; };
defaultPackage = packages.demobackup; defaultPackage = packages.demobackup;