diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fea12c01..e7936fef 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,7 +27,7 @@ Please keep the following guidelines in mind when opening a pull request: - Add tests for your changes, if possible. - Ensure that your changes don't break existing functionality. -#### Commit message guidline +#### Commit message guidelines A good commit message should describe what changed and why. diff --git a/Dockerfile b/Dockerfile index 235bed6a..dc8c0230 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ RUN apk add --no-cache --update build-base git docker openrc openssh-client-defa # Copy the rest of our application code into the container. # We do this after bundle install, to avoid having to run bundle -# everytime we do small fixes in the source code. +# every time we do small fixes in the source code. COPY . . # Install the gem locally from the project folder diff --git a/README.md b/README.md index ca9bdb8e..85f8c722 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ Voila! All the servers are now serving the app on port 80. If you're just runnin In the past decade+, there's been an explosion in commercial offerings that make deploying web apps easier. Heroku kicked it off with an incredible offering that stayed ahead of the competition seemingly forever. These days we have excellent alternatives like Fly.io and Render. And hosted Kubernetes is making things easier too on AWS, GCP, Digital Ocean, and elsewhere. But these are all offerings that have you renting computers in the cloud at a premium. If you want to run on your own hardware, or even just have a clear migration path to do so in the future, you need to carefully consider how locked in you get to these commercial platforms. Preferably before the bills swallow your business whole! -MRSK seeks to bring the advance in ergonomics pioneered by these commercial offerings to deploying web apps anywhere. Whether that's low-cost cloud options without the managed-service markup from the likes of Digital Ocean, Hetzner, OVH, etc, or it's your own colocated bare metal. To MRSK, it's all the same. Feed the config file a list of IP addresses with vanilla Ubuntu servers that have seen no prep beyond an added SSH key, and you'll be running in literally minutes. +MRSK seeks to bring the advance in ergonomics pioneered by these commercial offerings to deploying web apps anywhere. Whether that's low-cost cloud options without the managed-service markup from the likes of Digital Ocean, Hetzner, OVH, etc., or it's your own colocated bare metal. To MRSK, it's all the same. Feed the config file a list of IP addresses with vanilla Ubuntu servers that have seen no prep beyond an added SSH key, and you'll be running in literally minutes. This approach gives you enormous portability. You can have your web app deployed on several clouds at ease like this. Or you can buy the baseline with your own hardware, then deploy to a cloud before a big seasonal spike to get more capacity. When you're not locked into a single provider from a tooling perspective, there are a lot of compelling options available. @@ -670,7 +670,7 @@ This assumes the Cron settings are stored in `config/crontab`. ### Healthcheck -MRSK uses Docker healtchecks to check the health of your application during deployment. Traefik uses this same healthcheck status to determine when a container is ready to receive traffic. +MRSK uses Docker healthchecks to check the health of your application during deployment. Traefik uses this same healthcheck status to determine when a container is ready to receive traffic. The healthcheck defaults to testing the HTTP response to the path `/up` on port 3000, up to 7 times. You can tailor this behaviour with the `healthcheck` setting: diff --git a/lib/mrsk/cli/lock.rb b/lib/mrsk/cli/lock.rb index 4bdec032..7e90a917 100644 --- a/lib/mrsk/cli/lock.rb +++ b/lib/mrsk/cli/lock.rb @@ -7,7 +7,7 @@ class Mrsk::Cli::Lock < Mrsk::Cli::Base end desc "acquire", "Acquire the deploy lock" - option :message, aliases: "-m", type: :string, desc: "A lock mesasge", required: true + option :message, aliases: "-m", type: :string, desc: "A lock message", required: true def acquire message = options[:message] raise_if_locked do diff --git a/test/cli/server_test.rb b/test/cli/server_test.rb index 48d4484f..bf3886cc 100644 --- a/test/cli/server_test.rb +++ b/test/cli/server_test.rb @@ -11,7 +11,7 @@ class CliServerTest < CliTestCase SSHKit::Backend::Abstract.any_instance.expects(:execute).with(:docker, "-v", raise_on_non_zero_exit: false).returns(false).at_least_once SSHKit::Backend::Abstract.any_instance.expects(:execute).with('[ "${EUID:-$(id -u)}" -eq 0 ]', raise_on_non_zero_exit: false).returns(false).at_least_once - assert_raise RuntimeError, "Docker is not installed on 1.1.1.1, 1.1.1.3, 1.1.1.4, 1.1.1.2 and can't be automatically intalled without having root access and the `curl` command available. Install Docker manually: https://docs.docker.com/engine/install/" do + assert_raise RuntimeError, "Docker is not installed on 1.1.1.1, 1.1.1.3, 1.1.1.4, 1.1.1.2 and can't be automatically installed without having root access and the `curl` command available. Install Docker manually: https://docs.docker.com/engine/install/" do run_command("bootstrap") end end diff --git a/test/commander_test.rb b/test/commander_test.rb index 25dfabdd..246650a9 100644 --- a/test/commander_test.rb +++ b/test/commander_test.rb @@ -65,7 +65,7 @@ class CommanderTest < ActiveSupport::TestCase end test "percentage-based group strategy" do - configure_with(:deploy_with_precentage_boot_strategy) + configure_with(:deploy_with_percentage_boot_strategy) assert_equal({ in: :groups, limit: 1, wait: 2 }, @mrsk.boot_strategy) end diff --git a/test/commands/builder_test.rb b/test/commands/builder_test.rb index e5f83f1c..57b3a24d 100644 --- a/test/commands/builder_test.rb +++ b/test/commands/builder_test.rb @@ -88,7 +88,7 @@ class CommandsBuilderTest < ActiveSupport::TestCase builder.push.join(" ") end - test "native push with with build secrets" do + test "native push with build secrets" do builder = new_builder_command(builder: { "multiarch" => false, "secrets" => [ "a", "b" ] }) assert_equal \ "docker build -t dhh/app:123 -t dhh/app:latest --label service=\"app\" --secret id=\"a\" --secret id=\"b\" --file Dockerfile . && docker push dhh/app:123 && docker push dhh/app:latest",