Skip to content

Commit 4e1e2f6

Browse files
Merge pull request #166 from DiputacioBarcelona/automatic_process_phase_changer
Automatic process phase changer
2 parents 69b97a6 + 79230a5 commit 4e1e2f6

60 files changed

Lines changed: 3217 additions & 9 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: "[CI] Process Settings"
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- release/*
8+
- "*-stable"
9+
pull_request:
10+
11+
env:
12+
RUBY_VERSION: 3.3.4
13+
14+
jobs:
15+
test-report:
16+
runs-on: ubuntu-latest
17+
18+
services:
19+
postgres:
20+
image: postgres:14
21+
ports: ["5432:5432"]
22+
options: >-
23+
--health-cmd pg_isready
24+
--health-interval 10s
25+
--health-timeout 5s
26+
--health-retries 5
27+
env:
28+
POSTGRES_PASSWORD: postgres
29+
env:
30+
DATABASE_USERNAME: postgres
31+
DATABASE_PASSWORD: postgres
32+
DATABASE_HOST: localhost
33+
steps:
34+
- uses: actions/checkout@v4
35+
with:
36+
fetch-depth: 1
37+
38+
- uses: ruby/setup-ruby@master
39+
with:
40+
ruby-version: ${{ env.RUBY_VERSION }}
41+
42+
# The test app is generated with Decidim's AppGenerator, which installs the
43+
# npm/shakapacker dependencies, so Node is required before `rake test_app`.
44+
- uses: actions/setup-node@v4
45+
with:
46+
node-version-file: decidim-process_settings/.nvmrc
47+
48+
- name: Recover Ruby dependency cache
49+
uses: actions/cache@v4
50+
with:
51+
path: ./vendor/bundle
52+
key: ${{ runner.OS }}-rubydeps-${{ hashFiles('Gemfile.lock') }}
53+
restore-keys: |
54+
${{ runner.OS }}-rubydeps-${{ env.cache-name }}-
55+
${{ runner.OS }}-rubydeps-
56+
${{ runner.OS }}-
57+
58+
- name: Set bundle local config vendor/bundle path
59+
run: bundle config set --local path 'vendor/bundle'
60+
61+
- name: Install Ruby deps
62+
uses: nick-invision/retry@v3
63+
with:
64+
timeout_minutes: 10
65+
max_attempts: 3
66+
retry_on: error
67+
command: |
68+
cd decidim-process_settings
69+
bundle install --jobs 4 --retry 3
70+
71+
- name: Generate process_settings test_app
72+
run: |
73+
cd decidim-process_settings
74+
bundle exec rake test_app
75+
76+
- name: Precompile assets
77+
working-directory: ./decidim-process_settings/spec/decidim_dummy_app
78+
run: RAILS_ENV=test bundle exec rails shakapacker:compile
79+
80+
- name: Run RSpec
81+
uses: nick-invision/retry@v3
82+
with:
83+
timeout_minutes: 10
84+
max_attempts: 3
85+
retry_on: error
86+
command: |
87+
cd decidim-process_settings
88+
CI=1 DISABLE_SPRING=1 RAILS_ENV=test bundle exec rspec --backtrace

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ decidim-age_action_authorization/spec/decidim_dummy_app/
3434
decidim-census/spec/decidim_dummy_app/
3535
decidim-diba_census_api/spec/decidim_dummy_app/
3636
decidim-ldap/spec/decidim_dummy_app/
37+
decidim-process_settings/spec/decidim_dummy_app/
3738

3839

3940
/public/packs

Dockerfile.production

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ ADD decidim-census decidim-census
8484
ADD decidim-diba_census_api decidim-diba_census_api
8585
ADD decidim-age_action_authorization decidim-age_action_authorization
8686
ADD decidim-ldap decidim-ldap
87+
ADD decidim-process_settings decidim-process_settings
8788
RUN bundle config set without 'development test'
8889
RUN bundle config set deployment 'true'
8990
RUN bundle install --jobs=4
@@ -115,9 +116,13 @@ VOLUME $HOME/log
115116
RUN mkdir -p /etc/my_init.d
116117
ADD docker/fix_permissions.sh /etc/my_init.d/fix_permissions.sh
117118
ADD docker/replace_nginx_env_variables.sh /etc/my_init.d/replace_nginx_variables.sh
118-
ADD docker/sidekiq.sh /etc/my_init.d/sidekiq.sh
119119
RUN chmod +x /etc/my_init.d/*.sh
120120

121+
# Run Sidekiq as a runit-supervised service so it is restarted automatically if
122+
# it dies (replaces the previous unsupervised, daemonized my_init.d/sidekiq.sh).
123+
ADD docker/sidekiq/run /etc/service/sidekiq/run
124+
RUN chmod +x /etc/service/sidekiq/run
125+
121126
RUN chown -R app:app $HOME
122127

123128
# cheat activestorage as it is still trying to create variants at storage/ even configuring public/uploads/storage as the local root path

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ gem "decidim-decidim_awesome", git: "https://github.com/PopulateTools/decidim-mo
1414
gem "decidim-diba_census_api", path: "decidim-diba_census_api"
1515
gem "decidim-initiatives", DECIDIM_VERSION
1616
gem "decidim-ldap", path: "decidim-ldap"
17+
gem "decidim-process_settings", path: "decidim-process_settings"
1718
gem "decidim-templates", DECIDIM_VERSION
1819

1920
gem "decidim-homepage_proposals", git: "https://github.com/PopulateTools/decidim-module_homepage_proposals.git", branch: "release/0.30-stable"

Gemfile.lock

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,14 @@ PATH
260260
ladle
261261
net-ldap
262262

263+
PATH
264+
remote: decidim-process_settings
265+
specs:
266+
decidim-process_settings (0.30.9)
267+
decidim-core (= 0.30.9)
268+
decidim-participatory_processes (= 0.30.9)
269+
deface
270+
263271
GEM
264272
remote: https://rubygems.org/
265273
specs:
@@ -1054,6 +1062,7 @@ DEPENDENCIES
10541062
decidim-homepage_proposals!
10551063
decidim-initiatives!
10561064
decidim-ldap!
1065+
decidim-process_settings!
10571066
decidim-removable_authorizations!
10581067
decidim-templates!
10591068
decidim-term_customizer!

config/schedule.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,10 @@ decidim_initiatives_check_published:
1313
decidim_initiatives_notify_progress:
1414
cron: '0 5 * * * Europe/Madrid'
1515
class: 'DecidimInitiativesNotifyProgress'
16+
decidim_process_settings_active_step:
17+
cron: '*/15 * * * * Europe/Madrid'
18+
class: 'Decidim::ProcessSettings::SetActiveStepByDateJob'
19+
# sidekiq-cron forces the queue via `.set(queue: ...)`, overriding the job's
20+
# `queue_as`, and defaults to "default" — so it must be set explicitly here.
21+
queue: process_settings
22+
args: [15]

config/sidekiq.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
- active_storage_purge
55
- block_user
66
- decidim_events
7+
- process_settings
78
- default
89
- events
910
- exports
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/.bundle/
2+
/coverage/
3+
/pkg/
4+
/spec/reports/
5+
/tmp/
6+
7+
# rspec failure tracking
8+
.rspec-failures
9+
10+
# vim
11+
*.un~
12+
13+
# default test application
14+
spec/decidim_dummy_app
15+
16+
# default development application
17+
development_app

decidim-process_settings/.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
22.14.0
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.3.4

0 commit comments

Comments
 (0)