Skip to content

Yamel CD

Yamel CD #36

Workflow file for this run

name: Yamel CD
on:
workflow_run:
workflows: ["Main CI"]
types:
- completed
jobs:
build:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Set up Elixir
uses: erlef/setup-beam@v1
with:
elixir-version: '1.8.2'
otp-version: '22.3.4.26'
version-type: 'strict'
- name: Cache Dependencies
uses: actions/cache@v4
with:
path: |
_build/prod/lib
deps
doc
mix.lock
key: ${{ runner.os }}-mix-prod-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
restore-keys: |
${{ runner.os }}-mix-prod-
- name: Update Version
run: elixir ./scripts/update_version.exs
- name: Install Dependencies
run: mix deps.get
- name: Build Dependencies
env:
MIX_ENV: prod
run: mix deps.compile
- name: Build Yamel
env:
MIX_ENV: prod
run: mix compile
- name: Build Docs
run: mix docs
check_package:
runs-on: ubuntu-20.04
needs: build
steps:
- uses: actions/checkout@v4
- name: Set up Elixir
uses: erlef/setup-beam@v1
with:
elixir-version: '1.8.2'
otp-version: '22.3.4.26'
version-type: 'strict'
- name: Cache Dependencies
uses: actions/cache@v4
with:
path: |
_build/prod/lib
deps
doc
mix.lock
key: ${{ runner.os }}-mix-prod-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
restore-keys: |
${{ runner.os }}-mix-prod-
- env:
HEX_API_KEY: ${{ secrets.HEX_API_KEY }}
run: mix hex.publish --dry-run
update_version:
runs-on: ubuntu-20.04
needs: check_package
permissions:
# Give the default GITHUB_TOKEN write permission to commit and push the
# added or changed files to the repository.
contents: write
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v4
- name: Set up Elixir
uses: erlef/setup-beam@v1
with:
elixir-version: '1.8.2'
otp-version: '22.3.4.26'
version-type: 'strict'
- name: Update README.md and mix.exs
run: elixir ./scripts/update_version.exs
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: Updated README.md and mix.exs to version $(cat version).
publish_package:
runs-on: ubuntu-20.04
needs: update_version
steps:
- uses: actions/checkout@v4
- name: Set up Elixir
uses: erlef/setup-beam@v1
with:
elixir-version: '1.8.2'
otp-version: '22.3.4.26'
version-type: 'strict'
- name: Cache Dependencies
uses: actions/cache@v4
with:
path: |
_build/prod/lib
deps
doc
mix.lock
key: ${{ runner.os }}-mix-prod-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
restore-keys: |
${{ runner.os }}-mix-prod-
- env:
HEX_API_KEY: ${{ secrets.HEX_API_KEY }}
run: mix hex.publish --yes