From 91f0b0b52b7ad583e5a2b429c9a1671e41a3b6bb Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Mon, 19 Aug 2024 23:05:07 +0200 Subject: [PATCH] feat(ci-cd): Use nix build to build the program --- .github/workflows/pr-tests.yaml | 18 ++++++------- flake.nix | 47 +++++++++++++++++++-------------- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/.github/workflows/pr-tests.yaml b/.github/workflows/pr-tests.yaml index 26142a5..71a2213 100644 --- a/.github/workflows/pr-tests.yaml +++ b/.github/workflows/pr-tests.yaml @@ -11,16 +11,14 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Setup Go ${{ matrix.go-version }} - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - # You can test your matrix by printing the current Go version - - name: Display Go version - run: go version - - name: Get dependencies - run: go mod download + - uses: cachix/install-nix-action@v27 + with: + github_access_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Check Nix flake + run: nix flake check - name: Run tests - run: go test -v ./... + run: nix develop --command bash -c 'go test ./...' + diff --git a/flake.nix b/flake.nix index 46c579d..08e129f 100644 --- a/flake.nix +++ b/flake.nix @@ -15,28 +15,35 @@ utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { - inherit system; - overlays = [ - (final: prev: { - go = prev.go_1_22; - buildGoModule = prev.buildGo122Module; - }) - gomod2nix.overlays.default - ]; - }; - in { - defaultPackage = pkgs.buildGoModule { - pname = "github.com/Myzel394/config-lsp"; - version = "v0.0.1"; - src = ./.; - vendorHash = "sha256-KhyqogTyb3jNrGP+0Zmn/nfx+WxzjgcrFOp2vivFgT0="; - }; - devShell = pkgs.mkShell { - buildInputs = [ - pkgs.go_1_22 - pkgs.wireguard-tools + inherit system; + overlays = [ + (final: prev: { + go = prev.go_1_22; + buildGoModule = prev.buildGo122Module; + }) + gomod2nix.overlays.default ]; }; + inputs = [ + pkgs.go_1_22 + pkgs.wireguard-tools + ]; + in { + packages = { + default = pkgs.buildGoModule { + nativeBuildInputs = inputs; + pname = "github.com/Myzel394/config-lsp"; + version = "v0.0.1"; + src = ./.; + vendorHash = "sha256-KhyqogTyb3jNrGP+0Zmn/nfx+WxzjgcrFOp2vivFgT0="; + checkPhase = '' + go test -v $(pwd)/... + ''; + }; + }; + devShells.default = pkgs.mkShell { + buildInputs = inputs; + }; } ); }