Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chores/backport k8s #44

Merged
merged 97 commits into from
Sep 7, 2023
Merged
Show file tree
Hide file tree
Changes from 96 commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
c641757
Add a matrix to system tests (#209)
armandfardeau Dec 14, 2022
245958a
Refactor migrations tools (#329)
armandfardeau Jun 19, 2023
909cb4b
Feat: add s3 host env (#341)
pierreozoux Jul 4, 2023
e7b5523
Avoid generating many images (#322)
armandfardeau Jun 13, 2023
79de0c9
Remove duplicate entry (#323)
armandfardeau Jun 13, 2023
cae6a55
Refactor Rack Attack configuration (#312)
Quentinchampenois Jun 16, 2023
5eab792
Improves coverage (#330)
armandfardeau Jun 19, 2023
354c200
Make task idempotent (#336)
armandfardeau Jun 22, 2023
fc14834
Add upgrade rake task (#337)
armandfardeau Jun 27, 2023
fc2ff83
Add pull request trigger (#342)
armandfardeau Jul 4, 2023
8dec9f0
Move to K8s namespace
armandfardeau Jul 4, 2023
44b4713
Fix dump_db task
pierreozoux Jul 4, 2023
37f7452
Fix dump path
pierreozoux Jul 4, 2023
6cb7e3e
Use memcached store in production (#347)
armandfardeau Jul 6, 2023
1554269
Create organization, system admin and admin from YAML (#339)
armandfardeau Jul 6, 2023
16d44d0
Fix environment variables issue (#349)
armandfardeau Jul 6, 2023
3eee414
K8S - Check if secondary hosts are valid (#350)
armandfardeau Jul 7, 2023
862dbf0
Fix secondary hosts checker (#351)
armandfardeau Jul 7, 2023
9e8e5fd
K8S - Raise error if file does not exist (#353)
armandfardeau Jul 7, 2023
5ab191c
Add install hook (#352)
armandfardeau Jul 7, 2023
76f3c14
Use Rails cache instead of defining new one (#354)
armandfardeau Jul 7, 2023
1f602b1
Update organization_exporter.rb (#357)
moustachu Jul 11, 2023
83f1877
Fix organization update (#356)
armandfardeau Jul 11, 2023
73b7145
Fix rack attack config (#358)
armandfardeau Jul 11, 2023
f153a2e
Cleanup rake tasks (#288)
Quentinchampenois Jul 11, 2023
1d961ad
Replace HTTPS tests with HTTP (#359)
moustachu Jul 12, 2023
06464b5
Fix invalid users (#361)
armandfardeau Jul 12, 2023
54d3530
Exlude healthchecks from ssl (#363)
armandfardeau Jul 12, 2023
0616609
Fix export when smtp settings are nil (#362)
armandfardeau Jul 13, 2023
f096720
Refactor migrations tools (#329)
armandfardeau Jun 19, 2023
7d92d9c
Refactor Rack Attack configuration (#312)
Quentinchampenois Jun 16, 2023
749436f
Improves coverage (#330)
armandfardeau Jun 19, 2023
c010c60
Make task idempotent (#336)
armandfardeau Jun 22, 2023
96d040b
Add upgrade rake task (#337)
armandfardeau Jun 27, 2023
b20755c
Move to K8s namespace
armandfardeau Jul 4, 2023
5897f01
Fix dump_db task
pierreozoux Jul 4, 2023
63dc682
Fix dump path
pierreozoux Jul 4, 2023
326dd6c
Create organization, system admin and admin from YAML (#339)
armandfardeau Jul 6, 2023
2f1ae81
Fix environment variables issue (#349)
armandfardeau Jul 6, 2023
03b28e8
K8S - Check if secondary hosts are valid (#350)
armandfardeau Jul 7, 2023
378d3b6
Fix secondary hosts checker (#351)
armandfardeau Jul 7, 2023
b5aa1ca
K8S - Raise error if file does not exist (#353)
armandfardeau Jul 7, 2023
2c44536
Add install hook (#352)
armandfardeau Jul 7, 2023
d8f7118
Use Rails cache instead of defining new one (#354)
armandfardeau Jul 7, 2023
3a39524
Update organization_exporter.rb (#357)
moustachu Jul 11, 2023
cb78c2d
Fix organization update (#356)
armandfardeau Jul 11, 2023
7d9ac24
Fix rack attack config (#358)
armandfardeau Jul 11, 2023
9d068aa
Cleanup rake tasks (#288)
Quentinchampenois Jul 11, 2023
5bf58e5
Replace HTTPS tests with HTTP (#359)
moustachu Jul 12, 2023
3e61b47
Fix invalid users (#361)
armandfardeau Jul 12, 2023
a091098
Fix export when smtp settings are nil (#362)
armandfardeau Jul 13, 2023
3d68589
Revert "Add pull request trigger (#342)"
armandfardeau Jul 4, 2023
1a57f14
Refactor migrations tools (#329)
armandfardeau Jun 19, 2023
fdb311f
Refactor Rack Attack configuration (#312)
Quentinchampenois Jun 16, 2023
839fddf
Improves coverage (#330)
armandfardeau Jun 19, 2023
4a60f0a
Make task idempotent (#336)
armandfardeau Jun 22, 2023
186b961
Add upgrade rake task (#337)
armandfardeau Jun 27, 2023
30365d9
Add pull request trigger (#342)
armandfardeau Jul 4, 2023
2b6f2d2
Move to K8s namespace
armandfardeau Jul 4, 2023
d971880
Fix dump_db task
pierreozoux Jul 4, 2023
9f34f0d
Fix dump path
pierreozoux Jul 4, 2023
270ceee
Create organization, system admin and admin from YAML (#339)
armandfardeau Jul 6, 2023
d9e3395
Fix environment variables issue (#349)
armandfardeau Jul 6, 2023
3af193d
K8S - Check if secondary hosts are valid (#350)
armandfardeau Jul 7, 2023
9260404
Fix secondary hosts checker (#351)
armandfardeau Jul 7, 2023
156104e
K8S - Raise error if file does not exist (#353)
armandfardeau Jul 7, 2023
6eeccd7
Add install hook (#352)
armandfardeau Jul 7, 2023
e2d2925
Use Rails cache instead of defining new one (#354)
armandfardeau Jul 7, 2023
3255898
Update organization_exporter.rb (#357)
moustachu Jul 11, 2023
184f05f
Fix organization update (#356)
armandfardeau Jul 11, 2023
3007f14
Fix rack attack config (#358)
armandfardeau Jul 11, 2023
89c5198
Cleanup rake tasks (#288)
Quentinchampenois Jul 11, 2023
2982857
Replace HTTPS tests with HTTP (#359)
moustachu Jul 12, 2023
c5f6425
Fix invalid users (#361)
armandfardeau Jul 12, 2023
c2b2020
Fix export when smtp settings are nil (#362)
armandfardeau Jul 13, 2023
b47cd98
Revert "Add pull request trigger (#342)"
armandfardeau Jul 4, 2023
8bd41c7
Fix offenses
armandfardeau Jul 24, 2023
a2b2efb
Fix sidekiq
armandfardeau Jul 24, 2023
ce234d8
bump: Update rubocop rules
Quentinchampenois Jul 25, 2023
5e557aa
fix: revert locales
Quentinchampenois Jul 25, 2023
f9ce38a
bump: Update docker-compose
Quentinchampenois Jul 25, 2023
329043b
lint: Fix rubocop offenses in migrations
Quentinchampenois Jul 25, 2023
4abe3d5
lint: Fix rubocop offenses
Quentinchampenois Jul 25, 2023
4f0171a
fix: Add missing graphql-ws
Quentinchampenois Jul 25, 2023
6080ba8
fix: Update Gemfile
Quentinchampenois Jul 25, 2023
7dc4d0d
fix: Authentication system specs
Quentinchampenois Jul 25, 2023
4474f56
fix: Revert missing trads
Quentinchampenois Jul 25, 2023
1c5c704
fix: Revert removed trads
Quentinchampenois Jul 25, 2023
c649a4c
fix: Ignore unused locales
Quentinchampenois Jul 25, 2023
0542b19
fix: Add en missing translations
Quentinchampenois Jul 25, 2023
63aac06
fix: Remove unused spec task
Quentinchampenois Jul 25, 2023
7592a2a
fix: CI enforced locales
Quentinchampenois Jul 25, 2023
d9e2895
fix: Downgrade chromedriver in CI
Quentinchampenois Jul 25, 2023
a5b304d
fix: Switch to fr in create_registration specs
Quentinchampenois Jul 25, 2023
aeee271
fix: Switch to fr in system account specs
Quentinchampenois Jul 25, 2023
f2ef691
fix: Move Chromedriver downgrade to system specs
Quentinchampenois Jul 25, 2023
7f40225
fix: Chromedriver version in CI
Quentinchampenois Sep 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ node_modules
public/uploads
deploy
.rubocop*
.overloads
.erb-lint.yml
.env-example
.env
Expand Down
137 changes: 107 additions & 30 deletions .github/workflows/ci_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,20 @@ env:
RAILS_ENV: test
NODE_VERSION: 16.9.1
RUBYOPT: '-W:no-deprecated'
# Set locales available for i18n tasks
ENFORCED_LOCALES: "en,fr"
AVAILABLE_LOCALES: "en,fr"

jobs:
todo:
name: TODO
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- name: "TODO to Issue"
uses: "alstr/todo-to-issue-action@v4"
lint:
name: Lint code
runs-on: ubuntu-latest
Expand All @@ -26,13 +38,80 @@ jobs:
ruby_version: ${{ env.RUBY_VERSION }}
node_version: ${{ env.NODE_VERSION }}
tests:
strategy:
fail-fast: false
matrix:
slice: [ "0-2", "1-2" ]
name: Tests
runs-on: ubuntu-latest
if: "!startsWith(github.head_ref, 'chore/l10n')"
services:
postgres:
image: postgres:11
ports: [ "5432:5432" ]
ports: ["5432:5432"]
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
POSTGRES_PASSWORD: postgres
env:
DATABASE_USERNAME: postgres
DATABASE_PASSWORD: postgres
DATABASE_HOST: localhost
steps:
- uses: rokroskar/[email protected]
if: "github.ref != 'refs/heads/master' || github.ref != 'refs/heads/develop'"
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: yarn install --prefer-offline --frozen-lockfile
- name: Create db
run: |
bundle exec rails parallel:create parallel:migrate
- name: Register cache hash
id: cache-hash
run: |
echo "::set-output name=hash::$(bundle exec rake test:assets_hash)"
- uses: OpenSourcePolitics/cache-precompile-action@master
with:
key: asset-cache-${{ runner.os }}-${{ steps.cache-hash.outputs.hash }}
- run: mkdir -p ./spec/tmp/screenshots
name: Create the screenshots folder
- run: bundle exec rake "test:run[exclude, spec/system/**/*_spec.rb, ${{ matrix.slice }}]"
name: RSpec
- run: ./.github/upload_coverage.sh decidim-app $GITHUB_EVENT_PATH
name: Upload coverage
- uses: actions/upload-artifact@v3
if: always()
with:
name: screenshots
path: ./spec/tmp/screenshots
- uses: actions/upload-artifact@v3
if: always()
with:
name: assets-manifest-${{ matrix.slice }}
path: ./tmp/assets_manifest.json
system_tests:
strategy:
matrix:
slice: [ "0-4", "1-4", "2-4", "3-4" ]
name: System tests
runs-on: ubuntu-latest
services:
postgres:
image: postgres:11
ports: ["5432:5432"]
options: >-
--health-cmd pg_isready
--health-interval 10s
Expand All @@ -44,54 +123,53 @@ jobs:
DATABASE_USERNAME: postgres
DATABASE_PASSWORD: postgres
DATABASE_HOST: localhost
RAILS_ENV: test
# Set locales available for i18n tasks
ENFORCED_LOCALES: "en,fr"
steps:
- uses: rokroskar/[email protected]
if: "github.ref != 'refs/heads/master' || github.ref != 'refs/heads/develop'"
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- uses: actions/checkout@v2.0.0
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true
- uses: actions/setup-node@v1
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Get Yarn cache directory
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Use Yarn cache
uses: actions/cache@v2
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: yarn-${{ hashFiles('**/yarn.lock') }}
- name: Install dependencies
run: yarn install --prefer-offline --frozen-lockfile
- name: Create db
run: |
bundle exec rails db:create
bundle exec rails db:migrate
- name: Precompile assets
bundle exec rails parallel:create parallel:migrate
- name: Register cache hash
id: cache-hash
run: |
bundle exec rake assets:precompile
echo "::set-output name=hash::$(bundle exec rake test:assets_hash)"
- uses: OpenSourcePolitics/cache-precompile-action@master
with:
key: asset-cache-${{ runner.os }}-${{ steps.cache-hash.outputs.hash }}
- run: mkdir -p ./spec/tmp/screenshots
name: Create the screenshots folder
- uses: nanasess/[email protected]
- run: bundle exec rspec
# TODO: Use latest version
- uses: nanasess/setup-chromedriver@v2
with:
chromedriver-version: "114.0.5735.90"
- run: bundle exec rake "test:run[include, spec/system/**/*_spec.rb, ${{ matrix.slice }}]"
name: RSpec
- run: ./.github/upload_coverage.sh $DECIDIM_MODULE $GITHUB_EVENT_PATH
- run: ./.github/upload_coverage.sh decidim-app $GITHUB_EVENT_PATH
name: Upload coverage
- uses: actions/upload-artifact@v2-preview
- uses: actions/upload-artifact@v3
if: always()
with:
name: screenshots
path: ./spec/decidim_dummy_app/tmp/screenshots
path: ./spec/tmp/screenshots
- uses: actions/upload-artifact@v3
if: always()
with:
name: assets-manifest-${{ matrix.slice }}
path: ./tmp/assets_manifest.json
test_build:
name: Test build docker image
runs-on: ubuntu-latest
Expand Down Expand Up @@ -124,7 +202,7 @@ jobs:
build_and_push_image_dev:
name: Build and push image to Registry
if: "github.ref == 'refs/heads/develop'"
needs: [ lint, tests, test_build ]
needs: [lint, tests, system_tests, test_build]
runs-on: ubuntu-latest
steps:
- uses: OpenSourcePolitics/build-and-push-images-action@master
Expand All @@ -133,16 +211,16 @@ jobs:
namespace: ${{ vars.REGISTRY_NAMESPACE }}
password: ${{ secrets.TOKEN }}
image_name: ${{ vars.IMAGE_NAME }}
tag: "develop-${{ github.sha }}"
tag: "develop"
generate_release:
name: Generate release
needs: [ lint, tests, test_build ]
needs: [lint, tests, system_tests, test_build]
if: "github.ref == 'refs/heads/master'"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: mathieudutour/[email protected]
name: Bump vaersion and push tag
name: Bump version and push tag
id: tag_version
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -160,4 +238,3 @@ jobs:
password: ${{ secrets.TOKEN }}
image_name: ${{ vars.IMAGE_NAME }}
tag: ${{ steps.tag_version.outputs.new_tag }}

6 changes: 6 additions & 0 deletions .rubocop_rails.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ Rails/ScopeArgs:

Rails/SkipsModelValidations:
Enabled: true
Exclude:
- db/migrate/*.rb

Rails/Validation:
Include:
Expand All @@ -95,3 +97,7 @@ Rails/Validation:
Rails/BulkChangeTable:
Exclude:
- db/**/*

RSpec/MultipleMemoizedHelpers:
Exclude:
- spec/**/**
43 changes: 32 additions & 11 deletions .rubocop_ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ AllCops:
- "**/Gemfile"
- "**/Rakefile"
Exclude:
- "**/vendor/**/*"
- "vendor/**/*"
- "node_modules/**/*"
- "bin/**/*"
- "db/schema.rb"
- "bin/*"
# Default formatter will be used if no -f/--format option is given.
DefaultFormatter: progress
# Cop names are not displayed in offense messages by default. Change behavior
Expand Down Expand Up @@ -74,6 +74,10 @@ AllCops:
- "(?:^|/)spec/"
- "(?:^|/)test/"

Lint/SafeNavigationChain:
Exclude:
- lib/tasks/migrate.rake

# Indent private/protected/public as deep as method definitions
Layout/AccessModifierIndentation:
EnforcedStyle: indent
Expand Down Expand Up @@ -176,6 +180,15 @@ Layout/ParameterAlignment:
# But it can be overridden by setting this parameter
IndentationWidth: ~

Style/ArrayCoercion:
Description: >-
Use Array() instead of explicit Array check or [*var], when dealing
with a variable you want to treat as an Array, but you're not certain it's an array.
StyleGuide: '#array-coercion'
Safe: false
Enabled: false
VersionAdded: '0.88'

Style/AndOr:
# Whether `and` and `or` are banned only in conditionals (conditionals)
# or completely (always).
Expand Down Expand Up @@ -390,6 +403,10 @@ Style/Copyright:
Style/DocumentationMethod:
RequireForNonPublicMethods: false

Style/MixinUsage:
Exclude:
- "bin/*"

# Multi-line method chaining should be done with leading dots.
Layout/DotPosition:
EnforcedStyle: leading
Expand Down Expand Up @@ -504,6 +521,8 @@ Style/FormatStringToken:

Style/FrozenStringLiteralComment:
EnforcedStyle: always
Exclude:
- bin/*
SupportedStyles:
- never
# `always` will always add the frozen string literal comment to a file
Expand Down Expand Up @@ -1059,6 +1078,10 @@ Naming/VariableNumber:
- snake_case
- normalcase
- non_integer
Exclude:
- "**/*/dummy_authorization_handler.rb"
- "app/controllers/decidim/proposals/proposals_controller.rb"
- "spec/system/homepage_spec.rb"

# WordArray enforces how array literals of word-like strings should be expressed.
Style/WordArray:
Expand All @@ -1075,6 +1098,10 @@ Style/WordArray:
# The regular expression WordRegex decides what is considered a word.
WordRegex: !ruby/regexp '/\A[\p{Word}\n\t]+\z/'

Style/MutableConstant:
Exclude:
- "bin/overloads"

##################### Metrics ##################################

Metrics/AbcSize:
Expand Down Expand Up @@ -1183,8 +1210,8 @@ Layout/LineLength:
- http
- https
Exclude:
- "**/spec/**/*"
- "db/**/*"
- "spec/**/*"
- "db/schema.rb"

# Checks for unused block arguments
Lint/UnusedBlockArgument:
Expand Down Expand Up @@ -1215,14 +1242,11 @@ RSpec/ContextWording:
RSpec/DescribeClass:
Exclude:
- spec/gemfiles_spec.rb
- spec/js_bundles_spec.rb
- spec/webpacker_spec.rb
- spec/i18n_spec.rb
- "**/*/spec/**/*_badge_spec.rb"
- "**/tasks/**/*"

RSpec/EmptyExampleGroup:
Enabled: true

RSpec/ExampleLength:
Max: 49

Expand All @@ -1241,9 +1265,6 @@ RSpec/MessageSpies:
RSpec/MultipleExpectations:
Enabled: false

RSpec/MultipleMemoizedHelpers:
Max: 35

RSpec/NestedGroups:
Max: 7

Expand Down
Loading
Loading