ci: verify that static executable is static
This commit is contained in:
@@ -113,9 +113,12 @@ jobs:
|
|||||||
uses: ./.github/actions/setup-nix
|
uses: ./.github/actions/setup-nix
|
||||||
with:
|
with:
|
||||||
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
||||||
|
tools: tests
|
||||||
|
|
||||||
- name: Build static executable
|
- name: Build static executable
|
||||||
run: nix-build -A postgrestStatic
|
run: nix-build -A postgrestStatic
|
||||||
|
- name: Check static executable
|
||||||
|
run: postgrest-check-static result/bin/postgrest
|
||||||
- name: Save built executable as artifact
|
- name: Save built executable as artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -207,6 +207,26 @@ let
|
|||||||
sed -i 's|^module \(.*\):|module \1/|g' test/coverage.overlay
|
sed -i 's|^module \(.*\):|module \1/|g' test/coverage.overlay
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
checkStatic =
|
||||||
|
checkedShellScript
|
||||||
|
{
|
||||||
|
name = "postgrest-check-static";
|
||||||
|
docs = "Verify that the argument is a static executable.";
|
||||||
|
args = [ "ARG_POSITIONAL_SINGLE([executable], [Executable])" ];
|
||||||
|
inRootDir = true;
|
||||||
|
withEnv = postgrest.env;
|
||||||
|
}
|
||||||
|
''
|
||||||
|
exe="$_arg_executable"
|
||||||
|
ldd_output=$(ldd "$exe" 2>&1 || true)
|
||||||
|
if ! grep -q "not a dynamic executable" <<< "$ldd_output"; then
|
||||||
|
echo "not a static executable, ldd output:"
|
||||||
|
echo "$ldd_output"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
"$exe" --help
|
||||||
|
'';
|
||||||
|
|
||||||
in
|
in
|
||||||
buildToolbox
|
buildToolbox
|
||||||
{
|
{
|
||||||
@@ -221,5 +241,6 @@ buildToolbox
|
|||||||
dumpSchema
|
dumpSchema
|
||||||
coverage
|
coverage
|
||||||
coverageDraftOverlay
|
coverageDraftOverlay
|
||||||
|
checkStatic
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user