Skip to content

feat: add :doc option to field macro #121

feat: add :doc option to field macro

feat: add :doc option to field macro #121

Workflow file for this run

# SPDX-FileCopyrightText: 2022, 2024-2025 Jean-Philippe Cugnet <jean-philippe@cugnet.eu>
# SPDX-License-Identifier: CC0-1.0
name: CI
on:
push:
branches:
- main
- develop
- release/*
- feature/*
- bugfix/*
- hotfix/*
- docs/*
pull_request:
branches:
- main
- develop
types:
- opened
- edited
- reopened
- synchronize
- ready_for_review
env:
CLICOLOR_FORCE: 1
IS_PULL_REQUEST: ${{ github.event_name == 'pull_request' }}
jobs:
commits:
name: Conventional Commits
runs-on: ubuntu-latest
steps:
- name: Clone the repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
- name: Setup the Nix cache
uses: DeterminateSystems/magic-nix-cache-action@main
- name: Setup the environment
run: nix build -L --no-link .#devShells.x86_64-linux.ci-committed
- name: Run the commit linter
run: nix develop .#ci-committed -c elixir scripts/check_commits.exs
reuse:
name: REUSE Compliance
runs-on: ubuntu-latest
steps:
- name: Clone the repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
- name: Setup the Nix cache
uses: DeterminateSystems/magic-nix-cache-action@main
- name: Setup the environment
run: nix build -L --no-link .#devShells.x86_64-linux.ci-reuse
- name: Run the REUSE compliance linter
run: nix develop .#ci-reuse -c reuse lint
format:
name: Code formatting and typos
runs-on: ubuntu-latest
env:
CI_JOB: format
MIX_ENV: format
steps:
- name: Clone the repository
uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
- name: Setup the Nix cache
uses: DeterminateSystems/magic-nix-cache-action@main
- name: Setup the environment
run: nix build -L --no-link .#devShells.x86_64-linux.ci-formatters
- name: Install Hex
run: nix develop .#ci-formatters -c mix local.hex --force
- name: Fetch the dependencies
run: nix develop .#ci-formatters -c mix deps.get
- name: Build the dependencies
run: nix develop .#ci-formatters -c mix deps.compile
- name: Check the code is formatted and free of typos
run: nix develop .#ci-formatters -c mix check
checks:
name: Code checks (Elixir ${{matrix.elixir}} on OTP ${{matrix.otp}})
runs-on: ubuntu-latest
env:
CI_JOB: checks
strategy:
fail-fast: false
matrix:
include:
# Update rule:
# - latest Elixir on all supported OTP versions,
# - previous Elixir on the last two supported OTP versions,
# - oldest Elixir on the first and last supported OTP versions,
# - other Elixir version on the first supported OTP version.
- elixir: "1.19"
otp: "28.1"
- elixir: "1.19"
otp: "27.3"
- elixir: "1.19"
otp: "26.2"
- elixir: "1.18"
otp: "27.3"
- elixir: "1.18"
otp: "26.2"
- elixir: "1.17"
otp: "25.3"
- elixir: "1.16"
otp: "24.3"
- elixir: "1.15"
otp: "26.2"
- elixir: "1.15"
otp: "24.3"
steps:
- name: Clone the repository
uses: actions/checkout@v4
- name: Install Elixir/OTP
uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- name: Fetch the dependencies
run: mix deps.get
- name: Build the dependencies
run: mix deps.compile
- name: Run the checks
run: mix check
coverage:
name: Coverage
runs-on: ubuntu-latest
permissions:
id-token: write
env:
MIX_ENV: test
steps:
- name: Clone the repository
uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
- name: Setup the Nix cache
uses: DeterminateSystems/magic-nix-cache-action@main
- name: Setup the environment
run: nix build -L --no-link .#devShells.x86_64-linux.ci-minimal
- name: Fetch the dependencies
run: nix develop .#ci-minimal -c mix deps.get
- name: Build the dependencies
run: nix develop .#ci-minimal -c mix deps.compile
- name: Generate the test coverage report
run: nix develop .#ci-minimal -c mix coveralls.lcov
- name: Upload the test coverage report
uses: codecov/codecov-action@v5
with:
disable_search: true
files: ./cover/lcov.info
fail_ci_if_error: true
use_oidc: true
docs:
name: Documentation
runs-on: ubuntu-latest
env:
MIX_ENV: docs
steps:
- name: Clone the repository
uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
- name: Setup the Nix cache
uses: DeterminateSystems/magic-nix-cache-action@main
- name: Setup the environment
run: nix build -L --no-link .#devShells.x86_64-linux.ci-minimal
- name: Install Hex
run: nix develop .#ci-minimal -c mix local.hex --force
- name: Fetch the dependencies
run: nix develop .#ci-minimal -c mix deps.get
- name: Build the dependencies
run: nix develop .#ci-minimal -c mix deps.compile
- name: Check the documentation
run: nix develop .#ci-minimal -c mix docs