Skip to content

simplify drv

simplify drv #104

Workflow file for this run

name: Trivial Test
on:
pull_request:
types: [opened, synchronize, reopened]
paths:
- '**'
- '!**/README*'
push:
branches: [main]
paths:
- '**'
- '!**/README*'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Install flox
uses: flox/[email protected]
- name: Checkout
uses: actions/checkout@v3
- name: Make Injector
shell: bash
run: |
set -eu;
set -o pipefail;
mkdir ./bin;
echo '#! /usr/bin/env bash
cat "$PWD/flox.nix" > "$1";' > ./bin/flox-inject;
chmod +x ./bin/flox-inject;
- name: SQLite3 pkg-config Test
shell: bash
run: |
set -eu;
set -o pipefail;
_ec=0;
trap '_ec="$?"; echo "ERROR: code $_ec" >&2; exit "$_ec";' HUP TERM INT;
echo "Creating sqlite-dev" >&2;
flox create -e sqlite-dev;
trap '
_ec="$?";
echo "ERROR: code $_ec" >&2;
flox destroy -e sqlite-dev;
exit "$_ec";
' HUP TERM INT;
trap '_ec="$?"; flox destroy -e sqlite-dev; exit "$_ec";' EXIT;
echo "Creating flox.nix" >&2;
cat <<'EOF' > ./flox.nix
{
packages.nixpkgs-flox.sqlite = {
meta.outputsToInstall = ["bin" "out" "dev"];
};
shell.hook = ''
[[ -r "$FLOX_ENV/etc/profile" ]] && . "$FLOX_ENV/etc/profile";
'';
}
EOF
echo "flox.nix contents:" >&2;
echo "---" >&2;
cat ./flox.nix >&2;
echo "---" >&2;
echo "Inject flox.nix" >&2;
EDITOR="$PWD/bin/flox-inject" flox edit -e sqlite-dev;
rm -f ./flox.nix;
echo "Installing deps" >&2;
flox install -e sqlite-dev pkg-config;
flox install -e sqlite-dev "$PWD#etc-profiles";
# Have to work around a bunch of unset variables that get us killed
# when `set -eu; set -o pipefail;' is active.
runEnv() { flox activate -e sqlite-dev -- "$@"; }
echo "Activating env" >&2;
runEnv :;
echo "Checking if pkg-config can find sqlite" >&2;
if runEnv pkg-config --list-all|grep '^sqlite3';
then
echo "PASS" >&2;
exit 0;
else
echo "FAIL" >&2;
echo "pkg-config --list results:" >&2;
echo "---" >&2;
runEnv pkg-config --list-all >&2;
echo "---" >&2;
exit 1;
fi