From 98eaee4557939f08add1f362f11ee41039a955ee Mon Sep 17 00:00:00 2001 From: doorgan Date: Tue, 29 Jul 2025 18:08:06 -0300 Subject: [PATCH 1/5] chore: update release workflow --- .github/workflows/release.yml | 100 ++++++++++++++++++++-------------- .release-please-manifest.json | 3 + release-please-config.json | 11 ++++ 3 files changed, 72 insertions(+), 42 deletions(-) create mode 100644 .release-please-manifest.json create mode 100644 release-please-config.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e1b62a1d..692cad5b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,55 +1,71 @@ name: Release Expert - on: push: - tags: - - v* + branches: + - main + +permissions: + contents: write + issues: write + pull-requests: write + jobs: release: + name: release + runs-on: ubuntu-latest + outputs: + release_created: ${{ steps.release.outputs.release_created }} + tag_name: ${{ steps.release.outputs.tag_name }} + steps: + - uses: googleapis/release-please-action@v4 + id: release + + draft: + name: draft + needs: release + env: + GH_TOKEN: ${{ github.token }} runs-on: ubuntu-latest - name: Build and release Expert - permissions: - contents: write + if: ${{ needs.release.outputs.release_created }} + steps: + - run: gh release edit ${{ needs.release.outputs.tag_name }} --draft=true --repo='elixir-lang/expert' + + build: + needs: [release, draft] + runs-on: macos-14 + if: ${{ needs.release.outputs.release_created }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NEXTLS_RELEASE_MODE: "burrito" steps: - - name: Set up Elixir - uses: erlef/setup-beam@v1 + - uses: erlef/setup-beam@v1 with: - otp-version: "25.0" + otp-version: "27.0" elixir-version: "1.15.8-otp-25" version-type: strict - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Cache deps - id: cache-deps - uses: actions/cache@v4 - env: - cache-name: cache-elixir-deps + - uses: mlugg/setup-zig@v2 with: - path: deps - key: ${{ runner.os }}-mix-${{ env.cache-name }}-${{ hashFiles('**/mix.lock') }} - restore-keys: | - ${{ runner.os }}-mix-${{ env.cache-name }}- - - - name: Install dependencies - run: mix deps.get - - - name: Compile - run: mix compile - - - name: Build release - run: mix package --zip - - - name: Archive release + version: "0.14.0" + - uses: actions/checkout@v4 + - run: make release + env: + MIX_ENV: prod + - name: Create Checksum run: | - cp expert.zip expert-${{ github.ref_name }}.zip + cd ./apps/expert/burrito_out + chmod +x ./* + shasum -a 256 ./* > expert_checksums.txt + cd ../../../ + - name: Upload to release + env: + GITHUB_TOKEN: ${{ secrets.token }} + run: gh release upload ${{ needs.release.outputs.tag_name }} ./apps/expert/burrito_out/* - - name: Publish release - uses: ncipollo/release-action@v1 - with: - artifacts: expert*.zip - makeLatest: true - generateReleaseNotes: false - allowUpdates: true - artifactErrorsFailBuild: true + publish: + name: publish + needs: [release, draft, build] + runs-on: ubuntu-latest + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - run: gh release edit ${{ needs.release.outputs.tag_name }} --draft=false --repo='elixir-lang/expert' diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 00000000..466df71c --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "0.1.0" +} diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 00000000..d95dbac9 --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "packages": { + ".": { + "package-name": "expert", + "release-type": "elixir", + "bump-minor-pre-major": true, + "include-component-in-tag": false + } + } +} From fdcac18fd992360246d6c4f1c1db905d4dc54119 Mon Sep 17 00:00:00 2001 From: doorgan Date: Tue, 29 Jul 2025 18:14:32 -0300 Subject: [PATCH 2/5] chore: sync apps versions --- VERSION | 1 + apps/engine/mix.exs | 6 +++++- apps/expert/mix.exs | 6 +++++- apps/expert_credo/mix.exs | 2 +- apps/forge/mix.exs | 6 +++++- 5 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 VERSION diff --git a/VERSION b/VERSION new file mode 100644 index 00000000..6e8bf73a --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.1.0 diff --git a/apps/engine/mix.exs b/apps/engine/mix.exs index 11ada865..7535077d 100644 --- a/apps/engine/mix.exs +++ b/apps/engine/mix.exs @@ -5,7 +5,7 @@ defmodule Engine.MixProject do def project do [ app: :engine, - version: "0.7.2", + version: version(), elixir: "~> 1.15", start_permanent: Mix.env() == :prod, deps: deps(), @@ -16,6 +16,10 @@ defmodule Engine.MixProject do ] end + def version() do + "../../VERSION" |> File.read!() |> String.trim() + end + def application do [ extra_applications: [:logger, :sasl, :eex, :path_glob], diff --git a/apps/expert/mix.exs b/apps/expert/mix.exs index 63a28cfe..1e917b5c 100644 --- a/apps/expert/mix.exs +++ b/apps/expert/mix.exs @@ -5,7 +5,7 @@ defmodule Expert.MixProject do def project do [ app: :expert, - version: "0.7.2", + version: version(), elixir: "~> 1.15", start_permanent: Mix.env() == :prod, deps: deps(), @@ -17,6 +17,10 @@ defmodule Expert.MixProject do ] end + def version() do + "../../VERSION" |> File.read!() |> String.trim() + end + def application do [ extra_applications: [:logger, :runtime_tools, :kernel, :erts, :observer], diff --git a/apps/expert_credo/mix.exs b/apps/expert_credo/mix.exs index 8df35506..ff083867 100644 --- a/apps/expert_credo/mix.exs +++ b/apps/expert_credo/mix.exs @@ -2,7 +2,7 @@ defmodule ExpertCredo.MixProject do use Mix.Project Code.require_file("../../mix_dialyzer.exs") @repo_url "https://github.com/elixir-lang/expert/" - @version "0.5.0" + @version "0.1.0" def project do [ diff --git a/apps/forge/mix.exs b/apps/forge/mix.exs index 21adad1d..4f376099 100644 --- a/apps/forge/mix.exs +++ b/apps/forge/mix.exs @@ -5,7 +5,7 @@ defmodule Forge.MixProject do def project do [ app: :forge, - version: "0.7.2", + version: version(), elixir: "~> 1.15", elixirc_paths: elixirc_paths(Mix.env()), start_permanent: Mix.env() == :prod, @@ -15,6 +15,10 @@ defmodule Forge.MixProject do ] end + def version() do + "../../VERSION" |> File.read!() |> String.trim() + end + def application do [ extra_applications: [:logger, :sasl, :eex] From 9ac95522d46573f572ddbc1ee5a23171e03c2b90 Mon Sep 17 00:00:00 2001 From: doorgan Date: Tue, 29 Jul 2025 18:27:01 -0300 Subject: [PATCH 3/5] chore: use just --- .github/workflows/release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 692cad5b..3aa0b952 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -38,6 +38,7 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} NEXTLS_RELEASE_MODE: "burrito" steps: + - uses: extractions/setup-just@v3 - uses: erlef/setup-beam@v1 with: otp-version: "27.0" @@ -47,7 +48,7 @@ jobs: with: version: "0.14.0" - uses: actions/checkout@v4 - - run: make release + - run: just release-all env: MIX_ENV: prod - name: Create Checksum From 15aeba2cb44a6a6ace13d6699353146a46292826 Mon Sep 17 00:00:00 2001 From: doorgan Date: Wed, 30 Jul 2025 13:26:13 -0300 Subject: [PATCH 4/5] fix: remove unused and incorrect env var --- .github/workflows/release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3aa0b952..a4656f72 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,7 +36,6 @@ jobs: if: ${{ needs.release.outputs.release_created }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NEXTLS_RELEASE_MODE: "burrito" steps: - uses: extractions/setup-just@v3 - uses: erlef/setup-beam@v1 From 0b5af28c8a0eb612a67cc1999f5faa4847e6f13f Mon Sep 17 00:00:00 2001 From: doorgan Date: Wed, 30 Jul 2025 23:39:03 -0300 Subject: [PATCH 5/5] chore: use simple release type --- apps/engine/mix.exs | 2 +- apps/expert/mix.exs | 2 +- apps/forge/mix.exs | 2 +- release-please-config.json | 2 +- VERSION => version.txt | 0 5 files changed, 4 insertions(+), 4 deletions(-) rename VERSION => version.txt (100%) diff --git a/apps/engine/mix.exs b/apps/engine/mix.exs index 7535077d..7cf0b9d9 100644 --- a/apps/engine/mix.exs +++ b/apps/engine/mix.exs @@ -17,7 +17,7 @@ defmodule Engine.MixProject do end def version() do - "../../VERSION" |> File.read!() |> String.trim() + "../../version.txt" |> File.read!() |> String.trim() end def application do diff --git a/apps/expert/mix.exs b/apps/expert/mix.exs index 1e917b5c..f0aaf49d 100644 --- a/apps/expert/mix.exs +++ b/apps/expert/mix.exs @@ -18,7 +18,7 @@ defmodule Expert.MixProject do end def version() do - "../../VERSION" |> File.read!() |> String.trim() + "../../version.txt" |> File.read!() |> String.trim() end def application do diff --git a/apps/forge/mix.exs b/apps/forge/mix.exs index 4f376099..d6dc3c8f 100644 --- a/apps/forge/mix.exs +++ b/apps/forge/mix.exs @@ -16,7 +16,7 @@ defmodule Forge.MixProject do end def version() do - "../../VERSION" |> File.read!() |> String.trim() + "../../version.txt" |> File.read!() |> String.trim() end def application do diff --git a/release-please-config.json b/release-please-config.json index d95dbac9..f0ed7c5c 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -3,7 +3,7 @@ "packages": { ".": { "package-name": "expert", - "release-type": "elixir", + "release-type": "simple", "bump-minor-pre-major": true, "include-component-in-tag": false } diff --git a/VERSION b/version.txt similarity index 100% rename from VERSION rename to version.txt