diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 00000000..958bd8e3
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,41 @@
+name: CI
+on: [push, pull_request]
+jobs:
+ test:
+ runs-on: ubuntu-22.04
+
+ services:
+ postgres:
+ image: postgres
+ env:
+ POSTGRES_DB: ci_test
+ POSTGRES_PASSWORD: citestpassword
+ # Set health checks to wait until postgres has started
+ options: >-
+ --health-cmd pg_isready
+ --health-interval 10s
+ --health-timeout 5s
+ --health-retries 5
+ ports:
+ # Maps tcp port 5432 on service container to the host
+ - 5432:5432
+ redis:
+ image: redis
+ # Set health checks to wait until redis has started
+ options: >-
+ --health-cmd "redis-cli ping"
+ --health-interval 10s
+ --health-timeout 5s
+ --health-retries 5
+ ports:
+ # Maps port 6379 on service container to the host
+ - 6379:6379
+
+ steps:
+ - uses: actions/checkout@v2
+ - uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: 3.1
+ bundler-cache: true
+ - run: sudo apt-get -y install chromium-browser
+ - run: bundle exec rake
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index ceca0466..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-language: ruby
-rvm:
- - "2.6.0"
-services:
- - redis-server
- - postgresql
-before_script:
- - psql -c 'create database travis_ci_test;' -U postgres
-sudo: false
-bundler_args: --jobs=1
-before_install: gem install bundler
diff --git a/Gemfile b/Gemfile
index 78307e1c..a53b83f5 100644
--- a/Gemfile
+++ b/Gemfile
@@ -29,7 +29,7 @@ gem 'geoip'
gem 'io-extra', require: 'io/extra'
#gem 'rye'
gem 'base32'
-gem 'coveralls', require: false
+gem 'coveralls_reborn', require: false
gem 'sanitize'
gem 'will_paginate'
gem 'simpleidn'
diff --git a/Gemfile.lock b/Gemfile.lock
index 19a2042d..e079490a 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -50,12 +50,11 @@ GEM
coderay (1.1.3)
concurrent-ruby (1.1.10)
connection_pool (2.3.0)
- coveralls (0.7.1)
- multi_json (~> 1.3)
- rest-client
- simplecov (>= 0.7)
- term-ansicolor
- thor
+ coveralls_reborn (0.25.0)
+ simplecov (>= 0.18.1, < 0.22.0)
+ term-ansicolor (~> 1.6)
+ thor (>= 0.20.3, < 2.0)
+ tins (~> 1.16)
crack (0.4.5)
rexml
crass (1.0.6)
@@ -318,7 +317,7 @@ DEPENDENCIES
bcrypt
capybara
certified
- coveralls
+ coveralls_reborn
dav4rack!
erubis
fabrication
diff --git a/README.md b/README.md
index 4cfcefe0..b6cc2688 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
# Neocities.org
-[](https://travis-ci.org/neocities/neocities)
+[](https://github.com/neocities/neocities/actions?query=workflow%3ACI)
[](https://coveralls.io/github/neocities/neocities?branch=master)
The web site for Neocities! It's open source. Want a feature on the site? Send a pull request!
diff --git a/app_helpers.rb b/app_helpers.rb
index c09f59f7..3ad82439 100644
--- a/app_helpers.rb
+++ b/app_helpers.rb
@@ -119,7 +119,7 @@ def flash_display(opts={})
end
def hcaptcha_valid?
- return true if ENV['RACK_ENV'] == 'test' || ENV['TRAVIS']
+ return true if ENV['RACK_ENV'] == 'test' || ENV['CI']
return false unless params[:'h-captcha-response']
resp = Net::HTTP.get URI(
diff --git a/config.yml.travis b/config.yml.ci
similarity index 90%
rename from config.yml.travis
rename to config.yml.ci
index a92bca0d..7425457d 100644
--- a/config.yml.travis
+++ b/config.yml.ci
@@ -1,4 +1,4 @@
-database: 'postgres://postgres@localhost/travis_ci_test'
+database: 'postgres://postgres:citestpassword@localhost/ci_test'
database_pool: 1
session_secret: 's3cr3t'
email_unsubscribe_token: "somethingrandomderrrrp"
diff --git a/environment.rb b/environment.rb
index 54110bf3..7b1d9fb8 100644
--- a/environment.rb
+++ b/environment.rb
@@ -24,8 +24,8 @@ end
Dir['./ext/**/*.rb'].each {|f| require f}
# :nocov:
-if ENV['TRAVIS']
- $config = YAML.load_file File.join(DIR_ROOT, 'config.yml.travis')
+if ENV['CI']
+ $config = YAML.load_file File.join(DIR_ROOT, 'config.yml.ci')
else
begin
$config = YAML.load_file(File.join(DIR_ROOT, 'config.yml'))[ENV['RACK_ENV']]
diff --git a/models/site.rb b/models/site.rb
index 784c6f97..2b976796 100644
--- a/models/site.rb
+++ b/models/site.rb
@@ -720,8 +720,8 @@ class Site < Sequel::Model
return false unless valid_file_mime_type_and_ext?(mime_type, extname)
- # clamdscan doesn't work on travis for testing
- return true if ENV['TRAVIS'] == 'true'
+ # clamdscan doesn't work on continuous integration for testing
+ return true if ENV['CI'] == 'true'
File.chmod 0666, uploaded_file[:tempfile].path
line = Terrapin::CommandLine.new(
diff --git a/tests/workers/archive_worker_tests.rb b/tests/workers/archive_worker_tests.rb
index ff79746a..989dc74a 100644
--- a/tests/workers/archive_worker_tests.rb
+++ b/tests/workers/archive_worker_tests.rb
@@ -2,7 +2,7 @@ require_relative '../environment.rb'
describe ArchiveWorker do
it 'stores an IPFS archive' do
- return if ENV['TRAVIS']
+ return if ENV['CI']
site = Fabricate :site
ipfs_hash = site.add_to_ipfs
ArchiveWorker.new.perform site.id
diff --git a/views/layout.erb b/views/layout.erb
index 232d366a..b4ca497b 100644
--- a/views/layout.erb
+++ b/views/layout.erb
@@ -15,6 +15,8 @@
+
+
<% if meta_robots %>