389 строки
16 KiB
YAML
389 строки
16 KiB
YAML
parameters:
|
|
- name: service
|
|
type: string
|
|
- name: account_type
|
|
type: string
|
|
- name: account_endpoint
|
|
type: string
|
|
- name: adls
|
|
type: boolean
|
|
- name: account_name
|
|
type: string
|
|
- name: account_key
|
|
type: string
|
|
- name: account_sas
|
|
type: string
|
|
- name: client_id
|
|
type: string
|
|
- name: tenant_id
|
|
type: string
|
|
- name: client_secret
|
|
type: string
|
|
- name: container
|
|
type: string
|
|
- name: config
|
|
type: string
|
|
- name: working_dir
|
|
type: string
|
|
- name: mount_dir
|
|
type: string
|
|
- name: temp_dir
|
|
type: string
|
|
- name: stress_dir
|
|
type: string
|
|
- name: huge_container
|
|
type: string
|
|
- name: quick_stress
|
|
type: boolean
|
|
- name: test_key_credential
|
|
type: boolean
|
|
- name: test_sas_credential
|
|
type: boolean
|
|
- name: test_azcli_credential
|
|
type: boolean
|
|
- name: test_azurite
|
|
type: boolean
|
|
default: false
|
|
- name: sas_credential_config
|
|
type: string
|
|
- name: azcli_credential_config
|
|
type: string
|
|
- name: azurite_config
|
|
type: string
|
|
default: ""
|
|
- name: distro_name
|
|
type: string
|
|
- name: quick_test
|
|
type: boolean
|
|
default: "true"
|
|
- name: verbose_log
|
|
type: boolean
|
|
- name: tags
|
|
type: string
|
|
|
|
#--------------------------------------- Setup: End to end tests with different Storage configurations ------------------------------------------
|
|
# Create key credential config file if we need to test it
|
|
steps:
|
|
- script: |
|
|
cd ${{ parameters.working_dir }}
|
|
${{ parameters.working_dir }}/blobfuse2 gen-test-config --config-file=azure_key.yaml --container-name=${{ parameters.container }} --temp-path=${{ parameters.temp_dir }} --output-file=${{ parameters.config }}
|
|
displayName: Create Key Config File
|
|
env:
|
|
ACCOUNT_TYPE: ${{ parameters.account_type }}
|
|
NIGHTLY_STO_ACC_NAME: ${{ parameters.account_name }}
|
|
NIGHTLY_STO_ACC_KEY: ${{ parameters.account_key }}
|
|
ACCOUNT_ENDPOINT: ${{ parameters.account_endpoint }}
|
|
VERBOSE_LOG: ${{ parameters.verbose_log }}
|
|
USE_HTTP: false
|
|
condition: ${{ parameters.test_key_credential }}
|
|
continueOnError: false
|
|
|
|
- script: cat ${{ parameters.config }}
|
|
displayName: Print config file
|
|
condition: ${{ parameters.test_key_credential }}
|
|
|
|
# Create sas credential config file if we need to test it
|
|
- script: |
|
|
cd ${{ parameters.working_dir }}
|
|
${{ parameters.working_dir }}/blobfuse2 gen-test-config --config-file=azure_sas.yaml --container-name=${{ parameters.container }} --temp-path=${{ parameters.temp_dir }} --output-file=${{ parameters.sas_credential_config }}
|
|
displayName: Create SAS Config File
|
|
env:
|
|
NIGHTLY_STO_BLOB_ACC_NAME: ${{ parameters.account_name }}
|
|
NIGHTLY_STO_ACC_SAS: ${{ parameters.account_sas }}
|
|
ACCOUNT_TYPE: ${{ parameters.account_type }}
|
|
ACCOUNT_ENDPOINT: ${{ parameters.account_endpoint }}
|
|
VERBOSE_LOG: ${{ parameters.verbose_log }}
|
|
condition: ${{ parameters.test_sas_credential }}
|
|
continueOnError: false
|
|
|
|
- script: cat ${{ parameters.sas_credential_config }}
|
|
displayName: Print SAS config file
|
|
condition: ${{ parameters.test_sas_credential }}
|
|
|
|
# Create azcli credential config file if we need to test it
|
|
- script: |
|
|
cd ${{ parameters.working_dir }}
|
|
${{ parameters.working_dir }}/blobfuse2 gen-test-config --config-file=azure_cli.yaml --container-name=${{ parameters.container }} --temp-path=${{ parameters.temp_dir }} --output-file=${{ parameters.azcli_credential_config }}
|
|
displayName: Create Azure CLI Config File
|
|
env:
|
|
NIGHTLY_STO_BLOB_ACC_NAME: ${{ parameters.account_name }}
|
|
ACCOUNT_TYPE: ${{ parameters.account_type }}
|
|
ACCOUNT_ENDPOINT: ${{ parameters.account_endpoint }}
|
|
VERBOSE_LOG: ${{ parameters.verbose_log }}
|
|
condition: ${{ parameters.test_azcli_credential }}
|
|
continueOnError: false
|
|
|
|
- script: cat ${{ parameters.azcli_credential_config }}
|
|
displayName: Print Azure CLI config file
|
|
condition: ${{ parameters.test_azcli_credential }}
|
|
|
|
# Create azurite config file if we need to test it
|
|
- script: |
|
|
cd ${{ parameters.working_dir }}
|
|
${{ parameters.working_dir }}/blobfuse2 gen-test-config --config-file=azure_key.yaml --container-name=${{ parameters.container }} --temp-path=${{ parameters.temp_dir }} --output-file=${{ parameters.azurite_config }}
|
|
displayName: Create Key Config File
|
|
# Note: It is fine to hardcode these credentials since they are publicly documented fake credentials for Azurite
|
|
env:
|
|
ACCOUNT_TYPE: ${{ parameters.account_type }}
|
|
NIGHTLY_STO_ACC_NAME: 'devstoreaccount1'
|
|
NIGHTLY_STO_ACC_KEY: 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=='
|
|
ACCOUNT_ENDPOINT: 'http://127.0.0.1:10000/devstoreaccount1'
|
|
USE_HTTP: 'true'
|
|
VERBOSE_LOG: ${{ parameters.verbose_log }}
|
|
condition: ${{ parameters.test_azurite }}
|
|
continueOnError: false
|
|
|
|
- script: cat ${{ parameters.azurite_config }}
|
|
condition: ${{ parameters.test_azurite }}
|
|
displayName: Print Azurite config file
|
|
|
|
#--------------------------------------- Tests: End to end tests with different Storage configurations ------------------------------------------
|
|
|
|
- ${{ if eq(parameters.test_key_credential, true) }}:
|
|
- template: e2e-tests.yml
|
|
parameters:
|
|
working_dir: ${{ parameters.working_dir }}
|
|
mount_dir: ${{ parameters.mount_dir }}
|
|
temp_dir: ${{ parameters.temp_dir }}
|
|
adls: ${{ parameters.adls }}
|
|
idstring: ${{ parameters.service }} with Key Credentials
|
|
distro_name: ${{ parameters.distro_name }}
|
|
quick_test: ${{ parameters.quick_test }}
|
|
artifact_name: '${{ parameters.distro_name }}_${{ parameters.service }}_key.txt'
|
|
verbose_log: ${{ parameters.verbose_log }}
|
|
mountStep:
|
|
script: >
|
|
${{ parameters.working_dir }}/blobfuse2 mount ${{ parameters.mount_dir }} --config-file=${{ parameters.config }}
|
|
--default-working-dir=${{ parameters.working_dir }}
|
|
displayName: 'E2E Test: Mount with Key Credential Configuration'
|
|
timeoutInMinutes: 3
|
|
continueOnError: false
|
|
|
|
#--------------------------------------- Tests: End to end tests with Block Cache configurations ------------------------------------------
|
|
|
|
- template: e2e-tests-spcl.yml
|
|
parameters:
|
|
conf_template: azure_block_perf.yaml
|
|
config_file: ${{ parameters.config }}
|
|
container: ${{ parameters.container }}
|
|
temp_dir: ${{ parameters.temp_dir }}
|
|
mount_dir: ${{ parameters.mount_dir }}
|
|
adls: ${{ parameters.adls }}
|
|
account_name: ${{ parameters.account_name }}
|
|
account_key: ${{ parameters.account_key }}
|
|
account_type: ${{ parameters.account_type }}
|
|
account_endpoint: ${{ parameters.account_endpoint }}
|
|
idstring: "${{ parameters.service }} with Block-cache"
|
|
distro_name: ${{ parameters.distro_name }}
|
|
quick_test: false
|
|
verbose_log: ${{ parameters.verbose_log }}
|
|
clone: false
|
|
|
|
- ${{ if eq(parameters.test_sas_credential, true) }}:
|
|
- template: e2e-tests.yml
|
|
parameters:
|
|
working_dir: ${{ parameters.working_dir }}
|
|
mount_dir: ${{ parameters.mount_dir }}
|
|
temp_dir: ${{ parameters.temp_dir }}
|
|
adls: ${{ parameters.adls }}
|
|
idstring: ${{ parameters.service }} with SAS Credentials
|
|
distro_name: ${{ parameters.distro_name }}
|
|
artifact_name: '${{ parameters.distro_name }}_${{ parameters.service }}_sas.txt'
|
|
verbose_log: ${{ parameters.verbose_log }}
|
|
mountStep:
|
|
script: >
|
|
${{ parameters.working_dir }}/blobfuse2 mount ${{ parameters.mount_dir }} --config-file=${{ parameters.sas_credential_config }}
|
|
--default-working-dir=${{ parameters.working_dir }}
|
|
displayName: 'E2E Test: Mount with SAS Credential Configuration'
|
|
timeoutInMinutes: 3
|
|
continueOnError: false
|
|
|
|
- ${{ if eq(parameters.test_azcli_credential, true) }}:
|
|
- template: e2e-tests.yml
|
|
parameters:
|
|
working_dir: ${{ parameters.working_dir }}
|
|
mount_dir: ${{ parameters.mount_dir }}
|
|
temp_dir: ${{ parameters.temp_dir }}
|
|
adls: ${{ parameters.adls }}
|
|
idstring: ${{ parameters.service }} with Azure CLI Credentials
|
|
distro_name: ${{ parameters.distro_name }}
|
|
artifact_name: '${{ parameters.distro_name }}_${{ parameters.service }}_azcli.txt'
|
|
verbose_log: ${{ parameters.verbose_log }}
|
|
mountStep:
|
|
script: >
|
|
${{ parameters.working_dir }}/blobfuse2 mount ${{ parameters.mount_dir }} --config-file=${{ parameters.azcli_credential_config }}
|
|
--default-working-dir=${{ parameters.working_dir }}
|
|
displayName: 'E2E Test: Mount with Azure CLI Credential Configuration'
|
|
timeoutInMinutes: 3
|
|
continueOnError: false
|
|
|
|
- ${{ if eq(parameters.test_azurite, true) }}:
|
|
- bash: |
|
|
sudo apt-get install azure-cli npm -y
|
|
sudo npm install -g azurite@3.29.0
|
|
sudo mkdir azurite
|
|
sudo azurite --silent --location azurite --debug azurite\debug.log &
|
|
az storage container create -n ${{ parameters.container }} --connection-string "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;"
|
|
displayName: 'Install and Run Azurite'
|
|
|
|
- template: e2e-tests.yml
|
|
parameters:
|
|
working_dir: ${{ parameters.working_dir }}
|
|
mount_dir: ${{ parameters.mount_dir }}
|
|
temp_dir: ${{ parameters.temp_dir }}
|
|
adls: ${{ parameters.adls }}
|
|
idstring: ${{ parameters.service }} with Azurite
|
|
distro_name: ${{ parameters.distro_name }}
|
|
quick_test: ${{ parameters.quick_test }}
|
|
artifact_name: '${{ parameters.distro_name }}_${{ parameters.service }}_azurite.txt'
|
|
verbose_log: ${{ parameters.verbose_log }}
|
|
mountStep:
|
|
script: >
|
|
${{ parameters.working_dir }}/blobfuse2 mount ${{ parameters.mount_dir }} --config-file=${{ parameters.azurite_config }}
|
|
--default-working-dir=${{ parameters.working_dir }}
|
|
displayName: 'E2E Test: Mount with Azurite Configuration'
|
|
timeoutInMinutes: 3
|
|
continueOnError: false
|
|
|
|
#--------------------------------------- Tests: End to end tests with different File Cache configurations ------------------------------------------
|
|
|
|
- template: e2e-tests-spcl.yml
|
|
parameters:
|
|
conf_template: azure_key_lru_purge.yaml
|
|
config_file: ${{ parameters.config }}
|
|
container: ${{ parameters.container }}
|
|
temp_dir: ${{ parameters.temp_dir }}
|
|
mount_dir: ${{ parameters.mount_dir }}
|
|
adls: ${{ parameters.adls }}
|
|
account_name: ${{ parameters.account_name }}
|
|
account_key: ${{ parameters.account_key }}
|
|
account_type: ${{ parameters.account_type }}
|
|
account_endpoint: ${{ parameters.account_endpoint }}
|
|
idstring: "${{ parameters.service }} LRU policy no timeout"
|
|
distro_name: ${{ parameters.distro_name }}
|
|
verbose_log: ${{ parameters.verbose_log }}
|
|
|
|
- template: e2e-tests-spcl.yml
|
|
parameters:
|
|
conf_template: azure_key_emptyfile.yaml
|
|
config_file: ${{ parameters.config }}
|
|
container: ${{ parameters.container }}
|
|
temp_dir: ${{ parameters.temp_dir }}
|
|
mount_dir: ${{ parameters.mount_dir }}
|
|
adls: ${{ parameters.adls }}
|
|
account_name: ${{ parameters.account_name }}
|
|
account_key: ${{ parameters.account_key }}
|
|
account_type: ${{ parameters.account_type }}
|
|
account_endpoint: ${{ parameters.account_endpoint }}
|
|
idstring: "${{ parameters.service }} LRU policy create empty"
|
|
distro_name: ${{ parameters.distro_name }}
|
|
quick_test: ${{ parameters.quick_test }}
|
|
verbose_log: ${{ parameters.verbose_log }}
|
|
|
|
|
|
- template: e2e-tests-spcl.yml
|
|
parameters:
|
|
conf_template: azure_key_directio.yaml
|
|
config_file: ${{ parameters.config }}
|
|
container: ${{ parameters.container }}
|
|
temp_dir: ${{ parameters.temp_dir }}
|
|
mount_dir: ${{ parameters.mount_dir }}
|
|
adls: ${{ parameters.adls }}
|
|
account_name: ${{ parameters.account_name }}
|
|
account_key: ${{ parameters.account_key }}
|
|
account_type: ${{ parameters.account_type }}
|
|
account_endpoint: ${{ parameters.account_endpoint }}
|
|
idstring: "${{ parameters.service }} Direct IO tests"
|
|
distro_name: ${{ parameters.distro_name }}
|
|
quick_test: ${{ parameters.quick_test }}
|
|
verbose_log: ${{ parameters.verbose_log }}
|
|
|
|
|
|
- template: e2e-tests-spcl.yml
|
|
parameters:
|
|
conf_template: azure_key_symlink.yaml
|
|
config_file: ${{ parameters.config }}
|
|
container: ${{ parameters.container }}
|
|
temp_dir: ${{ parameters.temp_dir }}
|
|
mount_dir: ${{ parameters.mount_dir }}
|
|
adls: ${{ parameters.adls }}
|
|
account_name: ${{ parameters.account_name }}
|
|
account_key: ${{ parameters.account_key }}
|
|
account_type: ${{ parameters.account_type }}
|
|
account_endpoint: ${{ parameters.account_endpoint }}
|
|
idstring: "${{ parameters.service }} Symlink config tests"
|
|
distro_name: ${{ parameters.distro_name }}
|
|
quick_test: ${{ parameters.quick_test }}
|
|
verbose_log: ${{ parameters.verbose_log }}
|
|
enable_symlink_adls: true
|
|
|
|
#--------------------------------------- Setup: End to end tests with different File Cache configurations ------------------------------------------
|
|
- script: |
|
|
cd ${{ parameters.working_dir }}
|
|
${{ parameters.working_dir }}/blobfuse2 gen-test-config --config-file=azure_key_huge.yaml --container-name=${{ parameters.container }} --temp-path=${{ parameters.temp_dir }} --output-file=${{ parameters.config }}
|
|
displayName: Create Config File
|
|
env:
|
|
NIGHTLY_STO_ACC_NAME: ${{ parameters.account_name }}
|
|
NIGHTLY_STO_ACC_KEY: ${{ parameters.account_key }}
|
|
ACCOUNT_TYPE: ${{ parameters.account_type }}
|
|
ACCOUNT_ENDPOINT: ${{ parameters.account_endpoint }}
|
|
VERBOSE_LOG: ${{ parameters.verbose_log }}
|
|
continueOnError: false
|
|
|
|
- script: cat ${{ parameters.config }}
|
|
displayName: Print config file
|
|
|
|
- template: mount-test.yml
|
|
parameters:
|
|
working_dir: ${{ parameters.working_dir }}
|
|
mount_dir: ${{ parameters.mount_dir }}
|
|
temp_dir: ${{ parameters.temp_dir }}
|
|
config: ${{ parameters.config }}
|
|
idstring: ${{ parameters.service }} Mount Test
|
|
tags: $(tags)
|
|
|
|
- template: stress-test.yml
|
|
parameters:
|
|
working_dir: ${{ parameters.working_dir }}
|
|
mount_dir: ${{ parameters.mount_dir }}
|
|
temp_dir: ${{ parameters.temp_dir }}
|
|
stress_dir: ${{ parameters.stress_dir }}
|
|
idstring: ${{ parameters.service }} Stress Test
|
|
quick: '${{ parameters.quick_stress }}'
|
|
distro_name: ${{ parameters.distro_name }}
|
|
mountStep:
|
|
script: >
|
|
${{ parameters.working_dir }}/blobfuse2 mount ${{ parameters.mount_dir }} --config-file=${{ parameters.config }} --default-working-dir=${{ parameters.working_dir }}
|
|
displayName: 'StressTest: Mount'
|
|
timeoutInMinutes: 3
|
|
continueOnError: false
|
|
|
|
- script: |
|
|
cd ${{ parameters.working_dir }}
|
|
${{ parameters.working_dir }}/blobfuse2 gen-test-config --config-file=azure_key_huge.yaml --container-name=${{ parameters.huge_container }} --temp-path=${{ parameters.temp_dir }} --output-file=${{ parameters.config }}
|
|
displayName: Create Config File
|
|
env:
|
|
NIGHTLY_STO_ACC_NAME: ${{ parameters.account_name }}
|
|
NIGHTLY_STO_ACC_KEY: ${{ parameters.account_key }}
|
|
ACCOUNT_TYPE: ${{ parameters.account_type }}
|
|
ACCOUNT_ENDPOINT: ${{ parameters.account_endpoint }}
|
|
VERBOSE_LOG: ${{ parameters.verbose_log }}
|
|
continueOnError: false
|
|
|
|
- script: cat ${{ parameters.config }}
|
|
displayName: Print config file
|
|
|
|
- template: huge-list-test.yml
|
|
parameters:
|
|
working_dir: ${{ parameters.working_dir }}
|
|
mount_dir: ${{ parameters.mount_dir }}
|
|
temp_dir: ${{ parameters.temp_dir }}
|
|
idstring: ${{ parameters.service }} Huge List Test
|
|
distro_name: ${{ parameters.distro_name }}
|
|
mountStep:
|
|
script: >
|
|
${{ parameters.working_dir }}/blobfuse2 mount ${{ parameters.mount_dir }} --config-file=${{ parameters.config }}
|
|
--default-working-dir=${{ parameters.working_dir }}
|
|
displayName: 'HugeList: Mount'
|
|
continueOnError: false
|