Skip to content
6 changes: 3 additions & 3 deletions armadillo_azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ variables:
branchName: $(Build.SourceBranchName)
test_filter: '*'
_r_check_system_clock_: 0
perf.profile: 'azure-pipeline'


#########################################################################################
Expand Down Expand Up @@ -274,7 +275,7 @@ jobs:
#
# "_-|arg-|smk-|datachk-|disc-|math-|expt-|expt_smk-"
# testthat::test_package("$(projectName)", filter = "_-|datachk-|smk-|arg-|disc-|perf-|smk_expt-|expt-|math-", reporter = multi_rep, stop_on_failure = FALSE)
sudo R -q -e '
sudo env PERF_PROFILE=$PERF_PROFILE R -q -e '
library(covr);
dsbase.res <- covr::package_coverage(
type = c("none"),
Expand Down Expand Up @@ -396,7 +397,7 @@ jobs:
# testthat::testpackage uses a MultiReporter, comprised of a ProgressReporter and JunitReporter
# R output and messages are redirected by sink() to test_console_output.txt
# junit reporter output is to test_results.xml
sudo R -q -e '
sudo env PERF_PROFILE=$PERF_PROFILE R -q -e '
library(covr);
dsdanger.res <- covr::package_coverage(
type = c("none"),
Expand Down Expand Up @@ -534,7 +535,6 @@ jobs:
echo 'branch:'$(branchName) >> $(datetime).txt
echo 'os:'$(lsb_release -ds) >> $(datetime).txt
echo 'R:'$(R --version | head -n 1) >> $(datetime).txt
echo 'opal:'$(opal system --opal localhost:8443 --user administrator --password "datashield_test&" --version) >> $(datetime).txt

workingDirectory: $(Pipeline.Workspace)/logs
displayName: 'Write versions to file'
Expand Down
15 changes: 8 additions & 7 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ variables:
branchName: $(Build.SourceBranchName)
test_filter: '*'
_r_check_system_clock_: 0
perf.profile: 'azure-pipeline'


#########################################################################################
Expand Down Expand Up @@ -214,13 +215,13 @@ jobs:
# Install dsBase.
# If previous steps have failed then don't run.
- bash: |
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(o)"
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'http://localhost:8080/'); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)"

R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); dsadmin.install_github_package(opal, 'dsBase', username = 'datashield', ref = 'v7.0-dev'); opal.logout(opal)"
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.install_github_package(opal, 'dsBase', username = 'datashield', ref = 'v7.0-dev'); opal.logout(opal)"

sleep 60

R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); dsadmin.set_option(opal, 'default.datashield.privacyControlLevel', 'permissive'); opal.logout(opal)"
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.set_option(opal, 'default.datashield.privacyControlLevel', 'permissive'); opal.logout(opal)"

workingDirectory: $(Pipeline.Workspace)/dsBaseClient/tests/testthat/data_files
displayName: 'Install dsBase to Opal, as set disclosure test options'
Expand Down Expand Up @@ -253,7 +254,7 @@ jobs:
#
# "_-|arg-|smk-|datachk-|disc-|math-|expt-|expt_smk-"
# testthat::test_package("$(projectName)", filter = "_-|datachk-|smk-|arg-|disc-|perf-|smk_expt-|expt-|math-", reporter = multi_rep, stop_on_failure = FALSE)
sudo R -q -e '
sudo env PERF_PROFILE=$PERF_PROFILE R -q -e '
library(covr);
dsbase.res <- covr::package_coverage(
type = c("none"),
Expand Down Expand Up @@ -342,9 +343,9 @@ jobs:
# If previous steps have failed then don't run
- bash: |

R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(o)"
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'http://localhost:8080'); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)"

R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); dsadmin.install_github_package(opal, 'dsDanger', username = 'datashield', ref = '6.3.4'); opal.logout(opal)"
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.install_github_package(opal, 'dsDanger', username = 'datashield', ref = '6.3.4'); opal.logout(opal)"

