From c2cb2a38ad7d3054d62e53023d8ff4343e153ca4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Floure?= Date: Wed, 20 Apr 2022 11:00:21 +0200 Subject: [PATCH] Replace srht CI by internal drone pipeline --- .build.yml | 19 ------------------- .drone.yml | 34 ++++++++++++++++++++++++++++++++++ config/config.exs | 40 +++++++++++++++++++++++++++++++++++++++- mix.exs | 3 ++- mix.lock | 11 +++++++++++ run-ci.sh | 17 ----------------- 6 files changed, 86 insertions(+), 38 deletions(-) delete mode 100644 .build.yml create mode 100644 .drone.yml delete mode 100755 run-ci.sh diff --git a/.build.yml b/.build.yml deleted file mode 100644 index 0963b41..0000000 --- a/.build.yml +++ /dev/null @@ -1,19 +0,0 @@ -image: alpine/latest -packages: -- elixir -artifacts: -- ha-handler/_build/prod/rel/ha-handler.tar.gz -sources: -- https://code.recycled.cloud/RecycledCloud/ha-handler.git -tasks: -- setup: | - cd ha-handler - mix local.hex --force - mix local.rebar --force - mix deps.get -- release: | - cd ha-handler - MIX_ENV=prod mix compile - MIX_ENV=prod mix release - cd _build/prod/rel - tar cvzf ha-handler.tar.gz ha_handler/ diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..c59d91a --- /dev/null +++ b/.drone.yml @@ -0,0 +1,34 @@ +--- +kind: pipeline +name: default + +steps: +- name: build-release + image: alpine:latest + environment: + MIX_ENV: prod + commands: + - apk add elixir git make gcc libc-dev + - mix local.hex --force + - mix local.rebar --force + - mix deps.get + - mix compile + - mix release + - cd _build/prod/rel + - tar czf "ha-handler-$(git describe --exact-match --tags $(git log -n1 --pretty='%h') || git rev-parse HEAD).tar.gz" ha_handler/ +- name: publish-release-archive + image: alpine:latest + environment: + LFTP_PASSWORD: + from_secret: ssh_password + commands: + - apk add git lftp openssh-client + - cd _build/prod/rel + - mkdir ~/.ssh + - ssh-keyscan static.recycled.cloud > ~/.ssh/known_hosts + - lftp "sftp://artifacts:$LFTP_PASSWORD@static.recycled.cloud" -e "cd htdocs; put ha-handler-$(git describe --exact-match --tags $(git log -n1 --pretty='%h') || git rev-parse HEAD).tar.gz; bye" + +--- +kind: secret +name: ssh_password +data: aRTqi4c0MkO0arILOMZOFPeRg4HrCRkR52NcxwWRKI6ju69L diff --git a/config/config.exs b/config/config.exs index 768a042..531ddb2 100644 --- a/config/config.exs +++ b/config/config.exs @@ -4,4 +4,42 @@ config :ha_handler, http_port: 4000, acme_challenge_path: "acme-challenge", haproxy_socket: System.get_env("HAPROXY_SOCKET") || "/var/run/haproxy.sock", - pgsql_instances: [] + pgsql_instances: [ + [ + hostname: "pgsql.lnth.ch.recycled.cloud", + username: "postgres", + database: "postgres", + haproxy_server: "lnth", + password: "eicheeR6ieph5jae7oozahf3vesio9Ae", + socket_options: [:inet6], + ssl: true + ], + [ + hostname: "pgsql.fvil.ch.recycled.cloud", + haproxy_server: "fvil", + username: "postgres", + database: "postgres", + password: "eicheeR6ieph5jae7oozahf3vesio9Ae", + socket_options: [:inet6], + ssl: true + ] + ], + drbd_instances: [ + [ + hostname: "drbd.lnth.ch.recycled.cloud", + password: "tu9laiz9teece6aithohjohph6eCh3qu", + haproxy_server: "lnth" + ], + [ + hostname: "drbd.fvil.ch.recycled.cloud", + password: "tu9laiz9teece6aithohjohph6eCh3qu", + haproxy_server: "fvil" + ] + ] + +config :appsignal, :config, + active: false, + otp_app: :ha_handler, + name: "ha-handler", + push_api_key: "secret", + env: config_env() diff --git a/mix.exs b/mix.exs index 880e01c..4a09566 100644 --- a/mix.exs +++ b/mix.exs @@ -29,7 +29,8 @@ defmodule HAHandler.MixProject do {:procket, "~> 0.9"}, {:poison, "~> 5.0"}, {:postgrex, "~> 0.16.1"}, - {:sshex, "~> 2.2.1"} + {:sshex, "~> 2.2.1"}, + {:appsignal, "~> 2.0"} ] end diff --git a/mix.lock b/mix.lock index f1c73f5..91df106 100644 --- a/mix.lock +++ b/mix.lock @@ -1,12 +1,20 @@ %{ "afunix": {:git, "https://github.com/tonyrog/afunix.git", "d7baab77d741d49bce08de2aeb28c5f192ab13d8", []}, + "appsignal": {:hex, :appsignal, "2.2.10", "faf085bd5130a3f885620daab8baa660683ba2018eb43e9a6763a643e42c02c3", [:make, :mix], [{:decorator, "~> 1.2.3 or ~> 1.3", [hex: :decorator, repo: "hexpm", optional: false]}, {:hackney, "~> 1.6", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:poison, ">= 1.3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ca9818ac46efae3d1c61c5f119e8af83ea000903ca26979c0eeafeb9f5df5615"}, + "certifi": {:hex, :certifi, "2.9.0", "6f2a475689dd47f19fb74334859d460a2dc4e3252a3324bd2111b8f0429e7e21", [:rebar3], [], "hexpm", "266da46bdb06d6c6d35fde799bcb28d36d985d424ad7c08b5bb48f5b5cdd4641"}, "connection": {:hex, :connection, "1.1.0", "ff2a49c4b75b6fb3e674bfc5536451607270aac754ffd1bdfe175abe4a6d7a68", [:mix], [], "hexpm", "722c1eb0a418fbe91ba7bd59a47e28008a189d47e37e0e7bb85585a016b2869c"}, "cowboy": {:hex, :cowboy, "2.9.0", "865dd8b6607e14cf03282e10e934023a1bd8be6f6bacf921a7e2a96d800cd452", [:make, :rebar3], [{:cowlib, "2.11.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "2c729f934b4e1aa149aff882f57c6372c15399a20d54f65c8d67bef583021bde"}, "cowboy_telemetry": {:hex, :cowboy_telemetry, "0.4.0", "f239f68b588efa7707abce16a84d0d2acf3a0f50571f8bb7f56a15865aae820c", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de"}, "cowlib": {:hex, :cowlib, "2.11.0", "0b9ff9c346629256c42ebe1eeb769a83c6cb771a6ee5960bd110ab0b9b872063", [:make, :rebar3], [], "hexpm", "2b3e9da0b21c4565751a6d4901c20d1b4cc25cbb7fd50d91d2ab6dd287bc86a9"}, "db_connection": {:hex, :db_connection, "2.4.1", "6411f6e23f1a8b68a82fa3a36366d4881f21f47fc79a9efb8c615e62050219da", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ea36d226ec5999781a9a8ad64e5d8c4454ecedc7a4d643e4832bf08efca01f00"}, "decimal": {:hex, :decimal, "2.0.0", "a78296e617b0f5dd4c6caf57c714431347912ffb1d0842e998e9792b5642d697", [:mix], [], "hexpm", "34666e9c55dea81013e77d9d87370fe6cb6291d1ef32f46a1600230b1d44f577"}, + "decorator": {:hex, :decorator, "1.4.0", "a57ac32c823ea7e4e67f5af56412d12b33274661bb7640ec7fc882f8d23ac419", [:mix], [], "hexpm", "0a07cedd9083da875c7418dea95b78361197cf2bf3211d743f6f7ce39656597f"}, + "hackney": {:hex, :hackney, "1.18.1", "f48bf88f521f2a229fc7bae88cf4f85adc9cd9bcf23b5dc8eb6a1788c662c4f6", [:rebar3], [{:certifi, "~>2.9.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~>6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~>1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~>1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "a4ecdaff44297e9b5894ae499e9a070ea1888c84afdd1fd9b7b2bc384950128e"}, + "idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"}, + "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm", "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"}, "mime": {:hex, :mime, "2.0.2", "0b9e1a4c840eafb68d820b0e2158ef5c49385d17fb36855ac6e7e087d4b1dcc5", [:mix], [], "hexpm", "e6a3f76b4c277739e36c2e21a2c640778ba4c3846189d5ab19f97f126df5f9b7"}, + "mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"}, + "parse_trans": {:hex, :parse_trans, "3.3.1", "16328ab840cc09919bd10dab29e431da3af9e9e7e7e6f0089dd5a2d2820011d8", [:rebar3], [], "hexpm", "07cd9577885f56362d414e8c4c4e6bdf10d43a8767abb92d24cbe8b24c54888b"}, "plug": {:hex, :plug, "1.12.1", "645678c800601d8d9f27ad1aebba1fdb9ce5b2623ddb961a074da0b96c35187d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "d57e799a777bc20494b784966dc5fbda91eb4a09f571f76545b72a634ce0d30b"}, "plug_cowboy": {:hex, :plug_cowboy, "2.5.2", "62894ccd601cf9597e2c23911ff12798a8a18d237e9739f58a6b04e4988899fe", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "ea6e87f774c8608d60c8d34022a7d073bd7680a0a013f049fc62bf35efea1044"}, "plug_crypto": {:hex, :plug_crypto, "1.2.2", "05654514ac717ff3a1843204b424477d9e60c143406aa94daf2274fdd280794d", [:mix], [], "hexpm", "87631c7ad914a5a445f0a3809f99b079113ae4ed4b867348dd9eec288cecb6db"}, @@ -15,6 +23,9 @@ "procket": {:hex, :procket, "0.9.5", "ce91c00cb3f4d627fb3827f46ce68e6a969ea265df1afb349c300a07be4bb16c", [:rebar3], [], "hexpm", "1288bba5eb6f08ea5df3dda9e051bdac8f4b1e50adcca5cf4d726e825ad81bed"}, "ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"}, "replug": {:hex, :replug, "0.1.0", "61d35f8c873c0078a23c49579a48f36e45789414b1ec0daee3fd5f4e34221f23", [:mix], [{:plug, "~> 1.8", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "f71f7a57e944e854fe4946060c6964098e53958074c69fb844b96e0bd58cfa60"}, + "sshex": {:hex, :sshex, "2.2.1", "e1270b8345ea2a66a11c2bb7aed22c93e3bc7bc813486f4ffd0a980e4a898160", [:mix], [], "hexpm", "45b2caa5011dc850e70a2d77e3b62678a3e8bcb903eab6f3e7afb2ea897b13db"}, + "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.6", "cf344f5692c82d2cd7554f5ec8fd961548d4fd09e7d22f5b62482e5aeaebd4b0", [:make, :mix, :rebar3], [], "hexpm", "bdb0d2471f453c88ff3908e7686f86f9be327d065cc1ec16fa4540197ea04680"}, "sweet_xml": {:hex, :sweet_xml, "0.7.2", "4729f997286811fabdd8288f8474e0840a76573051062f066c4b597e76f14f9f", [:mix], [], "hexpm", "6894e68a120f454534d99045ea3325f7740ea71260bc315f82e29731d570a6e8"}, "telemetry": {:hex, :telemetry, "1.0.0", "0f453a102cdf13d506b7c0ab158324c337c41f1cc7548f0bc0e130bbf0ae9452", [:rebar3], [], "hexpm", "73bc09fa59b4a0284efb4624335583c528e07ec9ae76aca96ea0673850aec57a"}, + "unicode_util_compat": {:hex, :unicode_util_compat, "0.7.0", "bc84380c9ab48177092f43ac89e4dfa2c6d62b40b8bd132b1059ecc7232f9a78", [:rebar3], [], "hexpm", "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"}, } diff --git a/run-ci.sh b/run-ci.sh deleted file mode 100755 index b03f93e..0000000 --- a/run-ci.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -set -e - -BUILDS_INSTANCE=https://builds.sr.ht -MANIFEST=.build.yml - -if [ -z "$SRHT_ACCESS_TOKEN" ]; then - echo "Please set SRHT_ACCESS_TOKEN before calling this script." >&2 - exit 1 -fi - -curl \ - -H Authorization:"token $SRHT_ACCESS_TOKEN" \ - --data "manifest=$(jq -R -r --slurp < $MANIFEST)" \ - --data "note=recycledcloud-ha-handler" \ - -X POST $BUILDS_INSTANCE/api/jobs | jq