Commit Graph
2659 Commits
Author SHA1 Message Date
Wolfgang Walther ca777315b0 ci: Consistently put two blank lines between jobs for better visual separation 2024-02-10 20:16:22 +01:00
Wolfgang Walther f513a71c7a ci: Use latest stable nix version in CI
This was pinned to 2.13.6 in https://github.com/PostgREST/postgrest/pull/2692#issuecomment-1448938894
because of a regression in nix 2.14. Latest is 2.16.x now, so maybe this bug is already fixed.
2024-02-10 20:16:22 +01:00
Wolfgang Walther 09c5cbece5 ci: Remove workaround for ghcup on github actions runner images
This was introduced in https://github.com/PostgREST/postgrest/pull/2655.
2024-02-10 20:16:22 +01:00
Wolfgang Walther 073320133d ci: Remove matrix configuration for Build-Cabal-Arm job
This avoids the "${{ matrix.ghc }}" display when the job is skipped in PR workflows.
2024-02-10 20:16:22 +01:00
Wolfgang Walther f17f23bd9f ci: Make stack build fail when lock file is out of date
When updating stack.yaml, we need to make sure to update stack.yaml.lock, too.

This check prevents them from getting out of sync by failing CI in this case.

This improves cachability.
2024-02-10 20:16:22 +01:00
Wolfgang Walther fd1efa4635 ci: Merge CI and Loadtest workflows
The reason why those workflows were split in the first place was just to obtain loadtest
results quicker, because the in the separated workflow, only the single loadtest job
needs to finish before the artifacts can be downloaded.

However, the disadvantage of this approach was, that the results were not as easily
accessible as they could be in a single workflow. Additionally, it's possible to depend
on the "prepopulate nix" job for efficiency if the loadtest runs in the main workflow.
2024-02-10 20:15:35 +01:00
Wolfgang Walther db16683ba2 ci: Simplify loadtest workflow
The two different PR and Merge jobs were introduced to be able to test the main branch
against the latest release. However, this is now included in the PR job, too, so no need
for the two separate jobs anymore.
2024-02-10 20:15:09 +01:00
Wolfgang Walther 8a3b0c60ad ci: Remove nix actions cache and prepopulate job
The nix actions cache currently leads to repeated "no space left on
devices" errors for jobs in CI.

The prepopulate job is useless without the nix actions cache, so it
will go away at the same time.
2024-02-10 12:35:56 +01:00
steve-chavez 5424be76d9 feat: log schema cache stats to stderr
adjust the memory tests
2024-02-09 16:18:04 -05:00
Wolfgang Walther 066fa8b6aa ci: Improve cache keys and their restore prefixes
The cache key for nix now depends on default.nix and shell.nix in the root folder and all
.patch files in the nix folder. Those may change the output of our nix derivations, so
must be included. At the same time, there is no reason to include the actions/setup-nix
folder. This would only lead to new caches being created every time we update one of the
dependent actions in this file. Finally, we never restore caches with a different id any-
more. There is no point in having the style job fall back to the static cache for example.

The cache keys for cabal can be more explicit: We only have one postgrest.cabal and one
relevant cabal.project file. We were missing the cabal.project.freeze file, though, which
affects the dependencies used, too.
2024-02-09 18:43:53 +01:00
Taimoor ZaeemandSteve Chavez f9ee1f7e73 feat: apply all function settings as transaction-scoped settings 2024-02-09 11:37:01 -05:00
Wolfgang Walther 49584728b6 nix: Remove broken docker-based nix development environment
It used to be possible to spin up a nix environment via docker container this way,
but the upstream nixos/nix image has changed and the docker build doesn't succeed
anymore. Since nobody complained about that, we can assume it is not being used
anyway.
2024-02-06 18:27:20 +01:00
Wolfgang Walther 868913d179 ci: Replace seed cachix workflow with new daemon mode
cachix-action v14 added a new daemon mode, which pushes new derivations to the store
as soon as they have been built. This replaces the seed cachix workflow nicely by just
pushing from all jobs directly.
2024-02-06 10:20:02 +01:00
Wolfgang Walther 74d8ddec36 nix: Make postgrest-push-cachix more efficient by passing each derivation only once 2024-02-06 10:20:02 +01:00
Wolfgang WaltherandWolfgang Walther ea02729ebd nix: Use -split-sections with pkgsStatic to make static executable smaller again
This works around https://github.com/NixOS/nixpkgs/issues/286285 to use -split-sections
in a cross-compiling scenario. This will reduce the size of the static executable and also
remove the remaining references to /nix/store/.. reducing closure size dramatically.

