Introduce browse code actions #3018
Workflow file for this run
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: Build | |
on: | |
push: | |
branches: | |
- '*' | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
jobs: | |
linux: | |
strategy: | |
matrix: | |
platform: [ubuntu-latest] | |
otp-version: [24, 25, 26, 27] | |
runs-on: ${{ matrix.platform }} | |
container: | |
image: erlang:${{ matrix.otp-version }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Cache Hex packages | |
uses: actions/cache@v1 | |
with: | |
path: ~/.cache/rebar3/hex/hexpm/packages | |
key: ${{ runner.os }}-hex-${{ hashFiles(format('{0}{1}', github.workspace, '/rebar.lock')) }} | |
restore-keys: | | |
${{ runner.os }}-hex- | |
- name: Cache Dialyzer PLTs | |
uses: actions/cache@v1 | |
with: | |
path: ~/.cache/rebar3/rebar3_*_plt | |
key: ${{ runner.os }}-dialyzer-${{ hashFiles(format('{0}{1}', github.workspace, '/rebar.config')) }} | |
restore-keys: | | |
${{ runner.os }}-dialyzer- | |
- name: Compile | |
run: rebar3 compile | |
- name: Escriptize LSP Server | |
run: rebar3 escriptize | |
# - name: Store LSP Server Escript | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: erlang_ls | |
# path: _build/default/bin/erlang_ls | |
# overwrite: true | |
- name: Check formatting | |
run: rebar3 fmt -c | |
- name: Lint | |
run: rebar3 lint | |
- name: Generate Dialyzer PLT for usage in CT Tests | |
run: dialyzer --build_plt --apps erts kernel stdlib compiler crypto parsetools | |
- name: Start epmd as daemon | |
run: epmd -daemon | |
- name: Run CT Tests | |
run: rebar3 ct | |
# - name: Store CT Logs | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: ct-logs | |
# path: _build/test/logs | |
# overwrite: true | |
- name: Run PropEr Tests | |
run: rebar3 proper --cover --constraint_tries 100 | |
- name: Run Checks | |
run: rebar3 do dialyzer, xref | |
- name: Create Cover Reports | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: rebar3 do cover, coveralls send | |
if: matrix.otp-version == '27' | |
# - name: Produce Documentation | |
# run: rebar3 edoc | |
# if: ${{ matrix.otp-version == '24' }} | |
# - name: Publish Documentation | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: edoc | |
# path: | | |
# apps/els_core/doc | |
# apps/els_lsp/doc | |
# overwrite: true | |
windows: | |
strategy: | |
matrix: | |
platform: [windows-latest] | |
otp-version: [26.2.5.3] | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install Erlang | |
run: choco install -y erlang --version ${{ matrix.otp-version }} | |
- name: Install rebar3 | |
run: choco install -y rebar3 --version 3.23.0 | |
- name: Compile | |
run: rebar3 compile | |
- name: Lint | |
run: rebar3 lint | |
- name: Generate Dialyzer PLT for usage in CT Tests | |
run: dialyzer --build_plt --apps erts kernel stdlib crypto compiler parsetools | |
- name: Start epmd as daemon | |
run: erl -sname a -noinput -eval "halt(0)." | |
- name: Run CT Tests | |
run: rebar3 ct | |
# - name: Store CT Logs | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: ct-logs | |
# path: _build/test/logs | |
# overwrite: true | |
- name: Run PropEr Tests | |
run: rebar3 proper --cover --constraint_tries 100 | |
- name: Run Checks | |
run: rebar3 do dialyzer, xref | |
- name: Produce Documentation | |
run: rebar3 edoc | |
macos: | |
# Smaller job for MacOS to avoid excessive billing | |
strategy: | |
matrix: | |
platform: [macos-latest] | |
otp-version: [27] | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Erlang | |
run: brew install erlang@${{ matrix.otp-version }} | |
- name: Install Rebar3 | |
run: brew install rebar3 | |
- name: Compile | |
run: rebar3 compile | |
- name: Generate Dialyzer PLT for usage in CT Tests | |
run: dialyzer --build_plt --apps erts kernel stdlib compiler crypto parsetools | |
- name: Start epmd as daemon | |
run: epmd -daemon | |
- name: Run CT Tests | |
run: rebar3 ct |