workingDirectory: $(Pipeline.Workspace)/dsBaseClient
displayName: 'Install dsDanger package on Opal server'
Expand All @@ -368,7 +369,7 @@ jobs:
# testthat::testpackage uses a MultiReporter, comprised of a ProgressReporter and JunitReporter
# R output and messages are redirected by sink() to test_console_output.txt
# junit reporter output is to test_results.xml
sudo R -q -e '
sudo env PERF_PROFILE=$PERF_PROFILE R -q -e '
library(covr);
dsdanger.res <- covr::package_coverage(
type = c("none"),
Expand Down
5 changes: 2 additions & 3 deletions docker-compose_armadillo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ services:
hostname: armadillo
ports:
- 8080:8080
image: datashield/armadillo_citest:5.11.0
image: datashield/armadillo_citest:latest
environment:
LOGGING_CONFIG: 'classpath:logback-file.xml'
AUDIT_LOG_PATH: '/app/logs/audit.log'
Expand All @@ -16,7 +16,6 @@ services:

default:
hostname: default
image: datashield/rock-quebrada-lamda:latest
# image: datashield/rserver-panda-lamda:devel
image: datashield/rock_citest-permissive:latest
environment:
DEBUG: "FALSE"
5 changes: 3 additions & 2 deletions docker-compose_opal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ services:
image: datashield/opal_citest:latest
ports:
- 8443:8443
- 8080:8080
links:
- mongo
- rock
Expand All @@ -15,11 +16,11 @@ services:
- ROCK_HOSTS=rock:8085
- ROCK_ADMINISTRATOR_PASSWORD=foobar
mongo:
image: mongo:4.4.15
image: mongo:8.0
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=foobar
rock:
image: datashield/rock-quebrada-lamda-permissive:latest
image: datashield/rock_citest-permissive:latest
environment:
DEBUG: "FALSE"
103 changes: 8 additions & 95 deletions opal_azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@
# Starts with a vanilla Opal docker composition, installs dsBase
# and dsBaseClient (as well as dependencies - including a fully functional
# Opal server).
# Does checks and tests then saves results to testStatus repo.
#
# Inside the root directory $(Pipeline.Workspace) will be a file tree like:
# /dsBaseClient <- Checked out version of datashield/dsBaseClient
# /testStatus <- Checked out version of datashield/testStatus
# /logs <- Where results of tests and lots are collated
#
# As of May 2020 this takes ~ 70 mins to run.
Expand All @@ -34,18 +32,7 @@ variables:
branchName: $(Build.SourceBranchName)
test_filter: '*'
_r_check_system_clock_: 0


#########################################################################################
# Need to define all the GH repos and their access tokens, see:
# https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml
resources:
repositories:
- repository: testStatusRepo
type: github
endpoint: datashield-testing
name: datashield/testStatus
ref: master
perf.profile: 'azure-pipeline'


#########################################################################################
Expand Down Expand Up @@ -82,11 +69,6 @@ jobs:
- checkout: self
path: 'dsBaseClient'

- checkout: testStatusRepo
path: 'testStatus'
persistCredentials: true
condition: and(eq(variables['Build.Repository.Name'], 'datashield/dsBaseClient'), ne(variables['Build.Reason'], 'PullRequest'))


#####################################################################################
# The MySQL install that comes with the VM doesn't seem compatable with our set up
Expand Down Expand Up @@ -233,13 +215,13 @@ jobs:
# Install dsBase.
# If previous steps have failed then don't run.
- bash: |
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(o)"
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'http://localhost:8080/'); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)"

R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); dsadmin.install_github_package(opal, 'dsBase', username = 'datashield', ref = 'v7.0-dev'); opal.logout(opal)"
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.install_github_package(opal, 'dsBase', username = 'datashield', ref = 'v7.0-dev'); opal.logout(opal)"

sleep 60

R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); dsadmin.set_option(opal, 'default.datashield.privacyControlLevel', 'permissive'); opal.logout(opal)"
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.set_option(opal, 'default.datashield.privacyControlLevel', 'permissive'); opal.logout(opal)"

