diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index fb0f8f2354..22bce15458 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -2,63 +2,56 @@ name: Test on: push: branches: - - main + - main pull_request: branches: - - main + - main jobs: - test_classic_flavour: - name: Test classic flavour - runs-on: ubuntu-latest - container: hexpm/elixir:1.16.1-erlang-26.2.2-alpine-3.19.1 + test: + runs-on: ubuntu-22.04 + name: Flavour ${{matrix.flavour}} / OTP ${{matrix.otp}} / Elixir ${{matrix.elixir}} + strategy: + matrix: + flavour: ['classic', 'cooperation'] + otp: ['26.2'] + elixir: ['1.16'] env: - FLAVOUR: classic + FLAVOUR: ${{matrix.flavour}} MIX_ENV: test - WITH_DOCKER: no - POSTGRES_HOST: postgres - POSTGRES_PASSWORD: postgres + WITH_DOCKER: partial CI: true TEST_LOG_TRUNCATE: 340 TEST_LOG_LEVEL: error SECRET_KEY_BASE: "kSNSvYkWk14onNdbYzhEqFyG5TzpOO9+FFlk5sIrhTk0RV6+FeL/nM8DWQffDah4woepgQdrP6J8cjWGyehcWcRWvIIWXsghp0yY9/fEjgfUekD15P9LGRCmu6exIQ6g" SIGNING_SALT: "NPkqpeTx/q9xGQRWwRpqBWI7bCxeHMAF4L2PHntfjVtd8GZD2BQKe9KLnkIR5WbLVdZt24FWuR+Hy5WoXaZM4APydGvC2+w2enJmskOckX5VY1Bpvm7JGKu+QymgIgK/" ENCRYPTION_SALT: "l+QT/gkdX722f57qSAUc+bZcqm5ZduXY4D0hp0glEiKdR267JsZ1/CZlrlhADcD8kzuaZGFWvJ2dlr6sujbzGQV5e04lKVIsZh3gfd8eqQBckIqH6L8TDRRz4M07YE+F" - services: - postgres: - image: postgis/postgis:12-3.3-alpine - env: - POSTGRES_DB: bonfire_test - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 steps: - - - name: Cancel Previous Runs + - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@0.9.0 with: access_token: ${{ github.token }} - - - name: Install bash (needed for just), git (needed for checkout), tar (needed for cache), file (needed for bonfire_files), make/build-base/sqlite (for arch), and just - run: apk add bash git tar file make build-base sqlite just - - - name: Checkout repo - uses: actions/checkout@v2 + - name: Add system repositories + run: | + sudo apt update + sudo apt install ca-certificates curl + sudo install -m 0755 -d /etc/apt/keyrings + sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc + sudo chmod a+r /etc/apt/keyrings/docker.asc + + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + + sudo apt update + - name: Install system deps + run: sudo apt install git tar file make build-essential sqlite docker-compose-plugin && sudo snap install --edge just --classic + - uses: actions/checkout@v4 + - uses: erlef/setup-beam@v1 with: - fetch-depth: 2 # needed for action-detect-and-tag-new-version - # - name: Set up Elixir - # uses: actions/setup-elixir@v1 - # with: - # elixir-version: ${{ matrix.elixir }} - # otp-version: ${{ matrix.otp }} - # TODO: does not handle git deps correctly?... - - name: Trust my repo - run: export GIT_CEILING_DIRECTORIES=/__w && git config --global --add safe.directory /__w/bonfire-app/bonfire-app # see https://github.com/actions/checkout/issues/760 + otp-version: ${{matrix.otp}} + elixir-version: ${{matrix.elixir}} - name: Restore dependencies cache uses: actions/cache@v2 id: cache @@ -68,107 +61,13 @@ jobs: _build key: ${{ runner.os }}-mix-${{ hashFiles('/mix.lock') }} restore-keys: ${{ runner.os }}-mix- - - name: Install system deps - run: apk add mailcap ca-certificates openssl-dev tzdata gettext rust cargo sqlite - # - name: Install tools - # run: cargo install just && echo "/github/home/.cargo/bin" >> $GITHUB_PATH - name: Install hex run: mix local.hex --force - name: Install rebar run: mix local.rebar --force - # - name: Remove mix.lock - # run: rm mix.lock - name: Prepare environment - run: just pre-setup && just init - - name: Install dependencies - run: mix deps.get - - name: Update Bonfire extensions to latest git versions (just use lockfile in future?) - run: mix bonfire.deps.update - - name: Fetch any differences in nested deps (+ run post-install setup) - run: just deps-get && just pre-init - # - name: Clean-build Bonfire data extensions - # run: mix bonfire.deps.clean.data - - name: Compile deps & app - run: mix compile - - name: Set up database - run: mix ecto.create && mix ecto.migrate + run: just config && just setup-dev - name: Run tests - run: mix test + run: just test - name: Check database down migrations - run: mix ecto.rollback --all - - # test_cooperation_flavour: - # name: Test cooperation flavour - # runs-on: ubuntu-latest - # container: hexpm/elixir:1.15.0-erlang-26.0.1-alpine-3.18.2 - # env: - # FLAVOUR: cooperation - # MIX_ENV: test - # WITH_DOCKER: no - # POSTGRES_HOST: postgres - # POSTGRES_PASSWORD: postgres - # CI: true - # SECRET_KEY_BASE: "kSNSvYkWk14onNdbYzhEqFyG5TzpOO9+FFlk5sIrhTk0RV6+FeL/nM8DWQffDah4woepgQdrP6J8cjWGyehcWcRWvIIWXsghp0yY9/fEjgfUekD15P9LGRCmu6exIQ6g" - # SIGNING_SALT: "NPkqpeTx/q9xGQRWwRpqBWI7bCxeHMAF4L2PHntfjVtd8GZD2BQKe9KLnkIR5WbLVdZt24FWuR+Hy5WoXaZM4APydGvC2+w2enJmskOckX5VY1Bpvm7JGKu+QymgIgK/" - # ENCRYPTION_SALT: "l+QT/gkdX722f57qSAUc+bZcqm5ZduXY4D0hp0glEiKdR267JsZ1/CZlrlhADcD8kzuaZGFWvJ2dlr6sujbzGQV5e04lKVIsZh3gfd8eqQBckIqH6L8TDRRz4M07YE+F" - # services: - # postgres: - # # image: postgres - # image: postgis/postgis:12-3.3-alpine - # env: - # POSTGRES_DB: bonfire_test - # POSTGRES_PASSWORD: postgres - # ports: - # - 5432:5432 - # options: >- - # --health-cmd pg_isready - # --health-interval 10s - # --health-timeout 5s - # --health-retries 5 - # steps: - # - - # name: Install git (needed for checkout), tar (needed for cache), file (needed for bonfire_files) - # run: apk add git tar file - # - - # name: Checkout repo - # uses: actions/checkout@v2 - # with: - # fetch-depth: 2 # needed for action-detect-and-tag-new-version - # # - name: Set up Elixir - # # uses: actions/setup-elixir@v1 - # # with: - # # elixir-version: ${{ matrix.elixir }} - # # otp-version: ${{ matrix.otp }} - # - name: Restore dependencies cache - # uses: actions/cache@v2 - # id: cache - # with: - # path: | - # deps - # _build - # key: ${{ runner.os }}-mix-${{ hashFiles('/mix.lock') }} - # restore-keys: ${{ runner.os }}-mix- - # - name: Install system deps - # run: apk add mailcap ca-certificates openssl-dev tzdata gettext rust cargo make - # - name: Install hex - # run: mix local.hex --force - # - name: Install rebar - # run: mix local.rebar --force - # - name: Prepare environment - # run: make pre-run - # - name: Install dependencies - # run: mix deps.get - # - name: Update Bonfire extensions to latest git versions - # run: mix bonfire.deps.update - # - name: Fetch any differences in nested deps - # run: mix deps.get - # - name: Clean-build Bonfire data extensions - # run: mix bonfire.deps.clean.data - # - name: Compile deps & app - # run: mix compile - # - name: Set up database - # run: mix ecto.setup - # - name: Run tests - # run: mix test - # - name: Check database down migrations - # run: mix ecto.rollback --all \ No newline at end of file + run: just db-rollback-all diff --git a/js-deps-get.sh b/js-deps-get.sh old mode 100644 new mode 100755