diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f646c68f..bfddaa03 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -215,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(opal)" + 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 = 'v6.3.5-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 = 'v6.3.5-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' @@ -344,9 +344,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(opal)" + 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' diff --git a/docker-compose_opal.yml b/docker-compose_opal.yml index d1566d20..70bffd8d 100644 --- a/docker-compose_opal.yml +++ b/docker-compose_opal.yml @@ -3,6 +3,7 @@ services: image: datashield/opal_citest:latest ports: - 8443:8443 + - 8080:8080 links: - mongo - rock @@ -15,7 +16,7 @@ services: - ROCK_HOSTS=rock:8085 - ROCK_ADMINISTRATOR_PASSWORD=foobar mongo: - image: mongo:6.0.27 + image: mongo:8.0 environment: - MONGO_INITDB_ROOT_USERNAME=root - MONGO_INITDB_ROOT_PASSWORD=foobar diff --git a/opal_azure-pipelines.yml b/opal_azure-pipelines.yml index b3513189..bfddaa03 100644 --- a/opal_azure-pipelines.yml +++ b/opal_azure-pipelines.yml @@ -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. @@ -37,18 +35,6 @@ variables: perf.profile: 'azure-pipeline' -######################################################################################### -# 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 - - ######################################################################################### # When and under what condition to run the pipeline. schedules: @@ -83,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 @@ -234,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(opal)" + 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 = 'v6.3.5-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 = 'v6.3.5-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' @@ -363,9 +344,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(opal)" + 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' @@ -526,75 +507,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. diff --git a/tests/testthat/data_files/obiba_opal-upload_testing_datasets.R b/tests/testthat/data_files/obiba_opal-upload_testing_datasets.R index ae79d2e6..52b66e31 100644 --- a/tests/testthat/data_files/obiba_opal-upload_testing_datasets.R +++ b/tests/testthat/data_files/obiba_opal-upload_testing_datasets.R @@ -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://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)) +opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/') upload_testing_dataset_table(opal, 'ANTHRO', 'anthro1', 'ANTHRO/anthro1.rda') upload_testing_dataset_table(opal, 'ANTHRO', 'anthro2', 'ANTHRO/anthro2.rda')