Skip to content

Commit

Permalink
chore: add droneio support
Browse files Browse the repository at this point in the history
paperclip v5.0 требует rails >= v4.2 и aws-sdk > v2
  • Loading branch information
ashalaev committed Oct 20, 2016
1 parent 8118ffb commit 3ee982d
Show file tree
Hide file tree
Showing 14 changed files with 167 additions and 40 deletions.
33 changes: 33 additions & 0 deletions .drone.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
matrix:
include:
- DOCKER_RUBY_VERSION: "2.2"
RUBY_IMAGE_TAG: "2.2-1"

- DOCKER_RUBY_VERSION: "1.9.3"
RUBY_IMAGE_TAG: "1.9.3-2"

build:
image: abakpress/dind:1
privileged: true
volumes:
- /home/data/drone/images:/images
- /home/data/drone/gems:/bundle
- /home/data/drone/key_cache:/ssh_keys
environment:
- COMPOSE_FILE_EXT=drone
- RAILS_ENV=test
- POSTGRES_IMAGE_TAG=9.3
commands:
- wrapdocker docker -v

- if [ ! -e /images/ssh-agent.tar ]; then docker pull whilp/ssh-agent; docker save whilp/ssh-agent > /images/ssh-agent.tar; fi
- if [ ! -e /images/ruby_$RUBY_IMAGE_TAG.tar ]; then docker pull abakpress/ruby:$RUBY_IMAGE_TAG; docker save abakpress/ruby:$RUBY_IMAGE_TAG > /images/ruby_$RUBY_IMAGE_TAG.tar; fi
- if [ ! -e /images/postgres_$POSTGRES_IMAGE_TAG.tar ]; then docker pull abakpress/postgres:$POSTGRES_IMAGE_TAG; docker save abakpress/postgres:$POSTGRES_IMAGE_TAG > /images/postgres_$POSTGRES_IMAGE_TAG.tar; fi

- docker load -i /images/ssh-agent.tar
- docker load -i /images/ruby_$RUBY_IMAGE_TAG.tar
- docker load -i /images/postgres_$POSTGRES_IMAGE_TAG.tar

- dip ssh add -T -v /ssh_keys -k /ssh_keys/id_rsa
- dip provision
- dip rspec
2 changes: 1 addition & 1 deletion Appraisals
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ appraise 'rails3.1' do
gem 'test_after_commit', '~> 0.2.3', require: false
gem "active_support-lazy_load_patch", require: false
gem 'strong_parameters', '>= 0.2'
end
end if RUBY_VERSION < '2'

appraise 'rails3.2' do
gem 'rails', '~> 3.2.0'
Expand Down
6 changes: 5 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,9 @@ source 'https://gems.railsc.ru'
source 'https://rubygems.org'

# Specify your gem's dependencies in apress-amazon_assets.gemspec
gem 'mime-types', '< 3.0' if RUBY_VERSION < '2'
if RUBY_VERSION < '2'
gem 'mime-types', '< 3.0'
gem 'pg', '< 0.19'
end

gemspec
32 changes: 0 additions & 32 deletions Makefile

This file was deleted.

4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Apress::AmazonAssets

