Fix next branch issues #630
Workflow file for this run
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
name: Continuous Integration | |
# Controls when the action will run. | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
workflow_dispatch: | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
glific: | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres:14 # postgres image for test database. | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_DB: glific_dev | |
ports: | |
- 5432:5432 | |
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 | |
strategy: | |
matrix: # build matrix for the job | |
elixir: [1.15.4-otp-26] | |
otp: [26.0.2] | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# cypress setup | |
- name: Setup cypress-testing | |
uses: actions/checkout@v2 | |
- name: Use latest Node.js | |
uses: actions/setup-node@v3 | |
- name: Setup elixir | |
uses: erlef/setup-beam@v1 | |
with: | |
elixir-version: ${{ matrix.elixir }} | |
otp-version: ${{ matrix.otp }} | |
# backend setup | |
- name: Setup backend | |
run: | | |
echo '127.0.0.1 glific.test' | sudo tee -a /etc/hosts | |
echo '127.0.0.1 postgres' | sudo tee -a /etc/hosts | |
echo '127.0.0.1 api.glific.test' | sudo tee -a /etc/hosts | |
mkdir project | |
cd project | |
echo clone glific repo | |
git clone https://github.com/glific/glific.git | |
echo done. go to dir. | |
cd glific | |
echo done. start dev.secret.exs config | |
cd priv | |
mkdir cert | |
cd cert | |
echo "${{ secrets.TEST_CERTIFICATE }}" > glific.test+1.pem | |
echo "${{ secrets.TEST_CERTIFICATE_KEY }}" > glific.test+1-key.pem | |
cd ../../ | |
cd config | |
cp dev.secret.exs.txt dev.secret.exs | |
cp .env.dev.txt .env.dev | |
sed -i 's/:max_rate_limit_request, 60/:max_rate_limit_request, 300/g' config.exs | |
echo copy done. start setup | |
cd ../ | |
echo install mix dependencies if not Cached | |
mix local.rebar --force | |
mix local.hex --force | |
mix hex.repo add oban https://getoban.pro/repo --fetch-public-key ${{ secrets.OBAN_PUBLIC_KEY }} --auth-key ${{ secrets.OBAN_PRO_KEY }} | |
mix deps.get | |
echo done. start installing inotify-tools | |
sudo apt-get install inotify-tools | |
echo start mix setup | |
mix setup | |
cd ../../ | |
# frontend setup | |
- name: Setup frontend | |
run: | | |
cd project | |
echo clone glific repo | |
git clone https://github.com/glific/glific-frontend.git | |
echo done. go to repo dir. | |
cd glific-frontend | |
git checkout next | |
echo done. | |
echo copy env file. | |
cp .env.example .env | |
echo done. | |
cat /proc/sys/fs/inotify/max_user_watches | |
echo set watchers | |
sudo sysctl fs.inotify.max_user_watches=524288 | |
sudo sysctl -p | |
cat /proc/sys/fs/inotify/max_user_watches | |
echo start yarn setup. | |
yarn setup | |
echo done. | |
cd ../ | |
# Run frontend | |
- name: run glific-frontend | |
run: | | |
cd /home/runner/work/cypress-testing/cypress-testing/project/glific-frontend | |
yarn dev & | |
# Run backend | |
- name: run glific | |
run: | | |
cd /home/runner/work/cypress-testing/cypress-testing/project/glific | |
mix phx.server & | |
- name: Wait for few minutes for the frontend to start | |
run: | | |
sleep 3m | |
# Run cypress | |
- name: Cypress run | |
run: | | |
echo Create cypress.config.ts from example | |
cp cypress.config.ts.example cypress.config.ts | |
yarn install | |
yarn run cypress run --record --key ${{ secrets.CYPRESS_DASHBOARD_KEY }} |