From 335c06af7a3d352bdb680894658e6bd9e811e553 Mon Sep 17 00:00:00 2001 From: Sojan Date: Fri, 7 Mar 2025 02:07:00 -0800 Subject: [PATCH] chore: fixes --- .circleci/config.yml | 85 +++++++++++++++++++++++++++++++------------- 1 file changed, 60 insertions(+), 25 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e81035a19..654571aa4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,42 +17,78 @@ jobs: <<: *defaults steps: - checkout + - node/install: + node-version: '23.7' + - node/install-pnpm + - node/install-packages: + pkg-manager: pnpm + override-ci-command: pnpm i - run: - name: Install Dependencies + name: Install PostgreSQL repository & Dependencies command: | - sudo apt-get update && sudo apt-get install -y \ - curl gpg build-essential libpq-dev redis-server postgresql-16 postgresql-16-pgvector \ - libssl-dev zlib1g-dev libyaml-dev libxml2-dev libxslt1-dev imagemagick \ - libreadline-dev libvips libffi-dev liblzma-dev + curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/pgdg.gpg + echo "deb [signed-by=/usr/share/keyrings/pgdg.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list + sudo apt-get update + DEBIAN_FRONTEND=noninteractive sudo apt-get install -y \ + libpq-dev \ + redis-server \ + postgresql-16 \ + postgresql-16-pgvector \ + build-essential \ + git \ + curl \ + libssl-dev \ + zlib1g-dev \ + libreadline-dev \ + libyaml-dev \ + openjdk-11-jdk \ + jq \ + software-properties-common \ + ca-certificates \ + imagemagick \ + libxml2-dev \ + libxslt1-dev \ + file \ + g++ \ + gcc \ + autoconf \ + gnupg2 \ + patch \ + ruby-dev \ + liblzma-dev \ + libgmp-dev \ + libncurses5-dev \ + libffi-dev \ + libgdbm6 \ + libgdbm-dev \ + libvips - # Ruby installation via RVM - curl -sSL https://get.rvm.io | bash -s stable --ruby=3.3.3 + - run: + name: Install RVM and Ruby 3.3.3 + command: | + sudo apt-get install -y gpg + gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB + \curl -sSL https://get.rvm.io | bash -s stable + echo 'source ~/.rvm/scripts/rvm' >> $BASH_ENV source ~/.rvm/scripts/rvm + rvm install "3.3.3" + rvm use 3.3.3 --default gem install bundler -v 2.5.16 bundle install - - # Node setup - curl -fsSL https://get.pnpm.io/install.sh | sh - - export PNPM_HOME=~/build/.pnpm-store - export PATH=$PATH:~/.local/share/pnpm - pnpm i - - persist_to_workspace: root: ~/build paths: - - .bundle - - node_modules - - .pnpm-store + - . lint: <<: *defaults steps: - attach_workspace: at: ~/build - - checkout - run: - name: Linting & Swagger Check + name: Linting & Swagger Validation command: | + source ~/.rvm/scripts/rvm bundle exec rubocop pnpm run eslint bundle exec rake swagger:build @@ -86,8 +122,10 @@ jobs: - attach_workspace: at: ~/build - run: - name: DB Setup & Migration + name: Start services and Setup DB command: | + sudo service postgresql start + sudo service redis-server start pg_pass=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 15; echo '') sed -i "s/REPLACE_WITH_PASSWORD/${pg_pass}/g" ${PWD}/.circleci/setup_chatwoot.sql sudo -u postgres psql -f ${PWD}/.circleci/setup_chatwoot.sql @@ -95,11 +133,8 @@ jobs: sed -i '/^FRONTEND_URL/d' .env sed -i -e '/REDIS_URL/ s/=.*/=redis:\/\/localhost:6379/' .env sed -i -e '/POSTGRES_HOST/ s/=.*/=localhost/' .env - sed -i -e '/POSTGRES_USERNAME/ s/=.*/=chatwoot/' .env - sed -i -e "/POSTGRES_PASSWORD/ s/=.*/=$pg_pass/" .env - echo -en "\nINSTALLATION_ENV=circleci" >> ".env" + sed -i -e "/POSTGRES_PASSWORD/ s/=.*/=${pg_pass}/" .env bundle exec rails db:chatwoot_prepare - - run: name: Run backend tests command: | @@ -120,4 +155,4 @@ workflows: - setup - backend_tests: requires: - - setup \ No newline at end of file + - setup