You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
docuseal/vendor/bundle/ruby/4.0.0/gems/azure-blob-0.8.0/Rakefile

102 lines
3.1 KiB

# frozen_string_literal: true
require "bundler/gem_tasks"
require "minitest/test_task"
require "azure_blob"
require_relative "test/support/app_service_vpn"
require_relative "test/support/azure_vm_vpn"
require_relative "test/support/aks_vpn"
require_relative "test/support/azurite"
Minitest::TestTask.create(:test_rails) do
self.test_globs = [ "test/rails/**/test_*.rb",
"test/rails/**/*_test.rb", ]
end
Minitest::TestTask.create(:test_client) do
self.test_globs = [ "test/client/**/test_*.rb",
"test/client/**/*_test.rb", ]
end
task default: %i[test]
task :test do
[
"AZURE_ACCOUNT_NAME",
"AZURE_PRIVATE_CONTAINER",
"AZURE_PUBLIC_CONTAINER",
].each do |env|
value = ENV[env]
raise "#{env} variable need to be set if you are using the nix/devenv environment, consider running generate-env-file" if value.nil? || value.empty?
end
Rake::Task["test_client"].execute
Rake::Task["test_rails"].execute
end
task :test_app_service do |t|
vpn = AppServiceVpn.new
ENV["IDENTITY_ENDPOINT"] = vpn.endpoint
ENV["IDENTITY_HEADER"] = vpn.header
Rake::Task["test_entra_id"].execute
ensure
vpn.kill
end
task :test_azure_vm do |t|
vpn = AzureVmVpn.new
Rake::Task["test_entra_id"].execute
ensure
vpn.kill
end
task :test_aks do |t|
vpn = AksVpn.new
ENV["AZURE_CLIENT_ID"] = vpn.client_id
ENV["AZURE_TENANT_ID"] = vpn.tenant_id
ENV["AZURE_FEDERATED_TOKEN_FILE"] = vpn.token_file
Rake::Task["test_entra_id"].execute
ensure
vpn.kill
end
task :test_azurite do |t|
azurite = Azurite.new
# Azurite well-known credentials
# https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=visual-studio%2Cblob-storage#well-known-storage-account-and-key
account_name = ENV["AZURE_ACCOUNT_NAME"] = "devstoreaccount1"
access_key = ENV["AZURE_ACCESS_KEY"] = "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
host = ENV["STORAGE_BLOB_HOST"] = "http://127.0.0.1:10000/devstoreaccount1"
ENV["TESTING_AZURITE"] = "true"
# Create containers
private_container = AzureBlob::Client.new(account_name:, access_key:, host:, container: ENV["AZURE_PRIVATE_CONTAINER"])
public_container = AzureBlob::Client.new(account_name:, access_key:, host:, container: ENV["AZURE_PUBLIC_CONTAINER"])
# public_container.delete_container
private_container.create_container unless private_container.get_container_properties.present?
public_container.create_container(public_access: true) unless public_container.get_container_properties.present?
Rake::Task["test_client"].execute
Rake::Task["test_rails"].execute
ensure
azurite.kill
end
task :test_entra_id do |t|
ENV["AZURE_ACCESS_KEY"] = nil
Rake::Task["test"].execute
end
task :flush_test_container do |t|
AzureBlob::Client.new(
account_name: ENV["AZURE_ACCOUNT_NAME"],
access_key: ENV["AZURE_ACCESS_KEY"],
container: ENV["AZURE_PRIVATE_CONTAINER"],
).delete_prefix ""
AzureBlob::Client.new(
account_name: ENV["AZURE_ACCOUNT_NAME"],
access_key: ENV["AZURE_ACCESS_KEY"],
container: ENV["AZURE_PUBLIC_CONTAINER"],
).delete_prefix ""
end