Skip to content

Commit 2af30a0

Browse files
committed
Ensure Nix expressions are up to date in CI
- Adds a step to the Buildkite CI to check that the Nix expressions of the project are up-to-date. If they are not, it provides a patch as an artifact that the user can download and apply with `patch -p1 < nix-expr.patch`. This was done to make it easier for non-Nix users to update the dependencies of the project.
1 parent 3726c6f commit 2af30a0

File tree

4 files changed

+142
-15
lines changed

4 files changed

+142
-15
lines changed

.buildkite/pipeline.nix

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,34 @@ in
1111

1212
{
1313
steps.commands = {
14+
nixExpr = commonAttrs // {
15+
label = "ensure Nix expressions are up-to-date";
16+
command = ''
17+
echo "Checking if Nix expressions are up-to-date..."
18+
19+
nix-shell --run 'sbtix-gen-all2'
20+
21+
set +e
22+
git diff --exit-code > nix-expr.patch
23+
if [ "$?" -eq "1" ]; then
24+
set -e
25+
echo "Nix expressions not up-to-date."
26+
echo "Download and apply the patch available in the artifact paths of this step:"
27+
echo " patch -p1 < nix-expr.patch"
28+
echo "Aborting."
29+
exit 1
30+
else
31+
set -e
32+
echo "Nix expressions up-to-date!"
33+
exit 0
34+
fi
35+
'';
36+
retry.automatic = false;
37+
artifactPaths = [
38+
"nix-expr.patch"
39+
];
40+
};
41+
1442
compile = commonAttrs // {
1543
label = "compile everything";
1644
command = ''

.buildkite/shell.nix

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{ pkgs }:
1+
{ sources, pkgs }:
22

33
let
44

@@ -18,13 +18,16 @@ let
1818
exec ${pkgs.protobuf}/bin/protoc "$@"
1919
'';
2020

21+
sbtix = pkgs.callPackage sources.Sbtix { };
22+
2123
in
2224

2325
with pkgs;
2426

2527
mkShell {
2628

27-
buildInputs = [ sbt solc jdk8 protoc-wrapper ];
29+
buildInputs = [ sbt solc jdk8 protoc-wrapper sbtix ];
2830
# SBT = "sbt -v -mem 2048 -J-Xmx4g -Dsbt.ivy.home=/cache/ivy2 -Dsbt.boot.directory=/cache/sbt -Dmaven.repo.local=/cache/maven -Dnix=true";
2931
SBT = "sbt -v -mem 2048 -J-Xmx4g -Dnix=true";
32+
SBTIX_GEN = "true";
3033
}

repo.nix

Lines changed: 108 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1780,21 +1780,21 @@
17801780
url = "https://repo1.maven.org/maven2/org/apache/commons/commons-parent/52/commons-parent-52.pom";
17811781
sha256 = "75DBE8F34E98E4C3FF42DAAE4A2F9EB4CBCD3B5F1047D54460ACE906DBB4502E";
17821782
};
1783-
"nix-public/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54-javadoc.jar" = {
1784-
url = "https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54-javadoc.jar";
1785-
sha256 = "AEB390C0332E8F25FB95BA875983C9CD2AB5C758EEEB24BF434E7EB86E88D7DC";
1783+
"nix-public/org/bouncycastle/bcprov-jdk15on/1.65/bcprov-jdk15on-1.65-javadoc.jar" = {
1784+
url = "https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.65/bcprov-jdk15on-1.65-javadoc.jar";
1785+
sha256 = "DA9820F5151C2F7EDFB6E7CC0380F54F0CEF2B4D0D89A27479DCA3452163F068";
17861786
};
1787-
"nix-public/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54-sources.jar" = {
1788-
url = "https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54-sources.jar";
1789-
sha256 = "9328BF6B4847D19BF74CDB6C8E26A26FB953F598FFCE8C3906B2CD23E16F6EB2";
1787+
"nix-public/org/bouncycastle/bcprov-jdk15on/1.65/bcprov-jdk15on-1.65-sources.jar" = {
1788+
url = "https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.65/bcprov-jdk15on-1.65-sources.jar";
1789+
sha256 = "12F179DEE8BB7113F3D187319B260F3210D1CA7FBF403CD70385D339EACAEB4B";
17901790
};
1791-
"nix-public/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54.jar" = {
1792-
url = "https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54.jar";
1793-
sha256 = "D0AE14598F9C528D2AB7BB8ED00E785A5440F692712CD362D69328ABA25EFB57";
1791+
"nix-public/org/bouncycastle/bcprov-jdk15on/1.65/bcprov-jdk15on-1.65.jar" = {
1792+
url = "https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.65/bcprov-jdk15on-1.65.jar";
1793+
sha256 = "E78F96EB59066C94C94FB2D6B5EB80F52FEAC6F5F9776898634F8ADDEC6E2137";
17941794
};
1795-
"nix-public/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54.pom" = {
1796-
url = "https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54.pom";
1797-
sha256 = "6812DC0825CE83FAB0B858780F1CA3AFE4A45D84F61134F4E07BAC6A4826913F";
1795+
"nix-public/org/bouncycastle/bcprov-jdk15on/1.65/bcprov-jdk15on-1.65.pom" = {
1796+
url = "https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.65/bcprov-jdk15on-1.65.pom";
1797+
sha256 = "9E231B66E9D714BCDA291E6A7A725DE4EF64FA51F0DE47B1154C1F7998120E26";
17981798
};
17991799
"nix-public/org/bouncycastle/bcprov-jdk15on/1.66/bcprov-jdk15on-1.66-javadoc.jar" = {
18001800
url = "https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.66/bcprov-jdk15on-1.66-javadoc.jar";
@@ -1904,6 +1904,22 @@
19041904
url = "https://repo1.maven.org/maven2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.pom";
19051905
sha256 = "7FB3E790C154D1B5E23170BB8CBF7F70EF0809AF17229F1DCB010D7799651080";
19061906
};
1907+
"nix-public/org/java-websocket/Java-WebSocket/1.3.8/Java-WebSocket-1.3.8-javadoc.jar" = {
1908+
url = "https://repo1.maven.org/maven2/org/java-websocket/Java-WebSocket/1.3.8/Java-WebSocket-1.3.8-javadoc.jar";
1909+
sha256 = "D1A6A78DDB3D462CE0C830016FF441C83785C12BD017A8A7FEB422BAB60C58A7";
1910+
};
1911+
"nix-public/org/java-websocket/Java-WebSocket/1.3.8/Java-WebSocket-1.3.8-sources.jar" = {
1912+
url = "https://repo1.maven.org/maven2/org/java-websocket/Java-WebSocket/1.3.8/Java-WebSocket-1.3.8-sources.jar";
1913+
sha256 = "4677F1F68A5DF17B34F95A19FCAA6D2855332340D3497682AE34EAD87D6DCAA3";
1914+
};
1915+
"nix-public/org/java-websocket/Java-WebSocket/1.3.8/Java-WebSocket-1.3.8.jar" = {
1916+
url = "https://repo1.maven.org/maven2/org/java-websocket/Java-WebSocket/1.3.8/Java-WebSocket-1.3.8.jar";
1917+
sha256 = "64D38C6B4D6C9E830BE6820D408CAA02D1217E59E8BF34198CC22BD23429FA48";
1918+
};
1919+
"nix-public/org/java-websocket/Java-WebSocket/1.3.8/Java-WebSocket-1.3.8.pom" = {
1920+
url = "https://repo1.maven.org/maven2/org/java-websocket/Java-WebSocket/1.3.8/Java-WebSocket-1.3.8.pom";
1921+
sha256 = "8A3552C9B63F527A8B4739C77B78348C63E94E0605C37A2EE2F706FD3864DEF3";
1922+
};
19071923
"nix-public/org/jctools/jctools-core/2.1.2/jctools-core-2.1.2-javadoc.jar" = {
19081924
url = "https://repo1.maven.org/maven2/org/jctools/jctools-core/2.1.2/jctools-core-2.1.2-javadoc.jar";
19091925
sha256 = "B9A9EA063CAFB4E5AEBD383ABECAB08FC773E47DE589739927FA9E7C954E87F8";
@@ -1920,6 +1936,86 @@
19201936
url = "https://repo1.maven.org/maven2/org/jctools/jctools-core/2.1.2/jctools-core-2.1.2.pom";
19211937
sha256 = "9E87E29F3BABF3C9A8DD722E5E1FF58021A69ADD0FDBA38346BB1FF812FB05AB";
19221938
};
1939+
"nix-public/org/jetbrains/annotations/13.0/annotations-13.0-javadoc.jar" = {
1940+
url = "https://repo1.maven.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0-javadoc.jar";
1941+
sha256 = "189D6D7726B293869AE97BC35BDAB234F46E735549516974260543CE26DF1D47";
1942+
};
1943+
"nix-public/org/jetbrains/annotations/13.0/annotations-13.0-sources.jar" = {
1944+
url = "https://repo1.maven.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0-sources.jar";
1945+
sha256 = "42A5E144B8E81D50D6913D1007B695E62E614705268D8CF9F13DBDC478C2C68E";
1946+
};
1947+
"nix-public/org/jetbrains/annotations/13.0/annotations-13.0.jar" = {
1948+
url = "https://repo1.maven.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar";
1949+
sha256 = "ACE2A10DC8E2D5FD34925ECAC03E4988B2C0F851650C94B8CEF49BA1BD111478";
1950+
};
1951+
"nix-public/org/jetbrains/annotations/13.0/annotations-13.0.pom" = {
1952+
url = "https://repo1.maven.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom";
1953+
sha256 = "965AEB2BEDFF369819BDDE1BF7A0B3B89B8247DD69C88B86375D76163BB8C397";
1954+
};
1955+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50-javadoc.jar" = {
1956+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50-javadoc.jar";
1957+
sha256 = "BE065F1ED36C4687E83739D458982F8C41F88E23D959954BF0A0C442A2319ED7";
1958+
};
1959+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50-sources.jar" = {
1960+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50-sources.jar";
1961+
sha256 = "34199658F3AB0B1F50F858E2636371271FA4D783833E6E1B5A0EA3F6D7D3655B";
1962+
};
1963+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.jar" = {
1964+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.jar";
1965+
sha256 = "8CE678E88E4BA018B66DACECF952471E4D7DFEE156A8A819760A5A5FF29D323C";
1966+
};
1967+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.pom" = {
1968+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.pom";
1969+
sha256 = "B6396FE802D7BC76A381485E266CB975F3B2F2D3DD9BF7213AAB6CA27A561FC1";
1970+
};
1971+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61-javadoc.jar" = {
1972+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61-javadoc.jar";
1973+
sha256 = "D0D3349947F3590065CD3ADEC32F2D2FD167AEAC1598320CFBDE3C8E53BD26E5";
1974+
};
1975+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61-sources.jar" = {
1976+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61-sources.jar";
1977+
sha256 = "272D20D52FE0C3C91B09D02125CEA2C7FA2DABEFB1397E0239A9C2601F002346";
1978+
};
1979+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61.jar" = {
1980+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61.jar";
1981+
sha256 = "A2E7F341CF3047B5F00A1917EF777D323CDAB2A57377468B8ED62AA31469CF7F";
1982+
};
1983+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61.pom" = {
1984+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61.pom";
1985+
sha256 = "E22DB009BB1A61636D9425635989736DB5E3FCA494809ABF244468DC474CFC04";
1986+
};
1987+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50-javadoc.jar" = {
1988+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50-javadoc.jar";
1989+
sha256 = "BE065F1ED36C4687E83739D458982F8C41F88E23D959954BF0A0C442A2319ED7";
1990+
};
1991+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50-sources.jar" = {
1992+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50-sources.jar";
1993+
sha256 = "8452552D2012686EB20466804C8B54C38673040527756F10D2D13E1DB8D17380";
1994+
};
1995+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.jar" = {
1996+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.jar";
1997+
sha256 = "E6F05746EE0366D0B52825A090FAC474DCF44082C9083BBB205BD16976488D6C";
1998+
};
1999+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.pom" = {
2000+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.pom";
2001+
sha256 = "704FD78960AE046428F69BCD5B951C122E4C180C9400238A866E12CB18494A61";
2002+
};
2003+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61-javadoc.jar" = {
2004+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61-javadoc.jar";
2005+
sha256 = "6593717529EDC27156CBE1F75BEC7D281F8E4DBC0819F030C626EC66A88F4888";
2006+
};
2007+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61-sources.jar" = {
2008+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61-sources.jar";
2009+
sha256 = "7C25D24976908A6C1731E3B2EBA02978B1A8B62F16554EAB1DFAA41758B720AC";
2010+
};
2011+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61.jar" = {
2012+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61.jar";
2013+
sha256 = "E51E512619A7E7650A30EB4EB3E9C03E6909C7B5E3C026404E076254C098B932";
2014+
};
2015+
"nix-public/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61.pom" = {
2016+
url = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61.pom";
2017+
sha256 = "DBE5BABCD8D43E9B08C2845680B53FC1BB3E051C4805802DDD0ED3E8E2C50A84";
2018+
};
19232019
"nix-public/org/jline/jline-parent/3.16.0/jline-parent-3.16.0.pom" = {
19242020
url = "https://repo1.maven.org/maven2/org/jline/jline-parent/3.16.0/jline-parent-3.16.0.pom";
19252021
sha256 = "1694B9EE7478D0E95665351D672C13512ABA05ABC5E25A3A854ED98FFFF4DD59";

shell.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{ sources ? import nix/sources.nix, pkgs ? import ./nix { } }:
22

33
if __getEnv "BUILDKITE" == "true" then
4-
import .buildkite/shell.nix { inherit pkgs; }
4+
import .buildkite/shell.nix { inherit sources pkgs; }
55
else
66
with pkgs;
77

0 commit comments

Comments
 (0)