dawarich/.circleci/config.yml

84 lines
2.3 KiB
YAML
Raw Normal View History

2024-08-20 16:14:29 -04:00
version: 2.1
2025-02-02 15:49:52 -05:00
executors:
docker-executor:
machine:
image: ubuntu-2204:current
2024-08-20 16:14:29 -04:00
orbs:
2024-09-05 15:23:24 -04:00
ruby: circleci/ruby@2.1.4
browser-tools: circleci/browser-tools@1.4.8
2025-02-02 16:35:25 -05:00
docker: circleci/docker@2.8.2
2025-02-02 15:41:41 -05:00
2024-08-20 16:14:29 -04:00
jobs:
test:
2024-08-20 16:14:29 -04:00
docker:
2024-09-12 16:45:38 -04:00
- image: cimg/ruby:3.3.4
environment:
RAILS_ENV: test
2025-01-29 05:57:53 -05:00
- image: cimg/postgres:13.3-postgis
environment:
POSTGRES_USER: postgres
POSTGRES_DB: test_database
POSTGRES_PASSWORD: mysecretpassword
2024-08-20 16:56:42 -04:00
- image: redis:7.0
2024-08-20 16:14:29 -04:00
steps:
- checkout
- run:
name: Install Bundler
command: gem install bundler
- run:
name: Bundle Install
command: bundle install --jobs=4 --retry=3
- run:
name: Database Setup
command: |
2025-01-29 05:55:33 -05:00
bundle exec rails db:create
bundle exec rails db:schema:load
- run:
name: Run RSpec tests
command: bundle exec rspec
2024-08-20 16:44:09 -04:00
- store_artifacts:
path: coverage
2025-02-02 15:51:32 -05:00
2025-02-02 15:41:41 -05:00
build-and-push:
2025-02-02 16:35:25 -05:00
executor:
name: docker/docker
# You can also specify a different image if required.
parameters:
tag:
type: string
default: "rc"
2025-02-02 15:41:41 -05:00
steps:
- checkout
2025-02-02 16:35:25 -05:00
# Login to Docker Hub using the orb command. The orb expects environment
# variables DOCKERHUB_USERNAME and DOCKERHUB_PASSWORD (or DOCKERHUB_TOKEN).
2025-02-02 16:30:45 -05:00
- docker/login:
2025-02-02 16:35:25 -05:00
username: "$DOCKERHUB_USERNAME"
password: "$DOCKERHUB_TOKEN"
# Build and publish the Docker image.
- docker/build-publish:
image: "freikin/dawarich:<< parameters.tag >>"
dockerfile: ./docker/Dockerfile.dev
# Set additional options if needed:
build-args: ""
extra-build-args: "--platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6"
registry: "docker.io"
push: true
2025-02-02 15:41:41 -05:00
2024-08-20 16:14:29 -04:00
workflows:
2025-02-02 15:49:52 -05:00
version: 2
2025-02-02 15:51:32 -05:00
build-and-test:
2025-02-02 15:41:41 -05:00
jobs:
2025-02-02 15:49:52 -05:00
- test
2025-02-02 15:41:41 -05:00
- build-and-push:
2025-02-02 16:35:25 -05:00
requires:
- test
2025-02-02 15:41:41 -05:00
filters:
branches:
2025-02-02 16:35:25 -05:00
ignore: /.*/ # Ignore branches; run only on tag builds (or adjust as needed)
2025-02-02 15:49:52 -05:00
tags:
2025-02-02 16:35:25 -05:00
only: /.*/ # Run for any tag; adjust regex if you want more specific tag matching
tag: "<< pipeline.parameters.tag >>"