diff --git a/.github/workflows/deploy-api.yml b/.github/workflows/deploy-api.yml index cc41574..dd4a17d 100644 --- a/.github/workflows/deploy-api.yml +++ b/.github/workflows/deploy-api.yml @@ -13,6 +13,13 @@ env: jobs: deploy-api: runs-on: ubuntu-latest + strategy: + matrix: + include: + - cluster: gitmega-com + service: campsite-api-staging-service-njx3hjyx + - cluster: gitmono-com-mega-app + service: campsite-api-service timeout-minutes: 30 steps: # - name: GitHub App token @@ -30,13 +37,12 @@ jobs: # id: git-info # run: .github/set-git-message - - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: us-east-1 + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: us-east-1 - name: Login to Amazon ECR Public id: login-ecr-public @@ -54,12 +60,12 @@ jobs: run: | docker build -t $REGISTRY/$REGISTRY_ALIAS/$REPOSITORY:$IMAGE_TAG . --build-arg RUBY_VERSION=${{env.RUBY_VERSION}} --build-arg NODE_VERSION=${{env.NODE_VERSION}} --build-arg BUNDLER_VERSION=${{env.BUNDLER_VERSION}} docker push $REGISTRY/$REGISTRY_ALIAS/$REPOSITORY:$IMAGE_TAG - + - name: Force ECS redeploy run: | aws ecs update-service \ - --cluster gitmega-com \ - --service campsite-api-staging-service-njx3hjyx \ + --cluster ${{ matrix.cluster }} \ + --service ${{ matrix.service }} \ --force-new-deployment env: AWS_REGION: ap-southeast-2 @@ -89,9 +95,9 @@ jobs: # thread_id: ${{ env.DEPLOY_QUEUE_THREAD_ID }} # content: | # **🛤️ API deployed** - + # [${{ github.actor }}](https://github.com/${{ github.actor }}) deployed ${{ steps.git-info.outputs.escaped-git-message }} - + # [${{ steps.git-info.outputs.git-sha }}](https://github.com/campsite/campsite/commit/${{ github.sha }}) · [Run logs](https://github.com/campsite/campsite/actions/runs/${{ github.run_id }}) # - name: Notify failure @@ -103,7 +109,7 @@ jobs: # thread_id: ${{ env.DEPLOY_QUEUE_THREAD_ID }} # content: | # **🚨 API deploy failed!** - + # [${{ github.actor }}](https://github.com/${{ github.actor }}) tried to deploy ${{ steps.git-info.outputs.escaped-git-message }} - + # [${{ steps.git-info.outputs.git-sha }}](https://github.com/campsite/campsite/commit/${{ github.sha }}) · [Run logs](https://github.com/campsite/campsite/actions/runs/${{ github.run_id }}) diff --git a/api/config/credentials/staging-gitmono.yml.enc b/api/config/credentials/staging-gitmono.yml.enc new file mode 100644 index 0000000..ca686d5 --- /dev/null +++ b/api/config/credentials/staging-gitmono.yml.enc @@ -0,0 +1 @@ +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--HNKheXZXT1i2thyh--wOXKgiAjcctxoeLQ/wlJMg== \ No newline at end of file diff --git a/api/config/credentials/staging-openatom.yml.enc b/api/config/credentials/staging-openatom.yml.enc index 66c4cb1..81d17d8 100644 --- a/api/config/credentials/staging-openatom.yml.enc +++ b/api/config/credentials/staging-openatom.yml.enc @@ -1 +1 @@ -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--F9+Muo4c/jEdx0Ye--XnUmUVbfD9AuoWyj2FN86Q== \ No newline at end of file +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--vX0P5KeM4gA4W2/r--OC0R9oviJDSpJ/325mSDpA== \ No newline at end of file diff --git a/api/config/database.yml b/api/config/database.yml index b69bb14..4796742 100644 --- a/api/config/database.yml +++ b/api/config/database.yml @@ -112,4 +112,40 @@ staging-nju: database: campsite_api host: <%= Rails.application.credentials.dig(:mysql, :host) %> ssl_mode: required + replica: true + +staging-openatom: + primary: + <<: *default + username: <%= Rails.application.credentials.dig(:mysql, :username) %> + password: <%= Rails.application.credentials.dig(:mysql, :password) %> + database: campsite_api + host: <%= Rails.application.credentials.dig(:mysql, :host) %> + ssl_mode: required + + primary_replica: + <<: *default + username: <%= Rails.application.credentials.dig(:mysql, :username) %> + password: <%= Rails.application.credentials.dig(:mysql, :password) %> + database: campsite_api + host: <%= Rails.application.credentials.dig(:mysql, :host) %> + ssl_mode: required + replica: true + +staging-gitmono: + primary: + <<: *default + username: <%= Rails.application.credentials.dig(:mysql, :username) %> + password: <%= Rails.application.credentials.dig(:mysql, :password) %> + database: campsite_api_gitmono + host: <%= Rails.application.credentials.dig(:mysql, :host) %> + ssl_mode: required + + primary_replica: + <<: *default + username: <%= Rails.application.credentials.dig(:mysql, :username) %> + password: <%= Rails.application.credentials.dig(:mysql, :password) %> + database: campsite_api_gitmono + host: <%= Rails.application.credentials.dig(:mysql, :host) %> + ssl_mode: required replica: true \ No newline at end of file diff --git a/api/config/environments/staging-gitmono.rb b/api/config/environments/staging-gitmono.rb new file mode 100644 index 0000000..de8b5f8 --- /dev/null +++ b/api/config/environments/staging-gitmono.rb @@ -0,0 +1,118 @@ +# frozen_string_literal: true + +require "active_support/core_ext/integer/time" + +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + config.console1984.protected_environments = [:production, :staging] + config.console1984.ask_for_username_if_empty = true + + # Code is not reloaded between requests. + config.cache_classes = true + + # Eager load code on boot. This eager loads most of Rails and + # your application in memory, allowing both threaded web servers + # and those relying on copy on write to perform better. + # Rake tasks automatically ignore this option for performance. + config.eager_load = true + + # Full error reports are disabled and caching is turned on. + config.consider_all_requests_local = false + config.action_controller.perform_caching = true + + # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] + # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). + # config.require_master_key = true + + # Disable serving static files from the `/public` folder by default since + # Apache or NGINX already handles this. + config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? + + # Compress CSS using a preprocessor. + # config.assets.css_compressor = :sass + + # Do not fallback to assets pipeline if a precompiled asset is missed. + config.assets.compile = false + + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.asset_host = "http://assets.example.com" + + # Specifies the header that your server uses for sending files. + # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache + # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX + + # Disable IP spoofing check since Fly.io's load balancer changes headers + config.action_dispatch.ip_spoofing_check = false + + # Store uploaded files on the local file system (see config/storage.yml for options). + # config.active_storage.service = :local + + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. + # config.force_ssl = true + + # Include generic and useful information about system operation, but avoid logging too much + # information to avoid inadvertent exposure of personally identifiable information (PII). + config.log_level = :debug + + # Prepend all log lines with the following tags. + config.log_tags = [:request_id] + + # Use a different cache store in production. + # config.cache_store = :mem_cache_store + + # Use a real queuing backend for Active Job (and separate queues per environment). + # config.active_job.queue_adapter = :resque + # config.active_job.queue_name_prefix = "campsite_api_production" + + config.action_mailer.perform_caching = false + config.action_mailer.default_url_options = { host: "campsite.com" } + config.action_mailer.delivery_method = :postmark + config.action_mailer.postmark_settings = { + api_token: Rails.application.credentials&.postmark&.api_token, + } + + # Ignore bad email addresses and do not raise email delivery errors. + # Set this to true and configure the email server for immediate delivery to raise delivery errors. + config.action_mailer.raise_delivery_errors = true + + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to + # the I18n.default_locale when a translation cannot be found). + config.i18n.fallbacks = true + + # Don't log any deprecations. + config.active_support.report_deprecations = false + + # Use default logging formatter so that PID and timestamp are not suppressed. + config.log_formatter = Logger::Formatter.new + + # Use a different logger for distributed setups. + # require "syslog/logger" + # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new "app-name") + + if ENV["RAILS_LOG_TO_STDOUT"].present? + logger = ActiveSupport::Logger.new($stdout) + logger.formatter = config.log_formatter + config.logger = ActiveSupport::TaggedLogging.new(logger) + end + + # Do not dump schema after migrations. + config.active_record.dump_schema_after_migration = false + + config.active_record.async_query_executor = :global_thread_pool + + config.hosts << "admin.gitmono.com" + config.hosts << "auth.gitmono.com" + config.hosts << "api.gitmono.com" + config.hosts << "gitmono.com" + config.hosts << "localhost" + config.hosts << "127.0.0.1" + + config.hosts += [ + /10\.\d+\.\d+\.\d+/, + /172\.16\.\d+\.\d+/, + /172\.17\.\d+\.\d+/, + /172\.31\.\d+\.\d+/, + /192\.168\.\d+\.\d+/, + ] +end diff --git a/api/config/environments/staging-openatom.rb b/api/config/environments/staging-openatom.rb index 5aa86be..42b3a04 100644 --- a/api/config/environments/staging-openatom.rb +++ b/api/config/environments/staging-openatom.rb @@ -8,6 +8,8 @@ config.console1984.protected_environments = [:production, :staging] config.console1984.ask_for_username_if_empty = true + config.action_dispatch.tld_length = 2 + # Code is not reloaded between requests. config.cache_classes = true diff --git a/api/config/initializers/cors.rb b/api/config/initializers/cors.rb index bf7b576..3bdf15a 100644 --- a/api/config/initializers/cors.rb +++ b/api/config/initializers/cors.rb @@ -18,7 +18,8 @@ "http://local.gitmega.com", "https://git.gitmega.com", "http://app.gitmega.nju:8080", - "https://app.xuanwu.openatom.cn" + "https://app.xuanwu.openatom.cn", + "https://demo.gitmono.com" resource "*", headers: :any, diff --git a/api/config/initializers/session_store.rb b/api/config/initializers/session_store.rb index da6cf24..9e04eeb 100644 --- a/api/config/initializers/session_store.rb +++ b/api/config/initializers/session_store.rb @@ -1,9 +1,17 @@ # frozen_string_literal: true +domain = + case Rails.env + when "staging-openatom" + ".xuanwu.openatom.cn" + else + :all + end + Rails.application.config.session_store( :cookie_store, key: "_campsite_api_session", - domain: :all, + domain: domain, same_site: :lax, expire_after: 1.month, secure: false,