misc #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Main branch | |
on: | |
push: | |
branches: | |
- "main" | |
paths-ignore: | |
- '.envrc' | |
- '.gitignore' | |
- README.* | |
- LICENSE | |
pull_request: | |
paths-ignore: | |
- '.envrc' | |
- '.gitignore' | |
- README.* | |
- LICENSE | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
permissions: | |
contents: read | |
# Stop previous jobs if they are still running. | |
# https://docs.github.com/en/actions/learn-github-actions/expressions | |
# https://docs.github.com/en/actions/learn-github-actions/contexts#github-context | |
concurrency: | |
# Use github.run_id on main branch | |
# Use github.event.pull_request.number on pull requests, so it's unique per pull request | |
# Use github.ref on other branches, so it's unique per branch | |
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && github.run_id || github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
lint: | |
name: lint | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# the following can be uncommented if viable resource-wise | |
# - pair: # Test very old Elixir and Erlang | |
# elixir: "1.14" | |
# otp: "25" | |
# - pair: # Test Erlang without -doc attribute support | |
# elixir: "1.16" | |
# otp: "26" | |
- pair: # Test Erlang with -doc attribute support | |
elixir: "1.17.3" | |
otp: "27" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Elixir | |
uses: erlef/setup-beam@v1 | |
with: | |
elixir-version: ${{ matrix.pair.elixir }} | |
otp-version: ${{ matrix.pair.otp }} | |
- name: Add Prebuilt-MPR Repository | |
run: | | |
wget -qO - 'https://proget.makedeb.org/debian-feeds/prebuilt-mpr.pub' | gpg --dearmor | sudo tee /usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg 1> /dev/null | |
echo "deb [arch=all,$(dpkg --print-architecture) signed-by=/usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg] https://proget.makedeb.org prebuilt-mpr $(lsb_release -cs)" | sudo tee /etc/apt/sources.list.d/prebuilt-mpr.list | |
sudo apt update | |
shell: bash | |
- name: Install just | |
run: sudo apt install just | |
shell: bash | |
- name: Setup deps | |
run: just deps-get deps-compile | |
- name: Dialyzer | |
run: just dialyzer --format github | |
- name: Lint | |
run: just lint | |
test: | |
name: Build and test | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# the following can be uncommented if viable resource-wise | |
# - pair: # Test very old Elixir and Erlang | |
# elixir: "1.14" | |
# otp: "25" | |
# - pair: # Test Erlang without -doc attribute support | |
# elixir: "1.16" | |
# otp: "26" | |
- pair: # Test Erlang with -doc attribute support | |
elixir: "1.17.3" | |
otp: "27" | |
steps: | |
- name: Run tests | |
uses: bonfire-networks/bonfire-extension-ci-action@latest | |
with: | |
elixir-version: ${{ matrix.pair.elixir }} | |
otp-version: ${{ matrix.pair.otp }} |