Skip to content

PrettyLoggex CD

PrettyLoggex CD #34

Workflow file for this run

name: PrettyLoggex CD
on:
workflow_run:
workflows: ["PrettyLoggex Master 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'
- name: Cache Dependencies
uses: actions/cache@v4
with:
path: |
_build/prod/lib
deps
doc
key: ${{ runner.os }}-mix-prod-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
restore-keys: |
${{ runner.os }}-mix-prod-
- name: Install Dependencies
run: mix deps.get
- name: Compile Dependencies
env:
MIX_ENV: prod
run: mix deps.compile
- name: Compile PrettyLoggex
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'
- name: Cache Dependencies
uses: actions/cache@v4
with:
path: |
_build/prod/lib
deps
doc
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:
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).
tag_release:
runs-on: ubuntu-20.04
needs: update_version
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_ACTIONS_USER }}
steps:
- uses: actions/checkout@v4
- name: Tag Release
run: |
git config user.name Lucasbot
git config user.email [email protected]
if git tag releases/$(cat VERSION); then
git push origin releases/$(cat VERSION) -f
else
echo "Version already exists."
fi
publish_package:
runs-on: ubuntu-20.04
needs: tag_release
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'
- name: Cache Dependencies
uses: actions/cache@v4
with:
path: |
_build/prod/lib
deps
doc
key: ${{ runner.os }}-mix-prod-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
restore-keys: |
${{ runner.os }}-mix-prod-
- name: Publish package to hex.pm
env:
HEX_API_KEY: ${{ secrets.HEX_API_KEY }}
run: mix hex.publish --yes