workingDirectory: $(Pipeline.Workspace)/dsBaseClient/tests/testthat/data_files
displayName: 'Install dsBase to Opal, as set disclosure test options'
Expand Down Expand Up @@ -272,7 +254,7 @@ jobs:
#
# "_-|arg-|smk-|datachk-|disc-|math-|expt-|expt_smk-"
# testthat::test_package("$(projectName)", filter = "_-|datachk-|smk-|arg-|disc-|perf-|smk_expt-|expt-|math-", reporter = multi_rep, stop_on_failure = FALSE)
sudo R -q -e '
sudo env PERF_PROFILE=$PERF_PROFILE R -q -e '
library(covr);
dsbase.res <- covr::package_coverage(
type = c("none"),
Expand Down Expand Up @@ -361,9 +343,9 @@ jobs:
# If previous steps have failed then don't run
- bash: |

R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(o)"
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'http://localhost:8080'); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)"

R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); dsadmin.install_github_package(opal, 'dsDanger', username = 'datashield', ref = '6.3.4'); opal.logout(opal)"
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.install_github_package(opal, 'dsDanger', username = 'datashield', ref = '6.3.4'); opal.logout(opal)"

workingDirectory: $(Pipeline.Workspace)/dsBaseClient
displayName: 'Install dsDanger package on Opal server'
Expand All @@ -387,7 +369,7 @@ jobs:
# testthat::testpackage uses a MultiReporter, comprised of a ProgressReporter and JunitReporter
# R output and messages are redirected by sink() to test_console_output.txt
# junit reporter output is to test_results.xml
sudo R -q -e '
sudo env PERF_PROFILE=$PERF_PROFILE R -q -e '
library(covr);
dsdanger.res <- covr::package_coverage(
type = c("none"),
Expand Down Expand Up @@ -524,75 +506,6 @@ jobs:
displayName: 'Down Opal Docker Composition'
condition: succeeded()

#####################################################################################
# Windup phase
#####################################################################################

#####################################################################################
# Output some important version numbers to file. This gets added to the testStatus
# commit so it can be parsed and used on the status table.
- bash: |

echo 'branch:'$(branchName) >> $(datetime).txt
echo 'os:'$(lsb_release -ds) >> $(datetime).txt
echo 'R:'$(R --version | head -n 1) >> $(datetime).txt
echo 'opal:'$(opal system --opal localhost:8443 --user administrator --password "datashield_test&" --version) >> $(datetime).txt

workingDirectory: $(Pipeline.Workspace)/logs
displayName: 'Write versions to file'
condition: succeededOrFailed()


#####################################################################################
# Checkout the testStatus repo, add the results from here, push back to GH.
# TODO: Automatically pull in better email/name info from somewhere.
# TODO: More debug info in commit message
- bash: |

# Git needs some config set to be able to push to a repo.
git config --global user.email "you@example.com"
git config --global user.name "Azure pipeline"

# This repo is checked out in detatched head state, so reconnect it here.
git checkout master

# It is possible that other commits have been made to the testStatus repo since it
# was checked out. i.e. other pipeline runs might have finished.
git pull

# Make the directories if they dont already exist
mkdir --parents logs/$(projectName)/$(branchName)
mkdir --parents docs/$(projectName)/$(branchName)/latest

cp $(Pipeline.Workspace)/logs/coveragelist.csv logs/$(projectName)/$(branchName)/
cp $(Pipeline.Workspace)/logs/coveragelist.csv logs/$(projectName)/$(branchName)/$(datetime).csv

cp $(Pipeline.Workspace)/logs/test_results.xml logs/$(projectName)/$(branchName)/
cp $(Pipeline.Workspace)/logs/test_results.xml logs/$(projectName)/$(branchName)/$(datetime).xml

cp $(Pipeline.Workspace)/logs/$(datetime).txt logs/$(projectName)/$(branchName)/

# Run the script to parse the results and build the html pages.
# status.py JUnit_file.xml coverage_file.csv output_file.html local_repo_path remote_repo_name branch
source/status.py logs/$(projectName)/$(branchName)/$(datetime).xml logs/$(projectName)/$(branchName)/$(datetime).csv logs/$(projectName)/$(branchName)/$(datetime).txt status.html $(Pipeline.Workspace)/$(projectName) $(projectName) $(branchName)

cp status.html docs/$(projectName)/$(branchName)/latest/index.html
git add logs/$(projectName)/$(branchName)/coveragelist.csv
git add logs/$(projectName)/$(branchName)/test_results.xml
git add logs/$(projectName)/$(branchName)/$(datetime).xml
git add logs/$(projectName)/$(branchName)/$(datetime).csv
git add logs/$(projectName)/$(branchName)/$(datetime).txt
git add docs/$(projectName)/$(branchName)/latest/index.html

git commit -m "Azure auto test for $(projectName)/$(branchName) @ $(datetime)" -m "Debug info:\nProjectName:$(projectName)\nBranchName:$(branchName)\nDataTime:$(datetime)"
git push
exit 0

workingDirectory: $(Pipeline.Workspace)/testStatus
displayName: 'Parse test results'
condition: and(eq(variables['Build.Repository.Name'], 'datashield/dsBaseClient'), ne(variables['Build.Reason'], 'PullRequest'))


#####################################################################################
# Output the environment information to the console. This is useful for debugging.
# Always do this, even if some of the above has failed or the job has been cacelled.
Expand Down
16 changes: 8 additions & 8 deletions tests/testthat/connection_to_datasets/login_details.R
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ if (! is.null(getOption("default_driver"))) {
}

if ((ds.test_env$driver == "DSLiteDriver") || (ds.test_env$driver == "OpalDriver")) {
ds.test_env$ping_address <- paste("https://", ds.test_env$server_ip_address, ":8443", sep="")
ds.test_env$ping_config <- config(timeout=5, ssl_verifyhost=0, ssl_verifypeer=0)
ds.test_env$ping_address <- paste("http://", ds.test_env$server_ip_address, ":8080", sep="")
ds.test_env$ping_config <- config(timeout=5)

ds.test_env$ip_address_1 <- paste("https://", ds.test_env$server_ip_address, ":8443", sep="")
ds.test_env$ip_address_2 <- paste("https://", ds.test_env$server_ip_address, ":8443", sep="")
ds.test_env$ip_address_3 <- paste("https://", ds.test_env$server_ip_address, ":8443", sep="")
ds.test_env$ip_address_1 <- paste("http://", ds.test_env$server_ip_address, ":8080", sep="")
ds.test_env$ip_address_2 <- paste("http://", ds.test_env$server_ip_address, ":8080", sep="")
ds.test_env$ip_address_3 <- paste("http://", ds.test_env$server_ip_address, ":8080", sep="")

ds.test_env$user_1 <- getOption("opal.user", "administrator")
ds.test_env$user_2 <- getOption("opal.user", "administrator")
Expand All @@ -37,9 +37,9 @@ if ((ds.test_env$driver == "DSLiteDriver") || (ds.test_env$driver == "OpalDriver
ds.test_env$password_2 <- getOption("opal.password", "datashield_test&")
ds.test_env$password_3 <- getOption("opal.password", "datashield_test&")

ds.test_env$options_1 <- "list(ssl_verifyhost=0, ssl_verifypeer=0)"
ds.test_env$options_2 <- "list(ssl_verifyhost=0, ssl_verifypeer=0)"
ds.test_env$options_3 <- "list(ssl_verifyhost=0, ssl_verifypeer=0)"
ds.test_env$options_1 <- "list()"
ds.test_env$options_2 <- "list()"
ds.test_env$options_3 <- "list()"

ds.test_env$secure_login_details <- TRUE
} else if (ds.test_env$driver == "ArmadilloDriver") {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ upload_testing_dataset_table <- function(opal, project_name, table_name, local_f
opal.table_save(opal, data, project_name, table_name, id.name = "_row_id_", force = TRUE)
}

# opal <- opal.login('administrator','datashield_test&', url='https://192.168.56.100:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0))
opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0))
# opal <- opal.login('administrator','datashield_test&', url='https://192.168.56.100:8/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0))
opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/', opts = list())

upload_testing_dataset_table(opal, 'ANTHRO', 'anthro1', 'ANTHRO/anthro1.rda')
upload_testing_dataset_table(opal, 'ANTHRO', 'anthro2', 'ANTHRO/anthro2.rda')
Expand Down
14 changes: 0 additions & 14 deletions tests/testthat/perf_files/armadillo_azure-pipeline.csv

This file was deleted.

Loading