Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 58 additions & 42 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -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 }}
steps:
- name: Set up Elixir
uses: erlef/setup-beam@v1
- uses: extractions/setup-just@v3
- 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: just release-all
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'
3 changes: 3 additions & 0 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
".": "0.1.0"
}
6 changes: 5 additions & 1 deletion apps/engine/mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -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(),
Expand All @@ -16,6 +16,10 @@ defmodule Engine.MixProject do
]
end

def version() do
"../../version.txt" |> File.read!() |> String.trim()
end

def application do
[
extra_applications: [:logger, :sasl, :eex, :path_glob],
Expand Down
6 changes: 5 additions & 1 deletion apps/expert/mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -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(),
Expand All @@ -17,6 +17,10 @@ defmodule Expert.MixProject do
]
end

def version() do
"../../version.txt" |> File.read!() |> String.trim()
end

def application do
[
extra_applications: [:logger, :runtime_tools, :kernel, :erts, :observer],
Expand Down
2 changes: 1 addition & 1 deletion apps/expert_credo/mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -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
[
Expand Down
6 changes: 5 additions & 1 deletion apps/forge/mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -15,6 +15,10 @@ defmodule Forge.MixProject do
]
end

def version() do
"../../version.txt" |> File.read!() |> String.trim()
end

def application do
[
extra_applications: [:logger, :sasl, :eex]
Expand Down
11 changes: 11 additions & 0 deletions release-please-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
"packages": {
".": {
"package-name": "expert",
"release-type": "simple",
"bump-minor-pre-major": true,
"include-component-in-tag": false
}
}
}
1 change: 1 addition & 0 deletions version.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.1.0
Loading