Commit graph

8 commits

Author SHA1 Message Date
Kian-Meng Ang f0150c6160
Use erlef/setup-beam, bump gha versions (#76)
Remove extra redirection. See https://github.com/erlef/setup-beam/issues/20
2022-10-31 17:30:07 -06:00
Ben Busby e58d6e23ed
Remove Redis dep, replace w/ native Elixir lib
This removes the dependency on Redis for core app functionality. Rather
than using the key/value store provided by Redis, Farside now uses a
key/val store provided by [cubdb](https://github.com/lucaong/cubdb) for
identical functionality but without reliance on a non-Elixir service.

This solution was chosen instead of ets, because storing instance data
in memory leads to a period of broken functionality whenever the app
restarts and hasn't re-populated instance data yet. It was also chosen
instead of dets, because the documentation for dets was pretty hard to
understand at first glance.

Tests and the CI build were updated to reflect the removed dependency on
Redis.

New environment variable `FARSIDE_DATA_DIR` can be used to point to a
directory where the instance data can be stored by cubdb.

Co-authored-by: Jason Clark <mithereal@gmail.com>
2022-10-31 16:45:31 -06:00
Ben Busby 592e492a62
Use full service list for tests
The filtered service list isn't guaranteed to have more than one
instance per service, which fails a test that was designed to ensure
back-to-back requests don't use the same instance. Using the full
services json file more accurately tests the intended functionality for
Farside.
2022-07-27 14:12:48 -06:00
Ben Busby ff97d258f0
Use quantum core for update scheduling
Rather than requiring a traditional crontab install, the app now
leverages quantum-core (link below) to schedule the instance update/sync
task every 5 minutes. Some updates as a result:

  - The new job is scheduled at runtime in server.ex.
  - The update.exs script was refactored to be compiled along with the
    rest of the app as instances.ex.
  - Scheduler and Server modules were added for creating and executing
    the new update task
  - All shell scripts were removed, as they are no longer needed

https://github.com/quantum-elixir/quantum-core
2021-11-24 09:35:21 -07:00
Ben Busby f33279c41b
Test for valid service redirects
Updates testing to iterate through all available services and validate
that each one correctly produces a 302 redirect.
2021-11-10 11:47:03 -07:00
Ben Busby 85123cb524
Use elixir 1.12 and otp 24 in build/test 2021-11-09 15:22:32 -07:00
Ben Busby 39c244d970
Skip querying all instances w/ "test mode"
Now allows setting FARSIDE_TEST to skip individually fetching each
instance, and instead just adds all of them to redis instantly. This
allows for an easier time in CI builds, for both the sake of speed and
to prevent a scenario where many simultaneous builds have a noticeable
impact on actual instances.
2021-11-09 15:12:58 -07:00
Ben Busby 83bcad2eda
Add elixir CI 2021-10-26 21:21:00 -06:00