Skip to content

Merge pull request #10 from keep-starknet-strange/lucas/backend #82

Merge pull request #10 from keep-starknet-strange/lucas/backend

Merge pull request #10 from keep-starknet-strange/lucas/backend #82

Workflow file for this run

name: Elixir CI
on: [push, pull_request]
env:
MIX_ENV: test
ELIXIR_VERSION_SPEC: "1.15.7"
OTP_VERSION_SPEC: "26.0.2"
jobs:
compile:
name: Compile
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./backend
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Elixir
uses: erlef/[email protected]
with:
elixir-version: ${{ env.ELIXIR_VERSION_SPEC }}
otp-version: ${{ env.OTP_VERSION_SPEC }}
- name: Install dependencies
run: mix deps.get
- name: Compile dependencies
run: mix deps.compile
- name: Compile
run: mix compile --warnings-as-errors
test:
name: Test
runs-on: ubuntu-22.04
defaults:
run:
working-directory: ./backend
services:
invoices_control_db_test:
image: postgres:latest
ports: ['5432:5432']
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_HOST_AUTH_METHOD: 'trust'
POSTGRES_DB: invoices_control_test
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Elixir
uses: erlef/[email protected]
with:
elixir-version: ${{ env.ELIXIR_VERSION_SPEC }}
otp-version: ${{ env.OTP_VERSION_SPEC }}
- name: Install dependencies
run: mix deps.get
- name: Compile dependencies
run: mix deps.compile
- name: Setup database
env:
MIX_ENV: test
PGHOST: localhost
POSTGRES_PORT: 5432
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
run:
mix ecto.drop
mix ecto.create
mix ecto.migrate
- name: Create .env file
run: |
echo "PRIVATE_KEY=${{ secrets.PRIVATE_KEY }}" >> .env
echo "ADDRESS=${{ secrets.ADDRESS }}" >> .env
echo "PROVIDER_URL=${{ secrets.PROVIDER_URL }}" >> .env
echo "CONTRACT_ADDRESS=${{ secrets.CONTRACT_ADDRESS }}" >> .env
echo "CHAIN_ID=${{ secrets.CHAIN_ID }}" >> .env
- name: Run tests
env:
MIX_ENV: test
PGHOST: localhost
POSTGRES_PORT: 5432
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
run: mix coveralls.json
- uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
files: coverage/excoveralls.json
token: ${{ secrets.CODECOV_TOKEN }}
check-formatted:
name: Check Formatted
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./backend
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Elixir
uses: erlef/[email protected]
with:
elixir-version: ${{ env.ELIXIR_VERSION_SPEC }}
otp-version: ${{ env.OTP_VERSION_SPEC }}
- name: Install dependencies
run: mix deps.get
- name: Compile dependencies
run: mix deps.compile
- name: Check formatted
run: mix format --check-formatted
credo:
name: Credo
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./backend
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Elixir
uses: erlef/[email protected]
with:
elixir-version: ${{ env.ELIXIR_VERSION_SPEC }}
otp-version: ${{ env.OTP_VERSION_SPEC }}
- name: Install dependencies
run: mix deps.get
- name: Compile dependencies
run: mix deps.compile
- name: Run credo
run: mix credo --strict