Skip to content
This repository has been archived by the owner on Dec 13, 2024. It is now read-only.

Commit

Permalink
Basic CircleCI setup (includes a nightly build)
Browse files Browse the repository at this point in the history
Didn't setup Slack notifications for this, though. CircleCI has changed
the way it works & their official Slack app instructions are out of
date. The new setup requires creating a separate Slack app w/ OAuth.
I don't have the Slack permissions to set that up, so punting for now.
  • Loading branch information
bnadlerjr committed Jan 6, 2021
1 parent c8337a4 commit 6e29124
Show file tree
Hide file tree
Showing 7 changed files with 63 additions and 11 deletions.
48 changes: 48 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
version: 2.1
jobs:
compile-and-test:
docker:
- image: circleci/elixir:1.10.0
environment:
MIX_ENV: test
PGHOST: localhost
PGUSERNAME: postgres
RABBITMQ_CONNECTION_URL: amqp://guest:guest@localhost:5672
RABBITMQ_API_URL: http://guest:guest@localhost:15672/api/
- image: circleci/postgres:9.6-alpine
- image: rabbitmq:3.8.9-management-alpine
working_directory: ~/repo
steps:
- checkout
- restore_cache:
keys:
- v2-cache-{{ .Branch }}-{{ checksum "mix.lock" }}
- run: ./bin/setup circleci
- save_cache:
key: v2-cache-{{ .Branch }}-{{ checksum "mix.lock" }}
paths:
- "deps"
- "_build"
- run:
name: Wait for postgresql
command: dockerize -wait tcp://localhost:5432 -timeout 1m
- run:
name: Wait for rabbitmq
command: dockerize -wait tcp://guest:guest@localhost:15672 -timeout 1m
- run: ./bin/ci
- store_test_results:
path: _build/test/lib/railway_ipc
workflows:
build:
jobs:
- compile-and-test
nightly:
triggers:
- schedule:
cron: "0 0 * * *"
filters:
branches:
only:
- master
jobs:
- compile-and-test
5 changes: 4 additions & 1 deletion bin/ci
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
set -euo pipefail
IFS=$'\n\t'

echo "Checking formatting..."
mix format --check-formatted
mix credo --strict
echo "Linting..."
mix credo
echo "Running tests..."
mix test
4 changes: 3 additions & 1 deletion bin/setup
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@ if [ "${1-}" = "circleci" ]; then
mix local.rebar --force
fi

mix do deps.get, compile --warnings-as-errors
mix deps.get
mix deps.compile
mix compile
1 change: 0 additions & 1 deletion lib/railway_ipc/persistence/persistence_behaviour.ex
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
defmodule RailwayIpc.PersistenceBehaviour do
@moduledoc false
alias RailwayIpc.Persistence.{ConsumedMessage, PublishedMessage}
@moduledoc false
alias RailwayIpc.Persistence.ConsumedMessage
@callback insert_published_message(Map.t()) :: tuple()
@callback insert_consumed_message(Map.t()) :: tuple()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ defmodule RailwayIpc.Ipc.RepublishedMessagesPublisherTest do
request_data: request_data,
original_published_message_uuid: original_published_message_uuid
} do
# credo:disable-for-next-line Credo.Check.Design.AliasUsage
# credo:disable-for-lines:2 Credo.Check.Design.AliasUsage
command =
RailwayIpc.Commands.RepublishMessage.new(user_uuid: "abcabc", uuid: Ecto.UUID.generate())

Expand Down Expand Up @@ -94,7 +94,7 @@ defmodule RailwayIpc.Ipc.RepublishedMessagesPublisherTest do
request_data: request_data,
original_published_message_uuid: original_published_message_uuid
} do
# credo:disable-for-next-line Credo.Check.Design.AliasUsage
# credo:disable-for-lines:2 Credo.Check.Design.AliasUsage
command =
RailwayIpc.Commands.RepublishMessage.new(user_uuid: "abcabc", uuid: Ecto.UUID.generate())

Expand Down
8 changes: 4 additions & 4 deletions test/railway_ipc/publisher_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ defmodule RailwayIpc.PublisherTest do
end

test "it adds a uuid to the message" do
# credo:disable-for-next-line Credo.Check.Design.AliasUsage
# credo:disable-for-lines:2 Credo.Check.Design.AliasUsage
message =
RailwayIpc.Commands.RepublishMessage.new(%{
user_uuid: Ecto.UUID.generate()
Expand All @@ -229,7 +229,7 @@ defmodule RailwayIpc.PublisherTest do
test "it does not overwrite existing UUID" do
message_uuid = Ecto.UUID.generate()

# credo:disable-for-next-line Credo.Check.Design.AliasUsage
# credo:disable-for-lines:2 Credo.Check.Design.AliasUsage
message =
RailwayIpc.Commands.RepublishMessage.new(%{
user_uuid: Ecto.UUID.generate(),
Expand All @@ -256,7 +256,7 @@ defmodule RailwayIpc.PublisherTest do
correlation_id = Ecto.UUID.generate()
queue = "republish_queue"

# credo:disable-for-next-line Credo.Check.Design.AliasUsage
# credo:disable-for-lines:2 Credo.Check.Design.AliasUsage
message =
RailwayIpc.Commands.RepublishMessage.new(%{
user_uuid: user_uuid,
Expand All @@ -282,7 +282,7 @@ defmodule RailwayIpc.PublisherTest do
correlation_id = Ecto.UUID.generate()
queue = "republish_queue"

# credo:disable-for-next-line Credo.Check.Design.AliasUsage
# credo:disable-for-lines:2 Credo.Check.Design.AliasUsage
message =
RailwayIpc.Commands.RepublishMessage.new(%{
user_uuid: user_uuid,
Expand Down
4 changes: 2 additions & 2 deletions test/railway_ipc/republish_command_consumer_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,13 @@ defmodule RailwayIpc.RepublishedMessagesConsumerTest do
end

test "acks message when successful", %{persisted_published_message: persisted_published_message} do
# credo:disable-for-next-line Credo.Check.Design.AliasUsage
# credo:disable-for-lines:2 Credo.Check.Design.AliasUsage
data =
RailwayIpc.Commands.RepublishMessage.Data.new(
published_message_uuid: persisted_published_message.uuid
)

# credo:disable-for-next-line Credo.Check.Design.AliasUsage
# credo:disable-for-lines:2 Credo.Check.Design.AliasUsage
{:ok, command} =
RailwayIpc.Commands.RepublishMessage.new(correlation_id: "123", data: data)
|> Payload.encode()
Expand Down

0 comments on commit 6e29124

Please sign in to comment.