From e2bab17efb091d27ba814f822fb8a66a5188e896 Mon Sep 17 00:00:00 2001 From: Jamil Bou Kheir Date: Wed, 15 Dec 2021 14:06:01 -0800 Subject: [PATCH 1/6] Add git_sha script --- apps/fz_common/mix.exs | 4 ++-- .../lib/fz_http_web/templates/layout/root.html.heex | 2 +- apps/fz_http/lib/fz_http_web/views/layout_view.ex | 4 ++-- apps/fz_http/mix.exs | 4 ++-- apps/fz_vpn/mix.exs | 4 ++-- apps/fz_wall/mix.exs | 4 ++-- config/config.exs | 11 ++--------- mix.exs | 2 +- omnibus/config/software/firezone.rb | 3 ++- scripts/git_sha.exs | 2 ++ scripts/git_sha.sh | 13 +++++++++++++ scripts/version.exs | 2 ++ version.exs | 7 ------- 13 files changed, 33 insertions(+), 29 deletions(-) create mode 100644 scripts/git_sha.exs create mode 100755 scripts/git_sha.sh create mode 100644 scripts/version.exs delete mode 100644 version.exs diff --git a/apps/fz_common/mix.exs b/apps/fz_common/mix.exs index ab460e9ce..e9a3ff1bd 100644 --- a/apps/fz_common/mix.exs +++ b/apps/fz_common/mix.exs @@ -1,7 +1,7 @@ defmodule FzCommon.MixProject do use Mix.Project - @version_path "../../version.exs" + @version_path "../../scripts/version.exs" def version do Code.eval_file(@version_path) @@ -16,7 +16,7 @@ defmodule FzCommon.MixProject do config_path: "../../config/config.exs", deps_path: "../../deps", lockfile: "../../mix.lock", - elixir: "~> 1.11", + elixir: "~> 1.12", start_permanent: Mix.env() == :prod, deps: deps() ] diff --git a/apps/fz_http/lib/fz_http_web/templates/layout/root.html.heex b/apps/fz_http/lib/fz_http_web/templates/layout/root.html.heex index e83bda60c..5eedd0cd8 100644 --- a/apps/fz_http/lib/fz_http_web/templates/layout/root.html.heex +++ b/apps/fz_http/lib/fz_http_web/templates/layout/root.html.heex @@ -142,7 +142,7 @@
diff --git a/apps/fz_http/lib/fz_http_web/views/layout_view.ex b/apps/fz_http/lib/fz_http_web/views/layout_view.ex index def35d2f7..8f435cdc7 100644 --- a/apps/fz_http/lib/fz_http_web/views/layout_view.ex +++ b/apps/fz_http/lib/fz_http_web/views/layout_view.ex @@ -23,8 +23,8 @@ defmodule FzHttpWeb.LayoutView do The current github sha, used to link to our Github repo. This is set during application compile time. """ - def github_sha do - Application.get_env(:fz_http, :github_sha, "master") + def git_sha do + Application.fetch_env!(:fz_http, :git_sha) end @doc """ diff --git a/apps/fz_http/mix.exs b/apps/fz_http/mix.exs index 23777ebe6..45de1d324 100644 --- a/apps/fz_http/mix.exs +++ b/apps/fz_http/mix.exs @@ -1,7 +1,7 @@ defmodule FzHttp.MixProject do use Mix.Project - @version_path "../../version.exs" + @version_path "../../scripts/version.exs" def version do Code.eval_file(@version_path) @@ -16,7 +16,7 @@ defmodule FzHttp.MixProject do config_path: "../../config/config.exs", deps_path: "../../deps", lockfile: "../../mix.lock", - elixir: "~> 1.11", + elixir: "~> 1.12", elixirc_paths: elixirc_paths(Mix.env()), compilers: [:phoenix, :gettext] ++ Mix.compilers(), start_permanent: Mix.env() == :prod, diff --git a/apps/fz_vpn/mix.exs b/apps/fz_vpn/mix.exs index 9e7b85d24..a6c659cfe 100644 --- a/apps/fz_vpn/mix.exs +++ b/apps/fz_vpn/mix.exs @@ -1,7 +1,7 @@ defmodule FzVpn.MixProject do use Mix.Project - @version_path "../../version.exs" + @version_path "../../scripts/version.exs" def version do Code.eval_file(@version_path) @@ -16,7 +16,7 @@ defmodule FzVpn.MixProject do config_path: "../../config/config.exs", deps_path: "../../deps", lockfile: "../../mix.lock", - elixir: "~> 1.11", + elixir: "~> 1.12", start_permanent: Mix.env() == :prod, test_coverage: [tool: ExCoveralls], preferred_cli_env: [ diff --git a/apps/fz_wall/mix.exs b/apps/fz_wall/mix.exs index b92342ab3..4d67e3cb6 100644 --- a/apps/fz_wall/mix.exs +++ b/apps/fz_wall/mix.exs @@ -1,7 +1,7 @@ defmodule FzWall.MixProject do use Mix.Project - @version_path "../../version.exs" + @version_path "../../scripts/version.exs" def version do Code.eval_file(@version_path) @@ -16,7 +16,7 @@ defmodule FzWall.MixProject do config_path: "../../config/config.exs", deps_path: "../../deps", lockfile: "../../mix.lock", - elixir: "~> 1.11", + elixir: "~> 1.12", start_permanent: Mix.env() == :prod, test_coverage: [tool: ExCoveralls], preferred_cli_env: [ diff --git a/config/config.exs b/config/config.exs index 6bd1acea8..41ffdb9de 100644 --- a/config/config.exs +++ b/config/config.exs @@ -26,14 +26,7 @@ require Logger # Use Jason for JSON parsing in Phoenix config :phoenix, :json_library, Jason -github_sha = - case System.cmd("git", ["rev-parse", "--short", "HEAD"], stderr_to_stdout: true) do - {result, 0} -> - result |> String.trim() - - {_, _} -> - nil - end +{git_sha, _} = Code.eval_file("scripts/git_sha.exs") config :fz_http, supervision_tree_mode: :full, @@ -41,7 +34,7 @@ config :fz_http, connectivity_checks_enabled: true, connectivity_checks_interval: 3_600, connectivity_checks_url: "https://ping-dev.firez.one/", - github_sha: github_sha, + git_sha: git_sha, cookie_signing_salt: "Z9eq8iof", ecto_repos: [FzHttp.Repo], admin_email: "firezone@localhost", diff --git a/mix.exs b/mix.exs index 6232d1a42..15a957f47 100644 --- a/mix.exs +++ b/mix.exs @@ -5,7 +5,7 @@ defmodule FirezoneUmbrella.MixProject do use Mix.Project - @version_path "version.exs" + @version_path "scripts/version.exs" def version do Code.eval_file(@version_path) diff --git a/omnibus/config/software/firezone.rb b/omnibus/config/software/firezone.rb index e7c2da48d..d6054294d 100644 --- a/omnibus/config/software/firezone.rb +++ b/omnibus/config/software/firezone.rb @@ -46,7 +46,8 @@ skip_transitive_dependency_licensing true build do env = with_standard_compiler_flags(with_embedded_path).merge( "MIX_ENV" => "prod", - "VERSION" => Omnibus::BuildVersion.semver + "VERSION" => Omnibus::BuildVersion.semver, + "GIT_SHA" => git_sha_tag ) command "mix local.hex --force", env: env diff --git a/scripts/git_sha.exs b/scripts/git_sha.exs new file mode 100644 index 000000000..d5e35cf3a --- /dev/null +++ b/scripts/git_sha.exs @@ -0,0 +1,2 @@ +{result, 0} = System.cmd(Path.join([__DIR__, "git_sha.sh"]), [], stderr_to_stdout: true) +result |> String.trim() diff --git a/scripts/git_sha.sh b/scripts/git_sha.sh new file mode 100755 index 000000000..62901a33f --- /dev/null +++ b/scripts/git_sha.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +begin + # Development + require "omnibus" +rescue LoadError + # Production + print ENV.fetch("GIT_SHA", "deadbeef") +else + Omnibus::Config.append_timestamp false + print Omnibus::BuildVersion.git_describe.split(".").last +end diff --git a/scripts/version.exs b/scripts/version.exs new file mode 100644 index 000000000..d40d906e7 --- /dev/null +++ b/scripts/version.exs @@ -0,0 +1,2 @@ +{result, 0} = System.cmd(Path.join([__DIR__, "semver.sh"]), [], stderr_to_stdout: true) +result |> String.trim() diff --git a/version.exs b/version.exs deleted file mode 100644 index 30b883ae3..000000000 --- a/version.exs +++ /dev/null @@ -1,7 +0,0 @@ -case System.cmd(Path.join([__DIR__, "scripts", "semver.sh"]), []) do - {result, 0} -> - result |> String.trim() - - {_, _} -> - "0.0.0" -end From 8e5bcb3e5ceecd405da5d0917a8bbb2b02210fd0 Mon Sep 17 00:00:00 2001 From: Jamil Bou Kheir Date: Wed, 15 Dec 2021 17:43:14 -0800 Subject: [PATCH 2/6] Use git sha --- omnibus/config/software/firezone.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/omnibus/config/software/firezone.rb b/omnibus/config/software/firezone.rb index d6054294d..0e9261805 100644 --- a/omnibus/config/software/firezone.rb +++ b/omnibus/config/software/firezone.rb @@ -47,7 +47,7 @@ build do env = with_standard_compiler_flags(with_embedded_path).merge( "MIX_ENV" => "prod", "VERSION" => Omnibus::BuildVersion.semver, - "GIT_SHA" => git_sha_tag + "GIT_SHA" => Omnibus::BuildVersion.git_describe.split(".").last ) command "mix local.hex --force", env: env From c435eafa70a9cb16df43251dc1d317285f4f452c Mon Sep 17 00:00:00 2001 From: Jamil Bou Kheir Date: Wed, 15 Dec 2021 18:01:52 -0800 Subject: [PATCH 3/6] Remove unneeded script --- config/config.exs | 4 ++-- omnibus/config/software/firezone.rb | 2 +- scripts/git_sha.exs | 2 -- scripts/git_sha.sh | 13 ------------- 4 files changed, 3 insertions(+), 18 deletions(-) delete mode 100644 scripts/git_sha.exs delete mode 100755 scripts/git_sha.sh diff --git a/config/config.exs b/config/config.exs index 41ffdb9de..18ab6b63a 100644 --- a/config/config.exs +++ b/config/config.exs @@ -26,7 +26,7 @@ require Logger # Use Jason for JSON parsing in Phoenix config :phoenix, :json_library, Jason -{git_sha, _} = Code.eval_file("scripts/git_sha.exs") +{git_sha, 0} = System.cmd("git", ["rev-parse", "--short", "HEAD"], stderr_to_stdout: true) config :fz_http, supervision_tree_mode: :full, @@ -34,7 +34,7 @@ config :fz_http, connectivity_checks_enabled: true, connectivity_checks_interval: 3_600, connectivity_checks_url: "https://ping-dev.firez.one/", - git_sha: git_sha, + git_sha: String.trim(git_sha), cookie_signing_salt: "Z9eq8iof", ecto_repos: [FzHttp.Repo], admin_email: "firezone@localhost", diff --git a/omnibus/config/software/firezone.rb b/omnibus/config/software/firezone.rb index 0e9261805..396a7d647 100644 --- a/omnibus/config/software/firezone.rb +++ b/omnibus/config/software/firezone.rb @@ -47,7 +47,7 @@ build do env = with_standard_compiler_flags(with_embedded_path).merge( "MIX_ENV" => "prod", "VERSION" => Omnibus::BuildVersion.semver, - "GIT_SHA" => Omnibus::BuildVersion.git_describe.split(".").last + "GIT_SHA" => Omnibus::BuildVersion.new.git_sha_tag ) command "mix local.hex --force", env: env diff --git a/scripts/git_sha.exs b/scripts/git_sha.exs deleted file mode 100644 index d5e35cf3a..000000000 --- a/scripts/git_sha.exs +++ /dev/null @@ -1,2 +0,0 @@ -{result, 0} = System.cmd(Path.join([__DIR__, "git_sha.sh"]), [], stderr_to_stdout: true) -result |> String.trim() diff --git a/scripts/git_sha.sh b/scripts/git_sha.sh deleted file mode 100755 index 62901a33f..000000000 --- a/scripts/git_sha.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -begin - # Development - require "omnibus" -rescue LoadError - # Production - print ENV.fetch("GIT_SHA", "deadbeef") -else - Omnibus::Config.append_timestamp false - print Omnibus::BuildVersion.git_describe.split(".").last -end From 5d9f1c8d8ca4843e1d990fd976365c1b34e75f02 Mon Sep 17 00:00:00 2001 From: Jamil Bou Kheir Date: Wed, 15 Dec 2021 18:05:14 -0800 Subject: [PATCH 4/6] Fix git_sha for prod --- config/config.exs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/config/config.exs b/config/config.exs index 18ab6b63a..36ade9868 100644 --- a/config/config.exs +++ b/config/config.exs @@ -26,7 +26,15 @@ require Logger # Use Jason for JSON parsing in Phoenix config :phoenix, :json_library, Jason -{git_sha, 0} = System.cmd("git", ["rev-parse", "--short", "HEAD"], stderr_to_stdout: true) +git_sha = + case System.get_env("GIT_SHA") do + nil -> + {output, 0} = System.cmd("git", ["rev-parse", "--short", "HEAD"], stderr_to_stdout: true) + String.trim(output) + + str -> + str + end config :fz_http, supervision_tree_mode: :full, @@ -34,7 +42,7 @@ config :fz_http, connectivity_checks_enabled: true, connectivity_checks_interval: 3_600, connectivity_checks_url: "https://ping-dev.firez.one/", - git_sha: String.trim(git_sha), + git_sha: git_sha, cookie_signing_salt: "Z9eq8iof", ecto_repos: [FzHttp.Repo], admin_email: "firezone@localhost", From 961c8fb9c4671e6b5389409bc1848637d5bf334b Mon Sep 17 00:00:00 2001 From: Jamil Bou Kheir Date: Wed, 15 Dec 2021 18:30:00 -0800 Subject: [PATCH 5/6] Populate GIT_SHA from CI config --- .github/workflows/ci.yml | 2 ++ omnibus/config/software/firezone.rb | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8b0285253..186edae17 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -130,6 +130,8 @@ jobs: steps: - uses: actions/checkout@v2 - name: Build + environment: + GIT_SHA: ${{ github.sha }} run: | . $HOME/.asdf/asdf.sh cd omnibus diff --git a/omnibus/config/software/firezone.rb b/omnibus/config/software/firezone.rb index 396a7d647..e7c2da48d 100644 --- a/omnibus/config/software/firezone.rb +++ b/omnibus/config/software/firezone.rb @@ -46,8 +46,7 @@ skip_transitive_dependency_licensing true build do env = with_standard_compiler_flags(with_embedded_path).merge( "MIX_ENV" => "prod", - "VERSION" => Omnibus::BuildVersion.semver, - "GIT_SHA" => Omnibus::BuildVersion.new.git_sha_tag + "VERSION" => Omnibus::BuildVersion.semver ) command "mix local.hex --force", env: env From 1394b1e8016bba493a24fdd8320e791e5dbc48b1 Mon Sep 17 00:00:00 2001 From: Jamil Bou Kheir Date: Wed, 15 Dec 2021 18:37:59 -0800 Subject: [PATCH 6/6] Fix CI key --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 186edae17..8a95f24bf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -130,7 +130,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Build - environment: + env: GIT_SHA: ${{ github.sha }} run: | . $HOME/.asdf/asdf.sh