This also fixes the docker image blowing up in size since we switched to pkgsStatic.
2024-02-06 10:19:31 +01:00
Wolfgang WaltherandWolfgang Walther 9fe0f50709 ci: Add freebsd executable to releases
This was temporarily disabled, because of timeouts in Cirrus. This seems to work well again.
2024-02-06 10:19:31 +01:00
Wolfgang WaltherandWolfgang Walther 1c02e1e3a0 ci: Prevent creating artifact for dynamic ubuntu build
This is not used in the release process anyway, because we are using the static build.
2024-02-06 10:19:31 +01:00
Wolfgang WaltherandWolfgang Walther 7d096e5de5 ci: Update stack.yaml.lock 2024-02-06 10:19:31 +01:00
Wolfgang WaltherandWolfgang Walther 0eca2954b3 ci: Reduce file size of cabal and stack based builds
By passing -split-sections to all dependencies, GHC will link only the
modules we actually use and not the full package for each dependency.
This does neither work on MacOS nor Windows, thus we don't do it for
stack right now.

Stripping unused symbols in CI will further decrease the size of those files.
2024-02-06 10:19:31 +01:00
Wolfgang WaltherandWolfgang Walther cc9b725005 nix: Remove libkrb5 references from static executable 2024-02-06 10:19:31 +01:00
Wolfgang WaltherandWolfgang Walther 4a1b9a4609 nix: Remove libpq reference from static executable 2024-02-06 10:19:31 +01:00
Wolfgang WaltherandWolfgang Walther f51090f3d1 nix: Check static executable for /nix/store references
This makes the static build fail in case any references to the nix store
are left over. Those will increase the closure size of the nix derivation
massively and lead to a huge docker image.

