Skip to content

Release

Release #20

Workflow file for this run

name: Release
on:
workflow_dispatch:
inputs:
operation:
description: "Release operation: auto, prepare, or publish"
required: false
type: choice
default: auto
options:
- auto
- prepare
- publish
tag_name:
description: "Optional v-prefixed tag for publish simulation"
required: false
type: string
default: ""
dry_run:
description: "Dry run (no git push, no tag, no GitHub release, no Hex publish)"
required: false
type: boolean
default: false
hex_dry_run:
description: "With prepare + dry_run, check Hex only; with publish, skip actual Hex publish"
required: false
type: boolean
default: false
version_override:
description: "Optional bare SemVer override (for example 1.2.3, not v1.2.3)"
required: false
type: string
default: ""
permissions:
actions: write
contents: write
jobs:
release:
if: ${{ !(github.event_name == 'workflow_dispatch' && inputs.operation == 'prepare' && inputs.dry_run == true && inputs.hex_dry_run == true) }}
name: Release
uses: agentjido/github-actions/.github/workflows/jido-release.yml@v5
with:
operation: ${{ inputs.operation || 'auto' }}
tag_name: ${{ inputs.tag_name || '' }}
release_branch: release/v3
otp_version: "29"
elixir_version: "1.20"
preflight_command: >-
MIX_ENV=test mix quality &&
MIX_ENV=test mix test.all --cover &&
mix docs --no-open -f html --warnings-as-errors &&
mix hex.audit
dry_run: ${{ inputs.dry_run || false }}
hex_dry_run: ${{ inputs.hex_dry_run || false }}
version_override: ${{ inputs.version_override || '' }}
secrets:
HEX_API_KEY: ${{ secrets.HEX_API_KEY }}
hex_dry_run:
if: ${{ github.event_name == 'workflow_dispatch' && inputs.operation == 'prepare' && inputs.dry_run == true && inputs.hex_dry_run == true }}
name: Hex dry run
runs-on: ubuntu-24.04
permissions:
contents: read
steps:
- name: Checkout candidate
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up BEAM
uses: erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124 # v1
with:
otp-version: "29.0.5"
elixir-version: "1.20.3"
- name: Install Hex and Rebar
run: |
mix local.hex --if-missing --force
mix local.rebar --if-missing --force
- name: Get dependencies
run: mix deps.get
- name: Build package and docs without publishing
env:
HEX_API_KEY: ${{ secrets.HEX_API_KEY }}
run: mix hex.publish --dry-run --yes
- name: Summarize dry run
if: always()
run: |
echo "## Jido Hex dry run" >> "$GITHUB_STEP_SUMMARY"
echo "- Commit: $GITHUB_SHA" >> "$GITHUB_STEP_SUMMARY"
echo "- No tag, Git push, GitHub release, or Hex upload is performed by this job." >> "$GITHUB_STEP_SUMMARY"