DB structure/remove unnecessary labels field #1191
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
# Do not forget to change status badge in ./README.md | |
name: on_push_branch__execute_ci_cd | |
on: | |
push: | |
branches: [master] | |
# See https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestbranchestags | |
pull_request: | |
# Only branches and tags on the base are evaluated | |
branches: [master] | |
jobs: | |
build_deps: | |
runs-on: ubuntu-latest | |
# Currently, this need to be synced manually with the Dockerfile. In the future, the workflow should be changed, | |
# so that a development container is built from the Dockerfile, pushed, and then re-used in the following steps. | |
# This would also remove the need to install cmake manually in each step: | |
container: hexpm/elixir:1.17.3-erlang-27.1.2-debian-bookworm-20241111-slim | |
steps: | |
# See https://github.com/actions/checkout | |
- uses: actions/checkout@v4 | |
# See https://github.com/actions/checkout | |
- uses: actions/cache@v4 | |
id: cache | |
with: | |
path: | | |
deps | |
_build | |
key: ${{ runner.os }}-mix-v4-${{ hashFiles('**/mix.lock') }} | |
restore-keys: ${{ runner.os }}-mix-v4 | |
- run: mix do local.hex --force, local.rebar --force | |
- run: mix deps.get && mix deps.compile | |
if: steps.cache.outputs.cache-hit != 'true' | |
check_mix_test: | |
# Containers must run in Linux based operating systems | |
runs-on: ubuntu-latest | |
# Docker Hub image that `container-job` executes in | |
container: hexpm/elixir:1.17.3-erlang-27.1.2-debian-bookworm-20241111-slim | |
needs: build_deps | |
# Service containers to run with `container-job` | |
services: | |
# Label used to access the service container | |
postgres: | |
image: postgres:latest | |
env: | |
# These env variables are required by the postgres service (see above) | |
POSTGRES_DB: mindwendel_test | |
POSTGRES_HOST: postgres | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: postgres | |
# Set health checks to wait until postgres has started | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
env: | |
# These env vars are required by our application | |
# Unfortunately, github workflow does not support yaml anchors ;-( | |
TEST_DATABASE_HOST: postgres | |
TEST_DATABASE_NAME: mindwendel_test | |
TEST_DATABASE_USER: postgres | |
TEST_DATABASE_USER_PASSWORD: postgres | |
MIX_ENV: "test" | |
OBJECT_STORAGE_BUCKET: "mindwendel" | |
# The key for encrypting file contents used only in tests | |
# Do not use this key in any kind of prod related environments! | |
VAULT_ENCRYPTION_KEY_BASE64: "gI6L07o3RTppqy+cfAxO4C8G8psYHWn2NYPbUymYI1o=" | |
steps: | |
# Downloads a copy of the code in your repository before running CI tests | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
deps | |
_build | |
key: ${{ runner.os }}-mix-v4-${{ hashFiles('**/mix.lock') }} | |
restore-keys: ${{ runner.os }}-mix-v4 | |
- run: mix do local.hex --force, local.rebar --force | |
- run: mix compile --warnings-as-errors | |
- run: mix ecto.create | |
- run: mix ecto.migrate | |
- run: mix test --warnings-as-errors | |
check_mix_format: | |
runs-on: ubuntu-latest | |
container: hexpm/elixir:1.17.3-erlang-27.1.2-debian-bookworm-20241111-slim | |
needs: build_deps | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
deps | |
_build | |
key: ${{ runner.os }}-mix-v4-${{ hashFiles('**/mix.lock') }} | |
restore-keys: ${{ runner.os }}-mix-v4 | |
- run: mix do local.hex --force, local.rebar --force | |
- run: mix format --check-formatted | |
check_mix_gettext_extract_up_to_date: | |
runs-on: ubuntu-latest | |
container: hexpm/elixir:1.17.3-erlang-27.1.2-debian-bookworm-20241111-slim | |
needs: build_deps | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
deps | |
_build | |
key: ${{ runner.os }}-mix-v4-${{ hashFiles('**/mix.lock') }} | |
restore-keys: ${{ runner.os }}-mix-v4 | |
- run: mix do local.hex --force, local.rebar --force | |
- run: mix gettext.extract --check-up-to-date | |
check_mix_sobelow: | |
runs-on: ubuntu-latest | |
container: hexpm/elixir:1.17.3-erlang-27.1.2-debian-bookworm-20241111-slim | |
needs: build_deps | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
deps | |
_build | |
key: ${{ runner.os }}-mix-v4-${{ hashFiles('**/mix.lock') }} | |
restore-keys: ${{ runner.os }}-mix-v4 | |
- run: mix do local.hex --force, local.rebar --force | |
- run: mix sobelow --config | |
check_mix_credo: | |
runs-on: ubuntu-latest | |
container: hexpm/elixir:1.17.3-erlang-27.1.2-debian-bookworm-20241111-slim | |
needs: build_deps | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
deps | |
_build | |
key: ${{ runner.os }}-mix-v4-${{ hashFiles('**/mix.lock') }} | |
restore-keys: ${{ runner.os }}-mix-v4 | |
- run: mix do local.hex --force, local.rebar --force | |
- run: mix credo |