[![Dolly](http://dolly.railsc.ru/badges/abak-press/apress-amazon_assets/master)](http://dolly.railsc.ru/projects/30/builds/latest/?ref=master)
[![Build Status](https://drone.railsc.ru/api/badges/abak-press/apress-amazon_assets/status.svg)](https://drone.railsc.ru/abak-press/apress-amazon_assets)
[![Code Climate](https://codeclimate.com/repos/543e65e6e30ba041d401e98d/badges/fd82abeaab68a66be573/gpa.svg)](https://codeclimate.com/repos/543e65e6e30ba041d401e98d/feed)

Гем позволяет хранить файлы на Amazon S3.
Expand Down Expand Up @@ -44,7 +44,7 @@ end

Вначале файлы загружаются локально на сервер и потом через resque загружаются на амазон. Очередь resque называется `upload`.

В проектном crontab необходимо вызывать автоочистку через rake задачу
В проектном crontab необходимо вызывать автоочистку через rake задачу

```
rake amazon:private_assets:autoclean
Expand Down
5 changes: 3 additions & 2 deletions app/helpers/apress/amazon_assets/amazon_assets_helper.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
module Apress
module AmazonAssets
module AmazonAssetsHelper
# Виджет прикрепления/удаления файлов
DEFAULT_ATTACHMENT_FIELDS_PATH = 'apress/amazon_assets/attachments_fields'.freeze
# Public: виджет прикрепления/удаления файлов
#
# form - ActionView::Helpers::FormBuilder
# options - Hash
Expand All @@ -14,7 +15,7 @@ module AmazonAssetsHelper
#
# Returns String
def attachments_fields(form, options = {})
options[:path] ||= 'apress/amazon_assets/attachments_fields'
options[:path] ||= DEFAULT_ATTACHMENT_FIELDS_PATH

if options[:attach_to]
file_field_index = options[:attachments] ? options[:attachments].size : 0
Expand Down
2 changes: 1 addition & 1 deletion apress-amazon_assets.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Gem::Specification.new do |spec|

spec.add_runtime_dependency 'rails', '>= 3.1.12', '< 5.0'
spec.add_runtime_dependency 'pg'
spec.add_runtime_dependency 'paperclip', '>= 4.2'
spec.add_runtime_dependency 'paperclip', '>= 4.2', '< 5'
spec.add_runtime_dependency 'resque-integration'
spec.add_runtime_dependency 'stringex'
spec.add_runtime_dependency 'aws-sdk', '>= 1.6', '< 2.0'
Expand Down
50 changes: 50 additions & 0 deletions dip.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
version: '1'

environment:
DOCKER_RUBY_VERSION: 1.9.3
RUBY_IMAGE_TAG: 1.9.3-2
POSTGRES_IMAGE_TAG: 9.3
COMPOSE_FILE_EXT: development
RAILS_ENV: test
APRESS_GEMS_CREDENTIALS: ""

compose:
files:
- docker-compose.yml
- docker-compose.${COMPOSE_FILE_EXT}.yml

interaction:
sh:
service: app

irb:
service: app
command: irb

bundle:
service: app
command: bundle

rake:
service: app
command: bundle exec rake

appraisal:
service: app
command: bundle exec appraisal

rspec:
service: app
command: bundle exec appraisal bundle exec rspec

clean:
service: app
command: rm -f Gemfile.lock gemfiles/*.gemfile.*

provision:
- docker volume create --name bundler_data
- dip bundle config --local https://gems.railsc.ru/ ${APRESS_GEMS_CREDENTIALS}
- dip bundle install
- dip sh mkdir -p gemfiles/.bundle
- dip sh ln -sf ../../.bundle/config /app/gemfiles/.bundle/config
- dip appraisal install
18 changes: 18 additions & 0 deletions docker-compose.development.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
version: '2'

services:
app:
volumes:
- .:/app
- ../:/localgems
- ssh-data:/ssh:ro
- bundler-data:/bundle

volumes:
ssh-data:
external:
name: ssh_data

bundler-data:
external:
name: bundler_data
13 changes: 13 additions & 0 deletions docker-compose.drone.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
version: '2'

services:
app:
volumes:
- .:/app
- /bundle:/bundle
- ssh-data:/ssh:ro

volumes:
ssh-data:
external:
name: ssh_data
19 changes: 19 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version: '2'

services:
app:
image: abakpress/ruby:$RUBY_IMAGE_TAG
environment:
- BUNDLE_PATH=/bundle/$DOCKER_RUBY_VERSION
- SSH_AUTH_SOCK=/ssh/auth/sock
- TEST_DB_HOST=db
- TEST_DB_NAME=docker
- TEST_DB_USERNAME=postgres
command: bash
depends_on:
- db

db:
image: abakpress/postgres:$POSTGRES_IMAGE_TAG
environment:
- POSTGRES_DB=docker
17 changes: 17 additions & 0 deletions spec/helpers/apress/amazon_assets/amazon_assets_helper_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# coding: utf-8
require 'spec_helper'

RSpec.describe Apress::AmazonAssets::AmazonAssetsHelper, type: :helper do
describe '#attachments_fields' do
let(:form) { double(ActionView::Helpers::FormBuilder) }

let(:options) { {attachments: [], max_size: 0, max_count: 0, attach_to: nil, permitted_type: []} }

it do
expect(helper).to receive(:render).with(
described_class::DEFAULT_ATTACHMENT_FIELDS_PATH, form: form, options: options
)
helper.attachments_fields(form, options)
end
end
end
1 change: 0 additions & 1 deletion spec/internal/config/.gitignore

This file was deleted.

5 changes: 5 additions & 0 deletions spec/internal/config/database.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
test:
adapter: postgresql
host: <%= ENV.fetch("TEST_DB_HOST", "localhost") %>
database: <%= ENV.fetch("TEST_DB_NAME", "docker") %>
username: <%= ENV.fetch("TEST_DB_USERNAME", "docker") %>

0 comments on commit 3ee982d

Please sign in to comment.