aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/beam.yml
blob: a155c5d50bcb2074b47724618611db9d3b798a28 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
name: BEAM

on:
  push:
    paths:
      - "**.ex*"
      - "**.erl"
      - "**.beam"
  pull_request:
    paths:
      - "**.ex*"
      - "**.erl"
      - "**.beam"

jobs:
  build-and-test:
    name: 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: 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 }}