From 599fc608b329213f34aa9d37d39ee12e726e6b30 Mon Sep 17 00:00:00 2001 From: Thomas Schmidt Date: Wed, 21 Jan 2026 12:26:15 +0100 Subject: [PATCH 1/6] Add .circleci/config.yml --- .circleci/config.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..bb68b14a --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,31 @@ +# Use the latest 2.1 version of CircleCI pipeline process engine. +# See: https://circleci.com/docs/reference/configuration-reference +version: 2.1 + +# Define a job to be invoked later in a workflow. +# See: https://circleci.com/docs/guides/orchestrate/jobs-steps/#jobs-overview & https://circleci.com/docs/reference/configuration-reference/#jobs +jobs: + say-hello: + # Specify the execution environment. You can specify an image from Docker Hub or use one of our convenience images from CircleCI's Developer Hub. + # See: https://circleci.com/docs/guides/execution-managed/executor-intro/ & https://circleci.com/docs/reference/configuration-reference/#executor-job + docker: + # Specify the version you desire here + # See: https://circleci.com/developer/images/image/cimg/base + - image: cimg/base:current + + # Add steps to the job + # See: https://circleci.com/docs/guides/orchestrate/jobs-steps/#steps-overview & https://circleci.com/docs/reference/configuration-reference/#steps + steps: + # Checkout the code as the first step. + - checkout + - run: + name: "Say hello" + command: "echo Hello, World!" + +# Orchestrate jobs using workflows +# See: https://circleci.com/docs/guides/orchestrate/workflows/ & https://circleci.com/docs/reference/configuration-reference/#workflows +workflows: + say-hello-workflow: # This is the name of the workflow, feel free to change it to better match your workflow. + # Inside the workflow, you define the jobs you want to run. + jobs: + - say-hello \ No newline at end of file From 207e9027a97e7912ca520866fbfe4c05c3d2403f Mon Sep 17 00:00:00 2001 From: Thomas Schmidt Date: Wed, 21 Jan 2026 12:26:20 +0100 Subject: [PATCH 2/6] Add .circleci/config.yml From 3f5667d2a29ecb5e96bffbb6c9ebe48b97be69b7 Mon Sep 17 00:00:00 2001 From: Thomas Schmidt Date: Wed, 21 Jan 2026 12:26:24 +0100 Subject: [PATCH 3/6] Add .circleci/config.yml From 8833d40982b2adf002027328327d80b02d42eb53 Mon Sep 17 00:00:00 2001 From: Thomas Schmidt Date: Wed, 21 Jan 2026 12:34:28 +0100 Subject: [PATCH 4/6] Add .circleci/config.yml --- .circleci/config.yml | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index bb68b14a..9ef07675 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,16 +2,22 @@ # See: https://circleci.com/docs/reference/configuration-reference version: 2.1 +# Orbs are reusable packages of CircleCI configuration that you may share across projects, enabling you to create encapsulated, parameterized commands, jobs, and executors that can be used across multiple projects. +# See: https://circleci.com/docs/orbs/use/orb-intro/ +orbs: + # See the Ruby orb documentation here: https://circleci.com/developer/orbs/orb/circleci/ruby + ruby: circleci/ruby@2.1.1 + # Define a job to be invoked later in a workflow. # See: https://circleci.com/docs/guides/orchestrate/jobs-steps/#jobs-overview & https://circleci.com/docs/reference/configuration-reference/#jobs jobs: - say-hello: + build: # Specify the execution environment. You can specify an image from Docker Hub or use one of our convenience images from CircleCI's Developer Hub. # See: https://circleci.com/docs/guides/execution-managed/executor-intro/ & https://circleci.com/docs/reference/configuration-reference/#executor-job docker: # Specify the version you desire here - # See: https://circleci.com/developer/images/image/cimg/base - - image: cimg/base:current + # See: https://circleci.com/developer/images/image/cimg/ruby + - image: cimg/ruby:3.3 # Add steps to the job # See: https://circleci.com/docs/guides/orchestrate/jobs-steps/#steps-overview & https://circleci.com/docs/reference/configuration-reference/#steps @@ -19,13 +25,14 @@ jobs: # Checkout the code as the first step. - checkout - run: - name: "Say hello" - command: "echo Hello, World!" + name: Which bundler? + command: bundle -v + - ruby/install-deps # Orchestrate jobs using workflows # See: https://circleci.com/docs/guides/orchestrate/workflows/ & https://circleci.com/docs/reference/configuration-reference/#workflows workflows: - say-hello-workflow: # This is the name of the workflow, feel free to change it to better match your workflow. + sample: # This is the name of the workflow, feel free to change it to better match your workflow. # Inside the workflow, you define the jobs you want to run. jobs: - - say-hello \ No newline at end of file + - build \ No newline at end of file From 7d5a735a15c4c9f543f73663063b2b5a4184609a Mon Sep 17 00:00:00 2001 From: Thomas Schmidt Date: Wed, 21 Jan 2026 12:35:12 +0100 Subject: [PATCH 5/6] Add .circleci/config.yml --- .circleci/config.yml | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9ef07675..8ac30b6b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,29 +5,8 @@ version: 2.1 # Orbs are reusable packages of CircleCI configuration that you may share across projects, enabling you to create encapsulated, parameterized commands, jobs, and executors that can be used across multiple projects. # See: https://circleci.com/docs/orbs/use/orb-intro/ orbs: - # See the Ruby orb documentation here: https://circleci.com/developer/orbs/orb/circleci/ruby - ruby: circleci/ruby@2.1.1 - -# Define a job to be invoked later in a workflow. -# See: https://circleci.com/docs/guides/orchestrate/jobs-steps/#jobs-overview & https://circleci.com/docs/reference/configuration-reference/#jobs -jobs: - build: - # Specify the execution environment. You can specify an image from Docker Hub or use one of our convenience images from CircleCI's Developer Hub. - # See: https://circleci.com/docs/guides/execution-managed/executor-intro/ & https://circleci.com/docs/reference/configuration-reference/#executor-job - docker: - # Specify the version you desire here - # See: https://circleci.com/developer/images/image/cimg/ruby - - image: cimg/ruby:3.3 - - # Add steps to the job - # See: https://circleci.com/docs/guides/orchestrate/jobs-steps/#steps-overview & https://circleci.com/docs/reference/configuration-reference/#steps - steps: - # Checkout the code as the first step. - - checkout - - run: - name: Which bundler? - command: bundle -v - - ruby/install-deps + # See the Node orb documentation here: https://circleci.com/developer/orbs/orb/circleci/node + node: circleci/node@5.2 # Orchestrate jobs using workflows # See: https://circleci.com/docs/guides/orchestrate/workflows/ & https://circleci.com/docs/reference/configuration-reference/#workflows @@ -35,4 +14,10 @@ workflows: sample: # This is the name of the workflow, feel free to change it to better match your workflow. # Inside the workflow, you define the jobs you want to run. jobs: - - build \ No newline at end of file + - node/test: + # This is the node version to use for the `cimg/node` tag + # Relevant tags can be found on the CircleCI Developer Hub + # https://circleci.com/developer/images/image/cimg/node + version: '16.10' + # If you are using yarn, change the line below from "npm" to "yarn" + pkg-manager: npm \ No newline at end of file From c753a2d2d2004d540aec24b0b2009ffa561edf45 Mon Sep 17 00:00:00 2001 From: Thomas Schmidt Date: Wed, 21 Jan 2026 23:49:55 +0100 Subject: [PATCH 6/6] conversion from github action --- .circleci/config.yml | 179 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 162 insertions(+), 17 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8ac30b6b..3c8c9b19 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,23 +1,168 @@ -# Use the latest 2.1 version of CircleCI pipeline process engine. -# See: https://circleci.com/docs/reference/configuration-reference version: 2.1 -# Orbs are reusable packages of CircleCI configuration that you may share across projects, enabling you to create encapsulated, parameterized commands, jobs, and executors that can be used across multiple projects. -# See: https://circleci.com/docs/orbs/use/orb-intro/ orbs: - # See the Node orb documentation here: https://circleci.com/developer/orbs/orb/circleci/node - node: circleci/node@5.2 + ruby: circleci/ruby@2 + node: circleci/node@5 + coveralls: coveralls/coveralls@2 -# Orchestrate jobs using workflows -# See: https://circleci.com/docs/guides/orchestrate/workflows/ & https://circleci.com/docs/reference/configuration-reference/#workflows workflows: - sample: # This is the name of the workflow, feel free to change it to better match your workflow. - # Inside the workflow, you define the jobs you want to run. + lint_and_tests: jobs: - - node/test: - # This is the node version to use for the `cimg/node` tag - # Relevant tags can be found on the CircleCI Developer Hub - # https://circleci.com/developer/images/image/cimg/node - version: '16.10' - # If you are using yarn, change the line below from "npm" to "yarn" - pkg-manager: npm \ No newline at end of file + - lint + - test + +jobs: + lint: + docker: + - image: cimg/ruby:3.3-node + working_directory: ~/project + steps: + - checkout + + - run: + name: Update package lists + command: sudo apt-get update + + - run: + name: Disable mandb updates + command: | + sudo mv /usr/bin/mandb /usr/bin/mandb.bak || true + echo -e '#!/bin/sh\nexit 0' | sudo tee /usr/bin/mandb > /dev/null + sudo chmod +x /usr/bin/mandb + + - run: + name: Install OS dependencies + command: sudo apt-get install --no-install-recommends -y libproj-dev libimlib2-dev + + # Bundler cache (keyed by Gemfile.lock checksum) + - restore_cache: + name: Restore bundle cache + keys: + - bundle-v1-{{ checksum "Gemfile.lock" }} + - bundle-v1- + + - run: + name: Install Ruby gems + command: | + bundle config set path 'vendor/bundle' + bundle install --jobs=4 --retry=3 + + - save_cache: + name: Save bundle cache + key: bundle-v1-{{ checksum "Gemfile.lock" }} + paths: + - vendor/bundle + + # NPM cache (keyed by package-lock.json checksum) + - restore_cache: + name: Restore npm cache + keys: + - npm-v1-{{ checksum "package-lock.json" }} + - npm-v1- + + - run: + name: Install npm dependencies + command: npm ci + + - save_cache: + name: Save npm cache + key: npm-v1-{{ checksum "package-lock.json" }} + paths: + - ~/.npm + + - run: + name: Security audit dependencies + command: bin/bundler-audit --update + + - run: + name: Security audit application code + command: bin/brakeman -q -w2 + + - run: + name: Lint Ruby files + command: bin/rubocop --parallel + + - run: + name: Lint Javascript + command: npm run lint:js + + - run: + name: Lint CSS + command: npm run lint:css + + test: + docker: + - image: cimg/ruby:3.3 + - image: mongo:8.2 + name: mongodb + ports: + - "27017:27017" + working_directory: ~/project + environment: + RAILS_ENV: test + COVERAGE: "true" + SE_AVOID_STATS: "true" + SE_DISABLE_REMOTE_MANAGER: "true" + # If your app needs it, uncomment and use this in config/database.yml (or equivalent): + # MONGO_URL: "mongodb://mongodb:27017" + + steps: + - checkout + + - run: + name: Update package lists + command: sudo apt-get update + + - run: + name: Disable mandb updates + command: | + sudo mv /usr/bin/mandb /usr/bin/mandb.bak || true + echo -e '#!/bin/sh\nexit 0' | sudo tee /usr/bin/mandb > /dev/null + sudo chmod +x /usr/bin/mandb + + - run: + name: Install OS dependencies + command: sudo apt-get install --no-install-recommends -y libproj-dev proj-bin libimlib2 libimlib2-dev imagemagick + + # Bundler cache (keyed by Gemfile.lock checksum) + - restore_cache: + name: Restore bundle cache + keys: + - bundle-v1-{{ checksum "Gemfile.lock" }} + - bundle-v1- + + - run: + name: Install Ruby gems + command: | + bundle config set path 'vendor/bundle' + bundle install --jobs=4 --retry=3 + + - save_cache: + name: Save bundle cache + key: bundle-v1-{{ checksum "Gemfile.lock" }} + paths: + - vendor/bundle + + - run: + name: Run tests + command: | + bin/parallel_rspec spec engines + + # Upload artifacts on failure (CircleCI equivalents of upload-artifact) + - store_artifacts: + path: tmp/capybara + destination: screenshots + + - store_artifacts: + path: log/test.log + destination: rails-logs + + - store_artifacts: + path: coverage + destination: coverage + + # Coveralls (expects your test run to have produced coverage data) + - coveralls/upload: + parallel: false + # Closest equivalent to "fail-on-error: false" + fail_on_error: false \ No newline at end of file