From 48b8a84f8d8f210a0223473a83511699b5b9afd6 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Tue, 15 Apr 2025 10:32:49 +0100 Subject: [PATCH] Attempt at install Fluxon UI on CI --- .github/workflows/test_and_deploy.yml | 19 ++++++++++++++++--- Dockerfile | 7 +++++++ mix.exs | 1 + mix.lock | 1 + 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test_and_deploy.yml b/.github/workflows/test_and_deploy.yml index 46e1eb67..ce713f6c 100644 --- a/.github/workflows/test_and_deploy.yml +++ b/.github/workflows/test_and_deploy.yml @@ -50,6 +50,14 @@ jobs: mix deps.clean --all mix clean shell: sh + - name: Add Fluxon UI repo + run: | + mix hex.repo add fluxon https://repo.fluxonui.com \ + --fetch-public-key $FLUXON_KEY_FINGERPRINT \ + --auth-key $FLUXON_LICENSE_KEY + env: + FLUXON_LICENSE_KEY: ${{ secrets.FLUXON_LICENSE_KEY }} + FLUXON_KEY_FINGERPRINT: ${{ secrets.FLUXON_KEY_FINGERPRINT }} - run: mix deps.get - run: mix deps.unlock --check-unused - run: mix gettext.extract --check-up-to-date @@ -63,13 +71,18 @@ jobs: runs-on: ubuntu-24.04 environment: production if: github.ref == 'refs/heads/main' - concurrency: deploy-group # optional: ensure only one action runs at a time + concurrency: deploy-group # optional: ensure only one action runs at a time steps: - uses: actions/checkout@v4 - uses: superfly/flyctl-actions/setup-flyctl@master - - run: flyctl deploy --remote-only + - run: | + flyctl deploy --remote-only \ + --build-secret FLUXON_LICENSE_KEY=$FLUXON_LICENSE_KEY \ + --build-secret FLUXON_KEY_FINGERPRINT=$FLUXON_KEY_FINGERPRINT env: FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} + FLUXON_LICENSE_KEY: ${{ secrets.FLUXON_LICENSE_KEY }} + FLUXON_KEY_FINGERPRINT: ${{ secrets.FLUXON_KEY_FINGERPRINT }} verify: name: Verify @@ -77,7 +90,7 @@ jobs: runs-on: ubuntu-24.04 environment: production if: github.ref == 'refs/heads/main' - concurrency: deploy-group # optional: ensure only one action runs at a time + concurrency: deploy-group # optional: ensure only one action runs at a time steps: - uses: actions/checkout@v4 - uses: gacts/install-hurl@v1 diff --git a/Dockerfile b/Dockerfile index 9871c0f3..a3b35831 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,6 +37,13 @@ WORKDIR /app RUN mix local.hex --force && \ mix local.rebar --force +# install Fluxon UI repo +RUN --mount=type=secret,id=FLUXON_LICENSE_KEY \ + --mount=type=secret,id=FLUXON_KEY_FINGERPRINT \ + mix hex.repo add fluxon https://repo.fluxonui.com \ + --fetch-public-key "$(cat /run/secrets/FLUXON_KEY_FINGERPRINT)" \ + --auth-key "$(cat /run/secrets/FLUXON_LICENSE_KEY)" + # set build ENV ENV MIX_ENV="prod" ENV ERL_FLAGS="+JPperf true" diff --git a/mix.exs b/mix.exs index feb4570b..4a20a6a4 100644 --- a/mix.exs +++ b/mix.exs @@ -62,6 +62,7 @@ defmodule MusicLibrary.MixProject do app: false, compile: false, depth: 1}, + {:fluxon, "~> 1.1.0", repo: :fluxon}, # Dev tooling {:phoenix_live_reload, "~> 1.2", only: :dev}, diff --git a/mix.lock b/mix.lock index 738275f2..09e38bf3 100644 --- a/mix.lock +++ b/mix.lock @@ -21,6 +21,7 @@ "file_system": {:hex, :file_system, "1.1.0", "08d232062284546c6c34426997dd7ef6ec9f8bbd090eb91780283c9016840e8f", [:mix], [], "hexpm", "bfcf81244f416871f2a2e15c1b515287faa5db9c6bcf290222206d120b3d43f6"}, "finch": {:hex, :finch, "0.19.0", "c644641491ea854fc5c1bbaef36bfc764e3f08e7185e1f084e35e0672241b76d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.6.2 or ~> 1.7", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 1.1", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "fc5324ce209125d1e2fa0fcd2634601c52a787aff1cd33ee833664a5af4ea2b6"}, "floki": {:hex, :floki, "0.37.1", "d7aaee758c8a5b4a7495799a4260754fec5530d95b9c383c03b27359dea117cf", [:mix], [], "hexpm", "673d040cb594d31318d514590246b6dd587ed341d3b67e17c1c0eb8ce7ca6f04"}, + "fluxon": {:hex, :fluxon, "1.1.0", "62fa386415bfd382cf26271b496e6b37b2ff43b20542d49f6ce0da8d3f711069", [:mix], [{:phoenix_live_view, ">= 1.0.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}], "fluxon", "806e47e2254e76907f1abcc16e823f0232add1c21adf92b461a8d196272ef1ee"}, "gettext": {:hex, :gettext, "0.26.2", "5978aa7b21fada6deabf1f6341ddba50bc69c999e812211903b169799208f2a8", [:mix], [{:expo, "~> 0.5.1 or ~> 1.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "aa978504bcf76511efdc22d580ba08e2279caab1066b76bb9aa81c4a1e0a32a5"}, "heroicons": {:git, "https://github.com/tailwindlabs/heroicons.git", "0435d4ca364a608cc75e2f8683d374e55abbae26", [tag: "v2.2.0", sparse: "optimized", depth: 1]}, "hpax": {:hex, :hpax, "1.0.3", "ed67ef51ad4df91e75cc6a1494f851850c0bd98ebc0be6e81b026e765ee535aa", [:mix], [], "hexpm", "8eab6e1cfa8d5918c2ce4ba43588e894af35dbd8e91e6e55c817bca5847df34a"},