At the same time, those references will not be functional on non-nix systems,
to which the static executable is distributed, anyway.
2024-02-06 10:19:31 +01:00
Ivan KasatenkoandGitHub 71887e4b78 feat: dump config through Admin API 2024-02-05 19:16:05 -05:00
Andrei DziahelandWolfgang Walther a45058ba02 ci: reuse more previous caches (Nix & Stack) 2024-02-05 21:51:32 +01:00
Wolfgang Walther 310d04065e test: Make failing loadtest fixtures pass again
PR #2358 added a bulk insert to the loadtest. However this broke the regular insert test,
which just returned 400 Bad Request because of a missing PK value since. Adding the new
id column in the payload to the ?columns= argument fixes that.
2024-02-05 21:40:21 +01:00
Wolfgang Walther 63ff6d1f15 nix: Fix postgrest-loadtest after vegeta update
The recent nixpkgs update gave us a new version of vegeta. This version includes a new
DNS cache features - which unfortunately doesn't play well with unix sockets. Disabling
the DNS cache makes requests succeed again.
2024-02-05 21:38:23 +01:00
steve-chavez 45cabacdcc fix: wrong subquery error returning as 400 status 2024-02-02 22:08:56 -05:00
dependabot[bot]andGitHub bbc0bda6f5 build(deps): bump LouisBrunner/checks-action from 1.6.2 to 2.0.0 (#3195) 2024-01-29 09:35:22 -05:00
dependabot[bot]andGitHub c1b46ffa1b build(deps): bump codecov/codecov-action from 3.1.4 to 3.1.5 (#3196) 2024-01-29 09:34:33 -05:00
Wolfgang WaltherandWolfgang Walther 43f552dbab ci: Improve caching for static and dynamic postgrest nix packages 2024-01-26 23:24:12 +01:00
Wolfgang WaltherandWolfgang Walther c43696c9a6 nix: Move postgrest-check-static inside derivation of static package
This will make the static build fail if we're not producing a static binary.
2024-01-26 23:24:12 +01:00
Andrei DziahelandWolfgang Walther 411cf430ad ci: revert cache-nix-action to v4
Upgrading c-n-action seems to break restoring Nix store rendering the cache useless (nix-community/cache-nix-action#27). This rolls the change back.
2024-01-26 18:40:45 +01:00
Wolfgang Walther 071a3d436f ci: Fix Seed-Cachix jobs on linux 2024-01-26 18:10:38 +01:00
Wolfgang WaltherandWolfgang Walther c94aa9ccd9 fix: Build static postgrest with GSSAPI support
Resolves #2815
2024-01-26 17:17:05 +01:00
Wolfgang WaltherandWolfgang Walther dcb6c5bb13 nix: Bump libpq version to link against v16 2024-01-26 17:17:05 +01:00
Wolfgang WaltherandWolfgang Walther 85fbb233a7 nix: Build only libpq instead of full postgresql package 2024-01-26 17:17:05 +01:00
Wolfgang WaltherandWolfgang Walther 259d97acee nix: Build static postgrest executable via pkgsStatic
This replaces the build via static-haskell-nix and will hopefully make
it possible to cross compile in the future.
2024-01-26 17:17:05 +01:00
Wolfgang WaltherandWolfgang Walther 3a639c7172 ci: Fix FreeBSD build on cirrus 2024-01-25 21:27:17 +01:00
Wolfgang WaltherandWolfgang Walther d75be243ac ci: Build with GHC 9.8.1 via Cabal 2024-01-25 21:27:17 +01:00
Wolfgang WaltherandWolfgang Walther 2ffb97991d ci: Build with GHC 9.6.4 via Cabal
This confirms that building with GHC 9.6.x works already, even if we can't
switch to it for the nix and stack builds, yet.
2024-01-25 21:27:17 +01:00
Wolfgang WaltherandWolfgang Walther 2e298824d6 deps: Replace postgresql-libpq fork with upstream v0.10
Our changes to reduce memory usage have been merged and released
upstream, so no need for the fork anymore.
2024-01-25 21:27:17 +01:00
Andrei DziahelandWolfgang Walther d7246b4851 ci: nix-store --realise to tools:
Since we're building only tools now, we can just specify them directly
in the `tools:` parameter of `setup-nix` action.
2024-01-22 18:17:38 +01:00
Andrei DziahelandWolfgang Walther 286103daf2 ci: do not rebuild postgrest
specify outputs to cache excluding postgrest
2024-01-22 18:17:38 +01:00
Andrei DziahelandSteve Chavez 9c78751871 ci: fix c-n-a input names 2024-01-22 11:28:41 -05:00
dependabot[bot]andSteve Chavez 820917bcb6 build(deps): bump nix-community/cache-nix-action
Bumps [nix-community/cache-nix-action](https://github.com/nix-community/cache-nix-action) from 4.0.3 to 5.0.1.
- [Release notes](https://github.com/nix-community/cache-nix-action/releases)
- [Changelog](https://github.com/nix-community/cache-nix-action/blob/main/RELEASES.md)
- [Commits](https://github.com/nix-community/cache-nix-action/compare/v4.0.3...v5.0.1)

---
updated-dependencies:
- dependency-name: nix-community/cache-nix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 11:28:41 -05:00
dependabot[bot]andGitHub 02312804f0 build(deps): bump actions/cache from 3 to 4 (#3179) 2024-01-22 09:13:30 -05:00
Steve ChavezandGitHub 7a387c7a30 nix: add parallel-curl wrapper (#3172)
stock curl doesn't make it easy to make many parallel requests to a
single endpoint. The endpoint has to be repeated N times.

```
curl --parallel https://example.com https://example.com ..
```

This provides a wrapper for parallel curl. It's useful for testing
scenarios like pool timeouts.

```
parallel-curl N https://example.com
```
2024-01-18 20:03:01 -05:00
Wolfgang WaltherandWolfgang Walther 6682baebd2 nix: Update nixpkgs and build with GHC 9.4.8 2024-01-18 18:54:33 +01:00
Wolfgang WaltherandWolfgang Walther e4c60889ee nix: Make postgrest-nixpkgs-upgrade take the latest stable version
Previously this command upgraded to the latest unstable version of nixpkgs,
but this was often broken. Taking the latest stable branch should give
better results.
2024-01-18 18:54:33 +01:00
Steve ChavezandGitHub c070cb9502 Revert "build(deps): bump nix-community/cache-nix-action from 4.0.3 to 5.0.1 in /.github/actions/setup-nix" (#3167) 2024-01-17 17:55:38 -05:00