Skip to content

chore: inform about deletion after inactivity #244 #380

chore: inform about deletion after inactivity #244

chore: inform about deletion after inactivity #244 #380

name: on_push_branch__execute_tests
on:
[push, pull_request]
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.15.7-erlang-26.2.2-debian-bullseye-20240130-slim
steps:
# See https://github.com/actions/checkout
- uses: actions/checkout@v4
# we need cmake for fast_sanitize:
- run: apt-get -y update && apt-get -y install build-essential cmake
# install hex:
- run: mix local.hex --force && mix local.rebar --force
# See https://github.com/actions/cache
- uses: actions/cache@v4
id: cache
with:
path: deps
key: ${{ runner.os }}-mix-v4-${{ hashFiles('**/mix.lock') }}
restore-keys: ${{ runner.os }}-mix-v4
- run: mix deps.get
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.15.2-erlang-26.0.2-debian-bullseye-20230612-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: qrstorage_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
DATABASE_HOST: postgres
DATABASE_NAME: qrstorage_test
DATABASE_USER: postgres
DATABASE_USER_PASSWORD: postgres
DATABASE_SSL: false
# This should only be used for the tests:
SECRET_KEY_BASE: "DFvi5ZWW/Xc/yBgPOQ0w1wWZEGjy7NMl1/fRFyWf2EgbWNcXqtAOKUjh4bVps/eQ"
MIX_ENV: "test"
OBJECT_STORAGE_BUCKET: "qrstorage-test"
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
key: ${{ runner.os }}-mix-v4-${{ hashFiles('**/mix.lock') }}
restore-keys: ${{ runner.os }}-mix-v4
# install hex:
- run: mix local.hex --force && mix local.rebar --force
# we need cmake for fast_sanitize:
- run: apt-get -y update && apt-get -y install build-essential cmake
- run: mix compile
- run: mix ecto.create
- run: mix ecto.migrate
- run: mix test
check_mix_format:
runs-on: ubuntu-latest
container: hexpm/elixir:1.15.2-erlang-26.0.2-debian-bullseye-20230612-slim
needs: build_deps
steps:
- name: Check out repository code
uses: actions/checkout@v4
# install hex:
- run: mix local.hex --force && mix local.rebar --force
# we need cmake for fast_sanitize:
- run: apt-get -y update && apt-get -y install build-essential cmake
- uses: actions/cache@v4
with:
path: deps
key: ${{ runner.os }}-mix-v4-${{ hashFiles('**/mix.lock') }}
restore-keys: ${{ runner.os }}-mix-v4
- run: mix format --check-formatted