ci: remove nix from gh workflows (#21572)
This commit is contained in:
parent
9dd6a99a64
commit
c536c0f18c
20
.github/scripts/install-rocksdb.sh
vendored
Executable file
20
.github/scripts/install-rocksdb.sh
vendored
Executable file
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
if [ -z "$ROCKSDB_VERSION" ]; then
|
||||
echo "ROCKSDB_VERSION is not set."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Update and install dependencies
|
||||
sudo apt update && sudo apt-get install -y libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev build-essential
|
||||
|
||||
# Clone RocksDB repository
|
||||
git clone https://github.com/facebook/rocksdb.git /home/runner/rocksdb
|
||||
cd /home/runner/rocksdb || exit 1
|
||||
git checkout "v${ROCKSDB_VERSION}"
|
||||
|
||||
# Build shared library
|
||||
sudo make -j "$(nproc --all)" shared_lib
|
||||
sudo cp --preserve=links ./librocksdb.* /usr/local/lib/
|
||||
sudo cp -r ./include/rocksdb/ /usr/local/include/
|
||||
34
.github/workflows/build.yml
vendored
34
.github/workflows/build.yml
vendored
@ -13,6 +13,9 @@ concurrency:
|
||||
group: ci-${{ github.ref }}-build
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
ROCKSDB_VERSION: 8.11.3
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
@ -21,12 +24,33 @@ jobs:
|
||||
go-arch: ["amd64", "arm", "arm64"]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
- uses: DeterminateSystems/magic-nix-cache-action@main
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: "1.23"
|
||||
check-latest: true
|
||||
- name: Fix permissions for cache
|
||||
run: sudo chown $(whoami) /usr/local/lib /usr/local/include
|
||||
- name: Restore rocksdb libraries cache
|
||||
id: cache-rocksdb
|
||||
if: matrix.go-arch == 'amd64'
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: |
|
||||
/usr/local/lib/librocksdb.*
|
||||
/usr/local/include/rocksdb
|
||||
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-${{ matrix.go-arch }}
|
||||
- name: Install rocksdb
|
||||
if: matrix.go-arch == 'amd64' && steps.cache-rocksdb.outputs.cache-hit != 'true'
|
||||
id: install_rocksdb
|
||||
run: ./.github/scripts/install-rocksdb.sh
|
||||
- name: Saves rocksdb libraries cache
|
||||
if: matrix.go-arch == 'amd64' && steps.install_rocksdb.outcome == 'success'
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: |
|
||||
/usr/local/lib/librocksdb.*
|
||||
/usr/local/include/rocksdb
|
||||
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-${{ matrix.go-arch }}
|
||||
###################
|
||||
#### Build App ####
|
||||
###################
|
||||
@ -35,10 +59,8 @@ jobs:
|
||||
- name: Build Legacy
|
||||
run: GOARCH=${{ matrix.go-arch }} COSMOS_BUILD_OPTIONS=legacy make build
|
||||
- name: Build with rocksdb backend
|
||||
if: |
|
||||
env.GIT_DIFF &&
|
||||
matrix.go-arch == 'amd64'
|
||||
run: nix run . -- version --long
|
||||
if: matrix.go-arch == 'amd64'
|
||||
run: GOARCH=${{ matrix.go-arch }} COSMOS_BUILD_OPTIONS="rocksdb" make build
|
||||
###################
|
||||
## Build Tooling ##
|
||||
###################
|
||||
|
||||
36
.github/workflows/lint.yml
vendored
36
.github/workflows/lint.yml
vendored
@ -8,14 +8,16 @@ on:
|
||||
merge_group:
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
ROCKSDB_VERSION: 8.11.3
|
||||
|
||||
jobs:
|
||||
golangci:
|
||||
name: golangci-lint
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
- uses: DeterminateSystems/magic-nix-cache-action@main
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: "1.23"
|
||||
@ -28,13 +30,35 @@ jobs:
|
||||
Makefile
|
||||
**/Makefile
|
||||
.golangci.yml
|
||||
- name: Fix permissions for cache
|
||||
run: sudo chown $(whoami) /usr/local/lib /usr/local/include
|
||||
- name: Restore rocksdb libraries cache
|
||||
id: cache-rocksdb
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: |
|
||||
/usr/local/lib/librocksdb.*
|
||||
/usr/local/include/rocksdb
|
||||
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64
|
||||
- name: Install rocksdb
|
||||
if: env.GIT_DIFF && steps.cache-rocksdb.outputs.cache-hit != 'true'
|
||||
id: install_rocksdb
|
||||
run: ./.github/scripts/install-rocksdb.sh
|
||||
- name: Saves rocksdb libraries cache
|
||||
if: steps.install_rocksdb.outcome == 'success'
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: |
|
||||
/usr/local/lib/librocksdb.*
|
||||
/usr/local/include/rocksdb
|
||||
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64
|
||||
- name: run linting (long)
|
||||
if: env.GIT_DIFF
|
||||
id: lint_long
|
||||
run: |
|
||||
nix develop -c make lint
|
||||
make lint
|
||||
env:
|
||||
NIX: 1
|
||||
ROCKSDB: 1
|
||||
- uses: technote-space/get-diff-action@v6.1.2
|
||||
if: steps.lint_long.outcome == 'skipped'
|
||||
with:
|
||||
@ -57,8 +81,8 @@ jobs:
|
||||
- name: run linting (short)
|
||||
if: steps.lint_long.outcome == 'skipped' && env.GIT_DIFF
|
||||
run: |
|
||||
nix develop -c make lint
|
||||
make lint
|
||||
env:
|
||||
GIT_DIFF: ${{ env.GIT_DIFF }}
|
||||
LINT_DIFF: 1
|
||||
NIX: 1
|
||||
ROCKSDB: 1
|
||||
|
||||
57
.github/workflows/test.yml
vendored
57
.github/workflows/test.yml
vendored
@ -13,6 +13,9 @@ concurrency:
|
||||
group: ci-${{ github.ref }}-tests
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
ROCKSDB_VERSION: 8.11.3
|
||||
|
||||
jobs:
|
||||
split-test-files:
|
||||
runs-on: ubuntu-latest
|
||||
@ -774,11 +777,9 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
- uses: DeterminateSystems/magic-nix-cache-action@main
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: "1.20"
|
||||
go-version: "1.23"
|
||||
check-latest: true
|
||||
cache: true
|
||||
cache-dependency-path: store/go.sum
|
||||
@ -789,11 +790,33 @@ jobs:
|
||||
store/**/*.go
|
||||
store/go.mod
|
||||
store/go.sum
|
||||
- name: Fix permissions for cache
|
||||
run: sudo chown $(whoami) /usr/local/lib /usr/local/include
|
||||
- name: Restore rocksdb libraries cache
|
||||
id: cache-rocksdb
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: |
|
||||
/usr/local/lib/librocksdb.*
|
||||
/usr/local/include/rocksdb
|
||||
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64
|
||||
- name: Install rocksdb
|
||||
if: env.GIT_DIFF && steps.cache-rocksdb.outputs.cache-hit != 'true'
|
||||
id: install_rocksdb
|
||||
run: ./.github/scripts/install-rocksdb.sh
|
||||
- name: Saves rocksdb libraries cache
|
||||
if: steps.install_rocksdb.outcome == 'success'
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: |
|
||||
/usr/local/lib/librocksdb.*
|
||||
/usr/local/include/rocksdb
|
||||
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64
|
||||
- name: tests
|
||||
if: env.GIT_DIFF
|
||||
run: |
|
||||
cd store
|
||||
nix develop .. -c go test -mod=readonly -timeout 30m -coverprofile=coverage.out -covermode=atomic -tags='norace ledger test_ledger_mock rocksdb' ./...
|
||||
go test -mod=readonly -timeout 30m -coverprofile=coverage.out -covermode=atomic -tags='norace ledger test_ledger_mock rocksdb' ./...
|
||||
- name: sonarcloud
|
||||
if: ${{ env.GIT_DIFF && !github.event.pull_request.draft && env.SONAR_TOKEN != null }}
|
||||
uses: SonarSource/sonarcloud-github-action@master
|
||||
@ -809,8 +832,6 @@ jobs:
|
||||
fail-fast: false
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
- uses: DeterminateSystems/magic-nix-cache-action@main
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: "1.23"
|
||||
@ -824,11 +845,33 @@ jobs:
|
||||
store/v2/**/*.go
|
||||
store/v2/go.mod
|
||||
store/v2/go.sum
|
||||
- name: Fix permissions for cache
|
||||
run: sudo chown $(whoami) /usr/local/lib /usr/local/include
|
||||
- name: Restore rocksdb libraries cache
|
||||
id: cache-rocksdb
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: |
|
||||
/usr/local/lib/librocksdb.*
|
||||
/usr/local/include/rocksdb
|
||||
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64
|
||||
- name: Install rocksdb
|
||||
if: env.GIT_DIFF && steps.cache-rocksdb.outputs.cache-hit != 'true'
|
||||
id: install_rocksdb
|
||||
run: ./.github/scripts/install-rocksdb.sh
|
||||
- name: Saves rocksdb libraries cache
|
||||
if: steps.install_rocksdb.outcome == 'success'
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: |
|
||||
/usr/local/lib/librocksdb.*
|
||||
/usr/local/include/rocksdb
|
||||
key: ${{ runner.os }}-rocksdb-${{ env.ROCKSDB_VERSION }}-amd64
|
||||
- name: test & coverage report creation
|
||||
if: env.GIT_DIFF
|
||||
run: |
|
||||
cd store/v2
|
||||
nix develop ../.. -c go test -mod=readonly -timeout 30m -coverprofile=coverage.out -covermode=atomic -tags='norace ledger test_ledger_mock rocksdb' ./...
|
||||
go test -mod=readonly -timeout 30m -coverprofile=coverage.out -covermode=atomic -tags='norace ledger test_ledger_mock rocksdb' ./...
|
||||
- name: sonarcloud
|
||||
if: ${{ env.GIT_DIFF && !github.event.pull_request.draft && env.SONAR_TOKEN != null }}
|
||||
uses: SonarSource/sonarcloud-github-action@master
|
||||
|
||||
86
flake.lock
generated
86
flake.lock
generated
@ -1,86 +0,0 @@
|
||||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1689068808,
|
||||
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gomod2nix": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1714786460,
|
||||
"narHash": "sha256-5RinsY4tUWnWyDVxXO4Ebz1fnOEAa6d24lt1yFDxeL0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "gomod2nix",
|
||||
"rev": "e50becd94abeff9e9be98302b929eab8afc2722a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "pull/156/head",
|
||||
"repo": "gomod2nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1723603349,
|
||||
"narHash": "sha256-VMg6N7MryOuvSJ8Sj6YydarnUCkL7cvMdrMcnsJnJCE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "daf7bb95821b789db24fc1ac21f613db0c1bf2cb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"gomod2nix": "gomod2nix",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
66
flake.nix
66
flake.nix
@ -1,66 +0,0 @@
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
gomod2nix = {
|
||||
# https://github.com/nix-community/gomod2nix/pull/156
|
||||
url = "github:nix-community/gomod2nix/pull/156/head";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.flake-utils.follows = "flake-utils";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, flake-utils, ... }@inputs:
|
||||
{
|
||||
overlays.default = self: super: rec {
|
||||
simd = self.callPackage ./simapp { rev = self.shortRev or "dev"; };
|
||||
go = simd.go; # to build the tools (e.g. gomod2nix) using the same go version
|
||||
rocksdb = super.rocksdb.overrideAttrs (_: rec {
|
||||
version = "8.11.3";
|
||||
src = self.fetchFromGitHub {
|
||||
owner = "facebook";
|
||||
repo = "rocksdb";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-OpEiMwGxZuxb9o3RQuSrwZMQGLhe9xLT1aa3HpI4KPs=";
|
||||
};
|
||||
});
|
||||
};
|
||||
} //
|
||||
(flake-utils.lib.eachDefaultSystem
|
||||
(system:
|
||||
let
|
||||
mkApp = drv: {
|
||||
type = "app";
|
||||
program = "${drv}/bin/${drv.meta.mainProgram}";
|
||||
};
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = { };
|
||||
overlays = [
|
||||
inputs.gomod2nix.overlays.default
|
||||
self.overlays.default
|
||||
];
|
||||
};
|
||||
in
|
||||
rec {
|
||||
packages = rec {
|
||||
default = simd;
|
||||
inherit (pkgs) simd;
|
||||
};
|
||||
apps = rec {
|
||||
default = simd;
|
||||
simd = mkApp pkgs.simd;
|
||||
};
|
||||
devShells = rec {
|
||||
default = with pkgs; mkShell {
|
||||
buildInputs = [
|
||||
go_1_23 # Use Go 1.23 version
|
||||
rocksdb
|
||||
gomod2nix
|
||||
];
|
||||
};
|
||||
};
|
||||
legacyPackages = pkgs;
|
||||
}
|
||||
));
|
||||
}
|
||||
@ -6,7 +6,7 @@ REPO_ROOT="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/.." &> /dev/null && pwd
|
||||
export REPO_ROOT
|
||||
|
||||
LINT_TAGS="e2e,ledger,test_ledger_mock"
|
||||
if [[ ! -z "${NIX:-}" ]]; then
|
||||
if [[ ! -z "${ROCKSDB:-}" ]]; then
|
||||
LINT_TAGS+=",rocksdb"
|
||||
fi
|
||||
export LINT_TAGS
|
||||
|
||||
@ -6,20 +6,4 @@ for modfile in $(find . -name go.mod); do
|
||||
echo "Updating $modfile"
|
||||
DIR=$(dirname $modfile)
|
||||
(cd $DIR; go mod tidy)
|
||||
done
|
||||
|
||||
# update gomod2nix.toml for simapp
|
||||
# NOTE: gomod2nix should be built using the same go version as the project, the nix flake will make sure of that
|
||||
# automatically.
|
||||
cd simapp
|
||||
if command -v nix &> /dev/null
|
||||
then
|
||||
nix develop .. -c gomod2nix
|
||||
|
||||
if ! command -v gomod2nix &> /dev/null
|
||||
then
|
||||
echo "gomod2nix could not be found in PATH, installing..."
|
||||
go install github.com/nix-community/gomod2nix@latest
|
||||
fi
|
||||
gomod2nix
|
||||
fi
|
||||
done
|
||||
@ -1,46 +0,0 @@
|
||||
{ lib
|
||||
, buildGoApplication
|
||||
, rocksdb
|
||||
, stdenv
|
||||
, static ? stdenv.hostPlatform.isStatic
|
||||
, rev ? "dev"
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "simd";
|
||||
version = "v0.0.1";
|
||||
tags = [ "ledger" "netgo" "rocksdb" "grocksdb_no_link" ];
|
||||
ldflags = lib.concatStringsSep "\n" ([
|
||||
"-X github.com/cosmos/cosmos-sdk/version.Name=${pname}"
|
||||
"-X github.com/cosmos/cosmos-sdk/version.AppName=${pname}"
|
||||
"-X github.com/cosmos/cosmos-sdk/version.Version=${version}"
|
||||
"-X github.com/cosmos/cosmos-sdk/version.BuildTags=${lib.concatStringsSep "," tags}"
|
||||
"-X github.com/cosmos/cosmos-sdk/version.Commit=${rev}"
|
||||
]);
|
||||
in
|
||||
buildGoApplication rec {
|
||||
inherit pname version ldflags tags;
|
||||
src = ./.;
|
||||
pwd = src;
|
||||
modules = ./gomod2nix.toml;
|
||||
subPackages = [ "simd" ];
|
||||
doCheck = false;
|
||||
buildInputs = [ rocksdb ];
|
||||
CGO_ENABLED = "1";
|
||||
CGO_LDFLAGS =
|
||||
if static then "-lrocksdb -pthread -lstdc++ -ldl -lzstd -lsnappy -llz4 -lbz2 -lz"
|
||||
else if stdenv.hostPlatform.isWindows then "-lrocksdb-shared"
|
||||
else "-lrocksdb -pthread -lstdc++ -ldl";
|
||||
|
||||
postFixup = lib.optionalString stdenv.isDarwin ''
|
||||
${stdenv.cc.targetPrefix}install_name_tool -change "@rpath/librocksdb.8.dylib" "${rocksdb}/lib/librocksdb.dylib" $out/bin/${pname}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "example chain binary in cosmos-sdk repo";
|
||||
homepage = "https://github.com/cosmos/cosmos-sdk";
|
||||
license = licenses.asl20;
|
||||
mainProgram = pname + stdenv.hostPlatform.extensions.executable;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user