Merge commit 'c1e70a2072
' into kb_migration_development
This commit is contained in:
commit
dd05f2b58c
15 changed files with 89 additions and 43 deletions
10
.github/workflows/test-migrations-one-step.yml
vendored
10
.github/workflows/test-migrations-one-step.yml
vendored
|
@ -23,9 +23,17 @@ jobs:
|
||||||
needs: pre_job
|
needs: pre_job
|
||||||
if: needs.pre_job.outputs.should_skip != 'true'
|
if: needs.pre_job.outputs.should_skip != 'true'
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
postgres:
|
||||||
|
- 14-alpine
|
||||||
|
- 15-alpine
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:14-alpine
|
image: postgres:${{ matrix.postgres}}
|
||||||
env:
|
env:
|
||||||
POSTGRES_PASSWORD: postgres
|
POSTGRES_PASSWORD: postgres
|
||||||
POSTGRES_USER: postgres
|
POSTGRES_USER: postgres
|
||||||
|
|
10
.github/workflows/test-migrations-two-step.yml
vendored
10
.github/workflows/test-migrations-two-step.yml
vendored
|
@ -23,9 +23,17 @@ jobs:
|
||||||
needs: pre_job
|
needs: pre_job
|
||||||
if: needs.pre_job.outputs.should_skip != 'true'
|
if: needs.pre_job.outputs.should_skip != 'true'
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
postgres:
|
||||||
|
- 14-alpine
|
||||||
|
- 15-alpine
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:14-alpine
|
image: postgres:${{ matrix.postgres}}
|
||||||
env:
|
env:
|
||||||
POSTGRES_PASSWORD: postgres
|
POSTGRES_PASSWORD: postgres
|
||||||
POSTGRES_USER: postgres
|
POSTGRES_USER: postgres
|
||||||
|
|
|
@ -55,7 +55,7 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
ENV DEBIAN_FRONTEND="noninteractive" \
|
ENV DEBIAN_FRONTEND="noninteractive" \
|
||||||
PATH="${PATH}:/opt/ruby/bin:/opt/mastodon/bin"
|
PATH="${PATH}:/opt/ruby/bin:/opt/mastodon/bin"
|
||||||
|
|
||||||
# Ignoreing these here since we don't want to pin any versions and the Debian image removes apt-get content after use
|
# Ignoring these here since we don't want to pin any versions and the Debian image removes apt-get content after use
|
||||||
# hadolint ignore=DL3008,DL3009
|
# hadolint ignore=DL3008,DL3009
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
echo "Etc/UTC" > /etc/localtime && \
|
echo "Etc/UTC" > /etc/localtime && \
|
||||||
|
|
85
Gemfile
85
Gemfile
|
@ -99,54 +99,87 @@ gem 'json-ld'
|
||||||
gem 'json-ld-preloaded', '~> 3.2'
|
gem 'json-ld-preloaded', '~> 3.2'
|
||||||
gem 'rdf-normalize', '~> 0.5'
|
gem 'rdf-normalize', '~> 0.5'
|
||||||
|
|
||||||
group :development, :test do
|
gem 'private_address_check', '~> 0.5'
|
||||||
gem 'fabrication', '~> 2.30'
|
|
||||||
gem 'fuubar', '~> 2.5'
|
|
||||||
gem 'i18n-tasks', '~> 1.0', require: false
|
|
||||||
gem 'rspec-rails', '~> 6.0'
|
|
||||||
gem 'rspec_chunked', '~> 0.6'
|
|
||||||
|
|
||||||
gem 'rubocop-capybara', require: false
|
|
||||||
gem 'rubocop-performance', require: false
|
|
||||||
gem 'rubocop-rails', require: false
|
|
||||||
gem 'rubocop-rspec', require: false
|
|
||||||
gem 'rubocop', require: false
|
|
||||||
end
|
|
||||||
|
|
||||||
group :production, :test do
|
|
||||||
gem 'private_address_check', '~> 0.5'
|
|
||||||
end
|
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
gem 'capybara', '~> 3.39'
|
# RSpec runner for rails
|
||||||
gem 'climate_control'
|
gem 'rspec-rails', '~> 6.0'
|
||||||
gem 'faker', '~> 3.2'
|
|
||||||
gem 'json-schema', '~> 4.0'
|
# Used to split testing into chunks in CI
|
||||||
gem 'rack-test', '~> 2.1'
|
gem 'rspec_chunked', '~> 0.6'
|
||||||
gem 'rails-controller-testing', '~> 1.0'
|
|
||||||
gem 'rspec_junit_formatter', '~> 0.6'
|
# RSpec progress bar formatter
|
||||||
|
gem 'fuubar', '~> 2.5'
|
||||||
|
|
||||||
|
# Extra RSpec extenion methods and helpers for sidekiq
|
||||||
gem 'rspec-sidekiq', '~> 3.1'
|
gem 'rspec-sidekiq', '~> 3.1'
|
||||||
|
|
||||||
|
# Browser integration testing
|
||||||
|
gem 'capybara', '~> 3.39'
|
||||||
|
|
||||||
|
# Used to mock environment variables
|
||||||
|
gem 'climate_control', '~> 0.2'
|
||||||
|
|
||||||
|
# Generating fake data for specs
|
||||||
|
gem 'faker', '~> 3.2'
|
||||||
|
|
||||||
|
# Generate test objects for specs
|
||||||
|
gem 'fabrication', '~> 2.30'
|
||||||
|
|
||||||
|
# Add back helpers functions removed in Rails 5.1
|
||||||
|
gem 'rails-controller-testing', '~> 1.0'
|
||||||
|
|
||||||
|
# Validate schemas in specs
|
||||||
|
gem 'json-schema', '~> 4.0'
|
||||||
|
|
||||||
|
# Test harness fo rack components
|
||||||
|
gem 'rack-test', '~> 2.1'
|
||||||
|
|
||||||
|
# Coverage formatter for RSpec test if DISABLE_SIMPLECOV is false
|
||||||
gem 'simplecov', '~> 0.22', require: false
|
gem 'simplecov', '~> 0.22', require: false
|
||||||
|
|
||||||
|
# Stub web requests for specs
|
||||||
gem 'webmock', '~> 3.18'
|
gem 'webmock', '~> 3.18'
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
|
# Code linting CLI and plugins
|
||||||
|
gem 'rubocop', require: false
|
||||||
|
gem 'rubocop-capybara', require: false
|
||||||
|
gem 'rubocop-performance', require: false
|
||||||
|
gem 'rubocop-rails', require: false
|
||||||
|
gem 'rubocop-rspec', require: false
|
||||||
|
|
||||||
|
# Annotates modules with schema
|
||||||
gem 'annotate', '~> 3.2'
|
gem 'annotate', '~> 3.2'
|
||||||
|
|
||||||
|
# Enhanced error message pages for development
|
||||||
gem 'better_errors', '~> 2.9'
|
gem 'better_errors', '~> 2.9'
|
||||||
gem 'binding_of_caller', '~> 1.0'
|
gem 'binding_of_caller', '~> 1.0'
|
||||||
|
|
||||||
|
# Preview mail in the browser
|
||||||
gem 'letter_opener', '~> 1.8'
|
gem 'letter_opener', '~> 1.8'
|
||||||
gem 'letter_opener_web', '~> 2.0'
|
gem 'letter_opener_web', '~> 2.0'
|
||||||
gem 'memory_profiler'
|
|
||||||
|
# Security analysis CLI tools
|
||||||
gem 'brakeman', '~> 5.4', require: false
|
gem 'brakeman', '~> 5.4', require: false
|
||||||
gem 'bundler-audit', '~> 0.9', require: false
|
gem 'bundler-audit', '~> 0.9', require: false
|
||||||
|
|
||||||
|
# Linter CLI for HAML files
|
||||||
gem 'haml_lint', require: false
|
gem 'haml_lint', require: false
|
||||||
|
|
||||||
|
# Deployment automation
|
||||||
gem 'capistrano', '~> 3.17'
|
gem 'capistrano', '~> 3.17'
|
||||||
gem 'capistrano-rails', '~> 1.6'
|
gem 'capistrano-rails', '~> 1.6'
|
||||||
gem 'capistrano-rbenv', '~> 2.2'
|
gem 'capistrano-rbenv', '~> 2.2'
|
||||||
gem 'capistrano-yarn', '~> 2.0'
|
gem 'capistrano-yarn', '~> 2.0'
|
||||||
|
|
||||||
gem 'stackprof'
|
# Validate missing i18n keys
|
||||||
|
gem 'i18n-tasks', '~> 1.0', require: false
|
||||||
|
|
||||||
|
# Profiling tools
|
||||||
|
gem 'memory_profiler', require: false
|
||||||
|
gem 'stackprof', require: false
|
||||||
end
|
end
|
||||||
|
|
||||||
group :production do
|
group :production do
|
||||||
|
|
|
@ -601,8 +601,6 @@ GEM
|
||||||
sidekiq (>= 2.4.0)
|
sidekiq (>= 2.4.0)
|
||||||
rspec-support (3.12.0)
|
rspec-support (3.12.0)
|
||||||
rspec_chunked (0.6)
|
rspec_chunked (0.6)
|
||||||
rspec_junit_formatter (0.6.0)
|
|
||||||
rspec-core (>= 2, < 4, != 2.12.0)
|
|
||||||
rubocop (1.50.2)
|
rubocop (1.50.2)
|
||||||
json (~> 2.3)
|
json (~> 2.3)
|
||||||
parallel (~> 1.10)
|
parallel (~> 1.10)
|
||||||
|
@ -787,7 +785,7 @@ DEPENDENCIES
|
||||||
capybara (~> 3.39)
|
capybara (~> 3.39)
|
||||||
charlock_holmes (~> 0.7.7)
|
charlock_holmes (~> 0.7.7)
|
||||||
chewy (~> 7.3)
|
chewy (~> 7.3)
|
||||||
climate_control
|
climate_control (~> 0.2)
|
||||||
cocoon (~> 1.2)
|
cocoon (~> 1.2)
|
||||||
color_diff (~> 0.1)
|
color_diff (~> 0.1)
|
||||||
concurrent-ruby
|
concurrent-ruby
|
||||||
|
@ -866,7 +864,6 @@ DEPENDENCIES
|
||||||
rspec-rails (~> 6.0)
|
rspec-rails (~> 6.0)
|
||||||
rspec-sidekiq (~> 3.1)
|
rspec-sidekiq (~> 3.1)
|
||||||
rspec_chunked (~> 0.6)
|
rspec_chunked (~> 0.6)
|
||||||
rspec_junit_formatter (~> 0.6)
|
|
||||||
rubocop
|
rubocop
|
||||||
rubocop-capybara
|
rubocop-capybara
|
||||||
rubocop-performance
|
rubocop-performance
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import * as html from '../html';
|
import * as html from '../html';
|
||||||
|
|
||||||
describe('html', () => {
|
describe('html', () => {
|
||||||
describe('unsecapeHTML', () => {
|
describe('unescapeHTML', () => {
|
||||||
it('returns unescaped HTML', () => {
|
it('returns unescaped HTML', () => {
|
||||||
const output = html.unescapeHTML('<p>lorem</p><p>ipsum</p><br><br>');
|
const output = html.unescapeHTML('<p>lorem</p><p>ipsum</p><br><br>');
|
||||||
expect(output).toEqual('lorem\n\nipsum\n<br>');
|
expect(output).toEqual('lorem\n\nipsum\n<br>');
|
||||||
|
|
|
@ -24,7 +24,7 @@ class PostProcessMediaWorker
|
||||||
media_attachment.processing = :in_progress
|
media_attachment.processing = :in_progress
|
||||||
media_attachment.save
|
media_attachment.save
|
||||||
|
|
||||||
# Because paperclip-av-transcover overwrites this attribute
|
# Because paperclip-av-transcoder overwrites this attribute
|
||||||
# we will save it here and restore it after reprocess is done
|
# we will save it here and restore it after reprocess is done
|
||||||
previous_meta = media_attachment.file_meta
|
previous_meta = media_attachment.file_meta
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ module Mastodon
|
||||||
desc 'remove', 'Remove remote media files, headers or avatars'
|
desc 'remove', 'Remove remote media files, headers or avatars'
|
||||||
long_desc <<-DESC
|
long_desc <<-DESC
|
||||||
Removes locally cached copies of media attachments (and optionally profile
|
Removes locally cached copies of media attachments (and optionally profile
|
||||||
headers and avatars) from other servers. By default, only media attachements
|
headers and avatars) from other servers. By default, only media attachments
|
||||||
are removed.
|
are removed.
|
||||||
The --days option specifies how old media attachments have to be before
|
The --days option specifies how old media attachments have to be before
|
||||||
they are removed. In case of avatars and headers, it specifies how old
|
they are removed. In case of avatars and headers, it specifies how old
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace :tests do
|
||||||
end
|
end
|
||||||
|
|
||||||
if Account.where(domain: Rails.configuration.x.local_domain).exists?
|
if Account.where(domain: Rails.configuration.x.local_domain).exists?
|
||||||
puts 'Faux remote accounts not properly claned up'
|
puts 'Faux remote accounts not properly cleaned up'
|
||||||
exit(1)
|
exit(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ RSpec.describe Admin::ConfirmationsController do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'POST #resernd' do
|
describe 'POST #resend' do
|
||||||
subject { post :resend, params: { account_id: user.account.id } }
|
subject { post :resend, params: { account_id: user.account.id } }
|
||||||
|
|
||||||
let!(:user) { Fabricate(:user, confirmed_at: confirmed_at) }
|
let!(:user) { Fabricate(:user, confirmed_at: confirmed_at) }
|
||||||
|
|
|
@ -129,7 +129,7 @@ describe ApplicationController do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with request with unparseable Date header' do
|
context 'with request with unparsable Date header' do
|
||||||
before do
|
before do
|
||||||
get :success
|
get :success
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ RSpec.describe AccountMigration do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with unresolveable account' do
|
context 'with unresolvable account' do
|
||||||
let(:target_acct) { 'target@remote' }
|
let(:target_acct) { 'target@remote' }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
|
|
|
@ -698,7 +698,7 @@ RSpec.describe Account do
|
||||||
expect(subject.match('Check this out https://medium.com/@alice/some-article#.abcdef123')).to be_nil
|
expect(subject.match('Check this out https://medium.com/@alice/some-article#.abcdef123')).to be_nil
|
||||||
end
|
end
|
||||||
|
|
||||||
xit 'does not match URL querystring' do
|
xit 'does not match URL query string' do
|
||||||
expect(subject.match('https://example.com/?x=@alice')).to be_nil
|
expect(subject.match('https://example.com/?x=@alice')).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -90,7 +90,7 @@ RSpec.describe UserSettings::Setting do
|
||||||
|
|
||||||
describe '#key' do
|
describe '#key' do
|
||||||
context 'when there is no namespace' do
|
context 'when there is no namespace' do
|
||||||
it 'returnsn a symbol' do
|
it 'returns a symbol' do
|
||||||
expect(subject.key).to eq :foo
|
expect(subject.key).to eq :foo
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -181,7 +181,7 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
|
||||||
'@context': ['https://www.w3.org/ns/activitystreams'],
|
'@context': ['https://www.w3.org/ns/activitystreams'],
|
||||||
id: "https://foo.test/users/#{i}/featured",
|
id: "https://foo.test/users/#{i}/featured",
|
||||||
type: 'OrderedCollection',
|
type: 'OrderedCollection',
|
||||||
totelItems: 1,
|
totalItems: 1,
|
||||||
orderedItems: [status_json],
|
orderedItems: [status_json],
|
||||||
}.with_indifferent_access
|
}.with_indifferent_access
|
||||||
webfinger = {
|
webfinger = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue