aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/beam.yml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.github/workflows/beam.yml56
1 files changed, 56 insertions, 0 deletions
diff --git a/.github/workflows/beam.yml b/.github/workflows/beam.yml
new file mode 100644
index 0000000..c8785d7
--- /dev/null
+++ b/.github/workflows/beam.yml
@@ -0,0 +1,56 @@
+name: BEAM
+
+on:
+ push:
+ paths:
+ - "**.ex*"
+ - "**.erl"
+ - "**.beam"
+ pull_request:
+ paths:
+ - "**.ex*"
+ - "**.erl"
+ - "**.beam"
+
+jobs:
+ lint-build-and-test:
+ name: Lint, Build and Test
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Setup the BEAM
+ uses: erlef/setup-beam@v1
+ with:
+ otp-version: latest
+ elixir-version: latest
+ gleam-version: latest
+ - name: Install dependencies
+ run: mix deps.get
+ - name: Lint
+ run: mix format --check-formatted
+ - name: Test
+ run: mix test
+ publish:
+ name: Publish to hex.pm
+ needs: lint-build-and-test
+ # Only run on this on proper semver (vX.Y.Z) tags
+ if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: Setup the BEAM
+ uses: erlef/setup-beam@v1
+ with:
+ otp-version: latest
+ elixir-version: latest
+ gleam-version: latest
+ - name: Publish
+ run: mix hex.publish --yes
+ env:
+ HEX_API_KEY: ${{ secrets.HEX_TOKEN }} \ No newline at end of file