Skip to content

Release 0.6.1 (#113) #234

Release 0.6.1 (#113)

Release 0.6.1 (#113) #234

Workflow file for this run

name: Elixir CI
on:
push:
branches: ["main"]
paths-ignore:
- "**/README.md"
pull_request:
paths-ignore:
- "**/README.md"
permissions:
contents: read
jobs:
test:
name: mix test
runs-on: ubuntu-latest
env:
MIX_ENV: test
services:
postgres:
image: "postgres:17-alpine"
env:
POSTGRES_PASSWORD: password
POSTGRES_DB: phoenix_sync
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 55555:5432
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 10
- uses: actions/setup-node@v4
- name: "Set PG settings"
run: |
docker exec ${{ job.services.postgres.id }} sh -c 'echo "wal_level=logical" >> /var/lib/postgresql/data/postgresql.conf'
docker restart ${{ job.services.postgres.id }}
- uses: erlef/setup-beam@v1
with:
version-type: strict
version-file: ".tool-versions"
- name: Cache dependencies
uses: actions/cache@v4
with:
path: deps
key: ${{ runner.os }}-deps-${{ hashFiles('mix.lock') }}
restore-keys: |
${{ runner.os }}-deps-${{ hashFiles('mix.lock') }}
${{ runner.os }}-deps-
- name: Cache build
uses: actions/cache@v4
with:
path: |
_build/*/lib
!_build/*/lib/phoenix_sync
key: ${{ runner.os }}-build-${{ env.MIX_ENV }}-[${{ github.ref_name }}]-${{ github.sha }}
restore-keys: |
${{ runner.os }}-build-${{ env.MIX_ENV }}-[${{ github.ref_name }}]-${{ github.sha }}
${{ runner.os }}-build-${{ env.MIX_ENV }}-[${{ github.ref_name }}]-
${{ runner.os }}-build-${{ env.MIX_ENV }}-
${{ runner.os }}-build-
# needed for the igniter tests
- name: Install phx.new task
run: mix archive.install hex phx_new --force
- name: Install dependencies
run: mix deps.get && mix deps.compile
- name: Compiles without warnings
run: mix compile --force --all-warnings --warnings-as-errors
- name: Run tests
run: mix test --trace
test-as-dep-standalone:
name: Test installation as a dependency without Electric or Ecto
runs-on: ubuntu-latest
env:
MIX_ENV: test
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
version-type: strict
version-file: ".tool-versions"
- name: Install dependencies
run: mix deps.get && mix deps.compile
- name: Test installation as a dependency
run: mix test.as_a_dep.standalone
test-as-dep-embedded:
name: Test installation as a dependency with embedded Electric
runs-on: ubuntu-latest
env:
MIX_ENV: test
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
version-type: strict
version-file: ".tool-versions"
- name: Install dependencies
run: mix deps.get && mix deps.compile
- name: Test installation as a dependency
run: mix test.as_a_dep.embedded
test-apps:
name: Test integration apps
runs-on: ubuntu-latest
env:
MIX_ENV: test
services:
postgres:
image: "postgres:17-alpine"
env:
POSTGRES_PASSWORD: password
POSTGRES_DB: phoenix_sync
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 55555:5432
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
version-type: strict
version-file: ".tool-versions"
- name: Install dependencies
run: mix deps.get
- name: Run tests on apps
run: mix test.apps
formatting:
name: mix format --check-formatted
runs-on: ubuntu-latest
env:
MIX_ENV: test
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
version-type: strict
version-file: ".tool-versions"
- name: Restore dependencies cache
uses: actions/cache/restore@v4
with:
path: deps
key: ${{ runner.os }}-deps-${{ hashFiles('mix.lock') }}
restore-keys: |
${{ runner.os }}-deps-${{ hashFiles('mix.lock') }}
${{ runner.os }}-deps-
- run: mix deps.get
- run: mix format --check-formatted