* Add makefile
* Use makefile for builds
* Fix start_server command on Windows
* Use `&` for backgrounding
Since mingw on Windows provides a bash shell, we can just use this
* Use `cmd` as shell for Windows builds
* Use `start` for backgrounding on Windows
* No need for chmod
* Specify target for server to start up
* Sleep to let the server start up
* Update build docs
* Bump up version, add changelog and update scripts
* Fix actiondoc
* Drop all `since` keys
Since our docs are now well versioned and doesn't read these keys
anymore, we can safely remove them.
* Create a new file on writing to flock-ed file
This fix is a very important one in two ways. Say we have an user A.
They go ahead and launch skyd. skyd creates a data.bin file. Now A just
deletes the data.bin file for fun. Funny enough, this never causes flock
to error!
Why? Well because the descriptor/handle is still valid and was just
unlinked from the current directory. But this might seem silly since
the user exits with a 'successfully saved notice' only to find that the
file never existed and all of their data was lost. That's bad.
There's a hidden problem in our current approach too, apart from this.
Our writing process begins by truncating the old file and then writing
to it by placing the cursor at 0. Nice, but what if this operation just
crashes. So we lost the current data AND the old data. Not good.
This commit does a better thing: it creates a new temporary file, locks
it before writing and then flushes the current data to the temporary
file. Once that succeeds, it replaces the old data.bin file with the
newly created file.
This solves both the problems mentioned here for us:
1. No more of the silly error
2. If BGSAVE crashes in between, we can be sure that at least the last
data.bin file is in proper shape and not half truncated or so.
This commit further moves the background services into their
own module(s) for easy management.
* Fix CI scripts
Fixes:
1. Our custom runner (drone/.ci.yml) was modified to kill the skyd
process once done since this pipeline is not ephemeral.
2. GHA for some reason ignores any error in the test step and proceeds
to kill the skyd process without erroring. Since GHA runners are
ephemeral, we don't need to do this manually.
The upload-release-asset action only supports files and not entire dirs.
I had expected it to zip an item if it were a directory; but I was wrong
This commit zips everything before attempting to upload the artifacts
* Add support for new T1 platforms
This commit adds support for the following Tier-1 (T1) platforms:
- i686-unknown-linux-gnu
- i686-pc-windows-msvc
* Fix channel and add explicit target in cargo test
* Use `target add` to add $matrix.rust target
* Use actions-rs/toolchain to install rust
* Install musl-tools to test musl
* Simplify matrix
* Add 32-bit targets and refactor workflow
* Fix build matrix
* Explicitly specify target in cargo test
* Use rustup to install toolchain
* Install 32 bit tools on Linux
* Remove ports in [49000,50000] on Windows
This closes#107, closes#108 and closes#109.
The configuration template was updated to include TLS/SSL and the
corresponding tests were also updated.
It also renames `sdb` to `skyd` for streamlining binary names.
Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
As per the runner docs Perl is already installed on the runners.
This is why explicit setup is not required.
Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
* Checkout the PR branch if triggered by a PR
Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
* Use `cmd` as the shell on Windows to fix builds
Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
#104 did this for pushes; this will do it for releases.
* Fix Windows release script
Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
* No need to checkout to head.ref for PRs
Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
Dependencies were upgraded
A mirror sync badge was added. Also README was revised and workflow badge was fixed.
Signed-off-by: Sayan Nandan nandansayan@outlook.com
This commit re-enables docker image builds which was moved to a different CI server in a previous commit.
Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
We were previously using the ubuntu image and then manually installing
rust. From now on, we'll use the rust docker image instead to avoid huge
build times
Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
There's no point of running tests on tags since we only create tags
after the build for the corresponding commit has succeeded.
Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
In previous commits, we ignored the fact that bools are strings in bash
This caused the workflow to proceed wrongly and this commit fixes that
Also, auto builds for actions docs were added