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 }}