Stream: python

Topic: containers for API testing


view this post on Zulip Philip Durbin ๐Ÿš€ (Apr 28 2023 at 16:25):

As discussed during yesterday's Containerization Working Group meeting, there are now containers available for API testing!

In the past I've usually pointed authors of API client libraries to https://demo.dataverse.org for testing a live Dataverse installation, but is there interest in using GitHub Actions or similar to spin up Dataverse in a container for API testing?

Here's the newly published container: https://hub.docker.com/r/gdcc/dataverse

Please be advised that the container requires setup! For now we've only documented the setup for developers (and we plan to improve these docs) but as explained in the Dataverse Containerization doc, we have an item under milestone B to document how client library authors can use these containers. Here's what is says for now:

"Document limitations: must clone main repo (or at least download the necessary files, similar to dvinstall.zip or download the whole repo as a zip), must run docker-final-setup.sh"

Any brave souls out there who want to give this a try? :sweat_smile: I'm happy to help!

view this post on Zulip Don Sizemore (Apr 28 2023 at 16:58):

Philip Durbin said:

yes, i'm happy to help test, though it likely won't be for the next few days.

view this post on Zulip Jan Range (Apr 28 2023 at 18:27):

Happy to test it!

view this post on Zulip Philip Durbin ๐Ÿš€ (Apr 28 2023 at 18:33):

To be honest, I think we might need @Oliver Bertuch to explain (again) how to spin up our own containers within GitHub Actions. In the doc, it's worded like this (under milestone D):

"Smoke test within GitHub Actions: deploy and bootstrap, make logs available (Size: 33)"

view this post on Zulip Philip Durbin ๐Ÿš€ (Apr 28 2023 at 18:33):

"This smoke test here is about creating a first step to see if the deployment works at all and shall serve as intermediate step towards the full thing in Milestone G."

view this post on Zulip Philip Durbin ๐Ÿš€ (Apr 28 2023 at 18:37):

@Don Sizemore @Jan Range have either of you tried running the containers on a dev laptop or whatever? I'm happy to walk you through it. Now that the containers are out there you shouldn't even need Java installed. You will have to clone the main repo, though. That's where the docker compose file is and some config and scripts you'll need.

view this post on Zulip Philip Durbin ๐Ÿš€ (Apr 28 2023 at 19:46):

Maybe this will help? https://github.blog/2022-02-02-build-ci-cd-pipeline-github-actions-four-steps/

view this post on Zulip Philip Durbin ๐Ÿš€ (Apr 28 2023 at 19:47):

Code at https://github.com/open-sauced/open-sauced

view this post on Zulip Jan Range (Apr 29 2023 at 05:58):

I was trying to spin up the container using mvn -Pct clean package but it failed. Got the following error message:

Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test (default-test) on project dataverse: There are test failures.

view this post on Zulip Jan Range (Apr 29 2023 at 05:59):

Maybe its also due to my MacBook, will try it on an Ubuntu server.

view this post on Zulip Oliver Bertuch (Apr 29 2023 at 07:25):

That is very odd as testing is usually deactivated in this profile to speed up things...

view this post on Zulip Oliver Bertuch (Apr 29 2023 at 07:25):

It's unlikely your MacBook as a cause

view this post on Zulip Oliver Bertuch (Apr 29 2023 at 07:25):

If you're feeling lucky you could try with compose only

view this post on Zulip Oliver Bertuch (Apr 29 2023 at 07:26):

The dataverse image is avail from the hub

view this post on Zulip Oliver Bertuch (Apr 29 2023 at 07:28):

It might be a good idea to just copy the compose file from the IQSS repo and add that to your project... It will fail for now with the Solr things, but you could temporarily copy those over until we have that stuff sorted out

view this post on Zulip Oliver Bertuch (Apr 29 2023 at 07:28):

Would it help you lot if I create a demo repo someplace?

view this post on Zulip Oliver Bertuch (Apr 29 2023 at 07:28):

So we have some small playground?

view this post on Zulip Jan Range (Apr 29 2023 at 08:58):

I did checkout the develop branch, maybe this is the cause?

view this post on Zulip Jan Range (Apr 29 2023 at 08:59):

Trying it now with the Dockerhub image

view this post on Zulip Philip Durbin ๐Ÿš€ (Apr 29 2023 at 12:20):

Is it working? Is no news good news? :happy:

view this post on Zulip Jan Range (Apr 29 2023 at 16:04):

Sorry I needed to leave. Tried it now using mvn -Pct docker:run but I ran into the following error:

 DOCKER> Error occurred during container startup, shutting down...
[ERROR] DOCKER> I/O Error [Unable to pull 'iq/dataverse:5.13' : {"message":"pull access denied for iq/dataverse, repository does not exist or may require 'docker login': denied: requested access to the resource is denied"} (Not Found: 404)]

I have then spun up the Dockerhub image using the unstable tag and mapped ports 8080:8080 that led me to the Payara page instead of Dataverse. Am I doing something wrong? Also ran the docker-compose-dev.yml which started solr, smtp and postgres succesfully, but that didnt help.

view this post on Zulip Oliver Bertuch (Apr 29 2023 at 17:00):

That is VERY strange. I have no idea where that image name would be coming from! I see it written out as gdcc/dataverse:unstable

view this post on Zulip Oliver Bertuch (Apr 29 2023 at 17:01):

Just starting up the image itself is not sufficient, you need at least Postgres.

view this post on Zulip Oliver Bertuch (Apr 29 2023 at 17:01):

That way the app will at least deploy, also bootstrapping and access will fail without also having Solr tuned, set and ready to go

view this post on Zulip Oliver Bertuch (Apr 29 2023 at 17:03):

It's so funny to hear of all these problems of running these containers when at the same time I never see those :grimacing:

view this post on Zulip Oliver Bertuch (Apr 29 2023 at 17:04):

Probably I should just go ahead and create that demo project. Anyone interested to reuse it for some integration thing can grab the code and go for it

view this post on Zulip Jan Range (Apr 29 2023 at 17:58):

I tried pulling it from the Dockerhub link Phil supplied and it didnโ€™t work - Some manifest was missing. So I checked the tags and unstable was available. Not sure, maybe I am doing something wrong. Either way, Postgres etc. worked using docker-compose.

view this post on Zulip Philip Durbin ๐Ÿš€ (Apr 29 2023 at 20:38):

I started a pull request at https://github.com/gdcc/pyDataverse/pull/158 that I hope will help.

At the very least, you should get a response from /api/info/version. This is what I see: {"status":"OK","data":{"version":"5.13","build":null}}

I haven't tried the next steps of actually setting up Dataverse, which involves running docker-final-setup.sh as explained at https://preview.guides.gdcc.io/en/develop/container/dev-usage.html

view this post on Zulip Jan Range (Apr 30 2023 at 06:45):

Starting from a blank Ubuntu 20.0 server both maven steps were succesfully executed. I am also able to retrieve the version:

ubuntu@openproject:~/dataverse$ curl "http://localhost:8080/api/info/version"
{"status":"OK","data":{"version":"5.13","build":null}}

The docker-final-setup.sh also ran smoothly without any errors. Here is the output to inspect the metadatablocks:

ubuntu@openproject:~/dataverse$ curl "http://localhost:8080/api/metadatablocks"
{"status":"OK","data":[{"id":1,"displayName":"Citation Metadata","name":"citation"},{"id":2,"displayName":"Geospatial Metadata","name":"geospatial"},{"id":3,"displayName":"Social Science and Humanities Metadata","name":"socialscience"},{"id":4,"displayName":"Astronomy and Astrophysics Metadata","name":"astrophysics"},{"id":5,"displayName":"Life Sciences Metadata","name":"biomedical"},{"id":6,"displayName":"Journal Metadata","name":"journal"}]}

The one thing that may have caused the error on my machine was running everything not as sudo. Usually I do not need to supply this using Docker on my local machine, but I think this may be a good addition to the docs. Also, is it possible to pass flags to mvn -Pct docker:run such as -d to run it in daemon mode? Here on my server it is running within the session and closing it may shutdown the container.

I am having problems with the ports at the moment, thats why I am not able to support a working URL, but this has nothing to do with the Dataverse instance but our BWCloud server - 8080 somehow is always a bit tricky. I have another private server where I will also test it and hopefully can supply a working URL to inspect the UI.

view this post on Zulip Jan Range (Apr 30 2023 at 06:46):

Anyway, looks great so far! Awesome work @Oliver Bertuch @Philip Durbin and to the Container Working Group :tada:

view this post on Zulip Jan Range (Apr 30 2023 at 07:07):

Tried it on my IONOS server with OS AlmaLinux 8 installed using the following Java/Maven setup:

Apache Maven 3.5.4 (Red Hat 3.5.4-5)
Maven home: /usr/share/maven
Java version: 1.8.0_372, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el8_7.x86_64/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "4.18.0-425.10.1.el8_7.x86_64", arch: "amd64", family: "unix"

I got the following error message, can you help me to resolve this?

log.log

view this post on Zulip Jan Range (Apr 30 2023 at 07:11):

Ran yum update again to be sure. Trying again now. It seems that some class has been compiled with a recent version of Java yet the one installed does not supply it (class file version 55.0 vs 52.0). Its a little sus, but I am no Java expert to fix this rn.

view this post on Zulip Jan Range (Apr 30 2023 at 07:24):

Updated JDK to 11 on CentOS and set JAVA_HOME to point to JDK 11, but that didn't help either. This may be exclusive to CentOS.

view this post on Zulip Philip Durbin ๐Ÿš€ (Apr 30 2023 at 12:19):

Huh. Let me start by pasting the error inline (minus some repeated lines about URLs) formatted a bit for readability:

[ERROR] Failed to execute goal io.github.git-commit-id:git-commit-id-maven-plugin:5.0.0:revision (retrieve-git-details) on project dataverse: Execution retrieve-git-details of goal io.github.git-commit-id:git-commit-id-maven-plugin:5.0.0:revision failed: Unable to load the mojo 'revision' in the plugin 'io.github.git-commit-id:git-commit-id-maven-plugin:5.0.0' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: pl/project13/maven/git/GitCommitIdMojo has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>io.github.git-commit-id:git-commit-id-maven-plugin:5.0.0
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/root/.m2/repository/io/github/git-commit-id/git-commit-id-maven-plugin/5.0.0/git-commit-id-maven-plugin-5.0.0.jar
(...snip...)
[ERROR] urls[24] = file:/root/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[project>edu.harvard.iq:dataverse:5.13, parent: ClassRealm[maven.api, parent: null]]]
[ERROR]
[ERROR] -----------------------------------------------------

Do you think testing this on Rocky would help, since's it's also a RHEL derivative? Maybe it's similar enough to AlmaLinux? We have an issue here about Rocky and Docker: https://github.com/GlobalDataverseCommunityConsortium/dataverse-ansible/issues/268

view this post on Zulip Philip Durbin ๐Ÿš€ (Apr 30 2023 at 12:20):

You shouldn't need sudo, by the way. I never need it on my Mac anyway.

view this post on Zulip Philip Durbin ๐Ÿš€ (Apr 30 2023 at 12:23):

As an alternative to mvn -Pct docker:run you can run docker-compose -f docker-compose-dev.yml up and yes, you can add -d if you like. Should we add -d to https://github.com/gdcc/pyDataverse/pull/158 ?

Mentioning docker compose is already on our todo list at https://github.com/IQSS/dataverse/issues/9540

view this post on Zulip Philip Durbin ๐Ÿš€ (Apr 30 2023 at 12:24):

Anyway, @Jan Range it seems like you're seeing some success if the "final setup" script worked in at least one environment! :tada: Thanks for testing!

view this post on Zulip Jan Range (May 01 2023 at 12:14):

Yea, I realized that it didnt make any difference using sudo on my machine. It just doesn't want to work on it unfortunately.

Regarding the flag, I'd say that if the inclusion of the -d flag within the maven command requires too much development, mentioning the docker compose alternative in the docs would also be nice for those who aren't aware of it.

Regarding Almalinux, sure that should help! I suspect that this may not be a complete Docker issue but something with Maven since the error is coming from classes that are compiled for newer versions.

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 13:02):

@Jan Range sounds good. So, zooming out a bit, how could these Docker containers be useful for you with pyDataverse or EasyDataverse?

Would you run the containers on your laptop and point API tests at them?

Would you want to run this in some sort of CI like GitHub Actions?

How can we help you reach the next step, whatever that is? :happy:

view this post on Zulip Jan Range (May 01 2023 at 13:06):

They'd be very helpful for local and CI testing purposes. Especially, since the new connect functionality depends on the installation itself, its the perfect timing for the containers. The same also applies for pyDataverse.

view this post on Zulip Jan Range (May 01 2023 at 13:10):

For the local testing, it would be great if I could get the container running on my machine. Otherwise I can also use my server to point it to, but having it locally would be preferable. For a CI, spinning a Dataverse instance up within a GitHub Action would be the natural step after local testing. Have you already tried to do that? Otherwise we may open up a dummy repo to work on an action.

view this post on Zulip Jan Range (May 01 2023 at 13:13):

For the sake of generality, an action with the sole purpose to start a docker instance would be enough. After that any subsequent step in the action can talk to the instance. Thus, other applications could also benefit. What do you think?

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 13:13):

Sure. A dummy repo sounds good. What would it do? I guess an MVP would be a shell script that does a curl of /api/info/version :happy:

view this post on Zulip Jan Range (May 01 2023 at 13:13):

Yes, that would be a start!

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 13:18):

How does this look? https://github.com/gdcc/container-test

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 13:24):

I just pushed a stub (same as from the pyDataverse PR) for local dev.

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 13:25):

And maybe from here we can start hacking on GitHub Actions?

view this post on Zulip Jan Range (May 01 2023 at 13:55):

Looks great! Thats a good start :-)

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 15:42):

Cool. I made you an admin @Jan Range :happy:

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 18:03):

But do either of us know anything about GitHub Actions? :sweat_smile:

view this post on Zulip Jan Range (May 01 2023 at 18:25):

No DevOps expert, but lets give it a try! Found info on this using services. Would try this first.

Section "How to Run Services in Containers During a Workflow?" - https://yonatankra.com/2-ways-to-use-your-docker-image-in-github-actions/

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 18:28):

Seems like a reasonable blog post to follow, sure!

view this post on Zulip Jan Range (May 01 2023 at 19:16):

I got the container running within the action! Wanted to get the version, but there needs to be some "off-time" to let the instance start before running curl.

image.png

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 19:20):

Wow! Already? Go, go, go! :rocket:

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 19:21):

I'm watching https://github.com/gdcc/container-test/actions/runs/4854159295/jobs/8651177685 live

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 19:22):

:popcorn:

view this post on Zulip Jan Range (May 01 2023 at 19:23):

120 seconds may be a bit much :sweat_smile:

view this post on Zulip Jan Range (May 01 2023 at 19:23):

Success!!!

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 19:24):

{"status":"OK","data":{"version":"5.13","build":null}} :tada:

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 19:24):

@Jan Range great job!

view this post on Zulip Jan Range (May 01 2023 at 19:24):

Thanks! Didn't expect it to be that simple

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 19:24):

expect a raise in your next paycheck

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 19:25):

So what do we try next? Clone the repo before staring the containers? And run the final setup script after?

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 19:26):

Or we could download the repo as a zip if that's easier or faster.

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 19:26):

Or download just the files we need.

view this post on Zulip Jan Range (May 01 2023 at 19:27):

Yes, that would make sense! Maybe then curl the metadatablocks?

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 19:28):

You mean curl the metadata blocks at the very end to make sure they were loaded properly? Sure!

view this post on Zulip Jan Range (May 01 2023 at 20:03):

Yes, currently trying it :-)

view this post on Zulip Jan Range (May 01 2023 at 20:05):

./dataverse/scripts/dev/docker-final-setup.sh: 3: set: Illegal option -o pipefail

I receive this error, when running the docker script. Do you know what the error could be? This is the step in the action after the DV repo has been cloned.

      - name: Run docker script
        run: |
          ./dataverse/scripts/dev/docker-final-setup.sh

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 20:21):

Weird! Could it be line endings? https://stackoverflow.com/questions/35352955/set-illegal-option-on-one-host-but-not-the-other

view this post on Zulip Jan Range (May 01 2023 at 20:24):

Tried it with bash and it finally works!

image.png

view this post on Zulip Jan Range (May 01 2023 at 20:27):

Here is the latest run that worked:

https://github.com/gdcc/container-test/actions/runs/4854627884/jobs/8652228977

view this post on Zulip Jan Range (May 01 2023 at 20:28):

Bundling this into a shareable action now would be the icing on the cake :star_struck:

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 20:33):

Fantastic! You make it look easy! Oh, right, that's your branding. :happy:

view this post on Zulip Jan Range (May 01 2023 at 20:36):

Thanks :heart:๏ธ It were quite a lot of commits though :sweat_smile:

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 20:38):

Heh. So now what? Put this in EasyDataverse and run a real test or two?

view this post on Zulip Jan Range (May 01 2023 at 20:50):

Yes, that sounds great!

view this post on Zulip Jan Range (May 01 2023 at 20:50):

Will try this the next days. Need to go to sleep now :sleeping:

view this post on Zulip Philip Durbin ๐Ÿš€ (May 01 2023 at 20:56):

Good night! Thanks again! :dataverse_man:

view this post on Zulip Philip Durbin ๐Ÿš€ (May 02 2023 at 02:10):

@Jan Range thanks for opening https://github.com/gdcc/container-test/pull/1

view this post on Zulip Philip Durbin ๐Ÿš€ (May 02 2023 at 02:11):

Meanwhile, I've been trying to build on your work, playing around at https://github.com/IQSS/dataverse-sample-data/actions/runs/4856813925/jobs/8656732449 (one of many runs) but I'm getting a strange error:

{'status': 'ERROR', 'message': 'There was an error when trying to add the new file. Temp directory is not configured.'}

view this post on Zulip Jan Range (May 02 2023 at 04:35):

Hm this might be something special to the runner. Found that the runner has a dedicated temp that needs to be used:

https://github.com/actions/toolkit/issues/518
https://docs.github.com/en/actions/learn-github-actions/contexts#runner-context

view this post on Zulip Oliver Bertuch (May 02 2023 at 07:21):

Good Lord! Being a holiday for one day and you guys turn on the heat here!

view this post on Zulip Oliver Bertuch (May 02 2023 at 07:21):

Glad you enjoy the experience so far @Jan Range

view this post on Zulip Oliver Bertuch (May 02 2023 at 07:21):

Working hard on improving it further :smile:

view this post on Zulip Jan Range (May 02 2023 at 07:23):

:fire::fire::fire:

view this post on Zulip Jan Range (May 02 2023 at 07:35):

@Philip Durbin solved the "waiting" issue. There is an action that pings an endpoint until a certain status code is received.

view this post on Zulip Philip Durbin ๐Ÿš€ (May 02 2023 at 11:06):

@Jan Range great! Have you tried uploading a file? Do you get the same "Temp directory is not configured" error?

view this post on Zulip Philip Durbin ๐Ÿš€ (May 02 2023 at 11:33):

Shiro from the R client is excited, by the way: https://github.com/IQSS/dataverse-client-r/issues/4#issuecomment-1530287863

view this post on Zulip Jan Range (May 02 2023 at 13:24):

Not yet, but I saw your message regarding the temp error. I think this may be exclusive to GitHub's runner. Will give it a try and see if I can reproduce the error.

view this post on Zulip Philip Durbin ๐Ÿš€ (May 02 2023 at 13:28):

Awesome. Thanks!

view this post on Zulip Philip Durbin ๐Ÿš€ (May 02 2023 at 13:28):

@Oliver Bertuch might know how to fix it. Maybe we just need to set an environment variable before we run docker compose up.

view this post on Zulip Oliver Bertuch (May 02 2023 at 13:33):

There is only 1 reason how this error message can be triggered

view this post on Zulip Oliver Bertuch (May 02 2023 at 13:33):

The error is based on this exception

view this post on Zulip Oliver Bertuch (May 02 2023 at 13:34):

This condition can only reached via this error handling, which means: Dataverse has no write permissions to the directory

view this post on Zulip Oliver Bertuch (May 02 2023 at 13:35):

You need to check where we can write in a runner so the volumes are actually usable

view this post on Zulip Oliver Bertuch (May 02 2023 at 13:36):

Such things are hidden in the container logs... One would need to add a step with if: always() to make sure they get extracted and uploaded as artifacts of a run

view this post on Zulip Oliver Bertuch (May 02 2023 at 13:36):

Maybe even make it distinct artifacts for Postgres, Solr and Dataverse

view this post on Zulip Philip Durbin ๐Ÿš€ (May 02 2023 at 13:37):

No write permission! :grimacing:

view this post on Zulip Oliver Bertuch (May 02 2023 at 13:52):

Note: GitHub Actions must be run by the default Docker user (root). Ensure your Dockerfile does not set the USER instruction, otherwise you will not be able to access GITHUB_WORKSPACE.

https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#docker-container-filesystem

view this post on Zulip Oliver Bertuch (May 02 2023 at 13:54):

This is for Docker actions. So we may find a way around that in our case

view this post on Zulip Oliver Bertuch (May 02 2023 at 13:54):

Idea: how about we use a tmpfs mount instead of the volume mapping? This will be ephemeral anyway.

view this post on Zulip Oliver Bertuch (May 02 2023 at 13:55):

(This might be a problem for some test that checks for the presence of files uploaded in the volume directly. But maybe that's an OK limitation?)

view this post on Zulip Philip Durbin ๐Ÿš€ (May 02 2023 at 14:00):

All hacks welcome!

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 01:51):

I tried a couple things but they didn't work:

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 02:03):

Hmm, I'd dumping the logs now (server.log). It says,

Failed to create filesTempDirectory: /dv/temp

https://github.com/IQSS/dataverse-sample-data/actions/runs/4867550949/jobs/8680232083#step:10:1527

So maybe I'm not configuring this correctly with MPCONFIG. :thinking:

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 02:49):

no-idea.jpg

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 10:37):

@Oliver Bertuch any ideas for me? My most recent commit:

I can't seem to change it from /dv/temp.

view this post on Zulip Oliver Bertuch (May 03 2023 at 10:43):

May I mess around with your PR branch @Philip Durbin ?

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 11:13):

@Oliver Bertuch of course!

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 11:13):

Please go for it! Thanks!

view this post on Zulip Oliver Bertuch (May 03 2023 at 13:10):

Here you are https://github.com/IQSS/dataverse-sample-data/actions/runs/4872123218

view this post on Zulip Oliver Bertuch (May 03 2023 at 13:10):

I did tweak already a few different other places...

view this post on Zulip Oliver Bertuch (May 03 2023 at 13:11):

Maybe we can copy that to https://github.com/gdcc/container-test as well

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 13:11):

Fantastic! Thanks, @Oliver Bertuch :heart:

view this post on Zulip Oliver Bertuch (May 03 2023 at 13:12):

@Jan Range this might be of interest for you as well. Here's the diff. https://github.com/IQSS/dataverse-sample-data/compare/master...container-test

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 13:13):

This part seems important:

    volumes:
      - ${RUNNER_TEMP}/app/data:/dv

view this post on Zulip Oliver Bertuch (May 03 2023 at 13:13):

Crucial, not just important.

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 13:14):

So is the container sort of hard coded to use /dv?

view this post on Zulip Oliver Bertuch (May 03 2023 at 13:14):

OK to be fair: it might also just work with the standard GITHUB_WORKSPACE, but it seems good practice to go for the temp dir that is distinctly documented

view this post on Zulip Oliver Bertuch (May 03 2023 at 13:14):

The other crucial part is probably the initializer container that tweaks the ownership of these folders...

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 13:27):

@Oliver Bertuch I just pointed to your work from this comment https://github.com/IQSS/dataverse-frontend/pull/85#issuecomment-1533030542

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 13:55):

Which builds upon work by @Jan Range of course. :heart:

view this post on Zulip Jan Range (May 03 2023 at 13:56):

Awesome!! Happy to see its working now :heart:๏ธ

view this post on Zulip Jan Range (May 03 2023 at 13:56):

Firing up the EasyDataverse tests now :fire:

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 13:56):

Heh. Great!

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 13:58):

One of the finalists for the Inkscape 1.3 about screen contest was :fire: set the world on fire :fire:. Not that I endorse this. And it didn't win.

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 18:57):

I just added all this great work to the agenda for tomorrow's Containerization Working Group meeting: https://docs.google.com/document/d/1U3yvg9yG5Wnm_tQkDLf5XyREYyFVoRE4_-UvnxuryVE/edit?usp=sharing

view this post on Zulip Oliver Bertuch (May 03 2023 at 19:17):

Haha "great work"... for now it's a lot of red tape and bandaids holding together some pieces that fall apart the second you look away...

view this post on Zulip Oliver Bertuch (May 03 2023 at 19:17):

Sorry to sound pessimistic, but I fear there is a lot of more road to cover before champagne

view this post on Zulip Jan Range (May 03 2023 at 19:30):

Lets hope for the best :-)

view this post on Zulip Philip Durbin ๐Ÿš€ (May 03 2023 at 20:04):

I'm looking forward to additional German engineering! :flag_germany:

view this post on Zulip Philip Durbin ๐Ÿš€ (May 04 2023 at 00:36):

"This looks awesome." -- https://github.com/IQSS/dataverse-client-r/issues/4#issuecomment-1533597903

view this post on Zulip Philip Durbin ๐Ÿš€ (May 04 2023 at 16:41):

Philip Durbin said:

So is the container sort of hard coded to use /dv?

I confirmed with @Oliver Bertuch today that /dv/ is not hard coded. Phew. :sweat_smile:

view this post on Zulip Philip Durbin ๐Ÿš€ (May 04 2023 at 16:48):

@Jan Range so are you thinking you'll wait for the proposed Dataverse GitHub Action ( https://dataverse.zulipchat.com/#narrow/stream/377090-python/topic/Dataverse.20GitHub.20Action ) before using containers for API tests?

I'm asking because I'm wondering if there's interest from you or others in using config above from sample data more or less as-is, bandaids and all. :happy:

view this post on Zulip Oliver Bertuch (May 04 2023 at 16:50):

Philip Durbin said:

Philip Durbin said:

So is the container sort of hard coded to use /dv?

I confirmed with Oliver Bertuch today that /dv/ is not hard coded. Phew. :sweat_smile:

Of course this is not hard coded, it's simply using a sane default. You can set this stuff via MPCONFiG if you'd want to

view this post on Zulip Oliver Bertuch (May 04 2023 at 16:51):

That said, usually in the container world people benefit from clear structured paths that are documented, so it's easier to follow

view this post on Zulip Oliver Bertuch (May 04 2023 at 16:51):

This is because you'll always have this layer of indirectness with the volumes you need to mount

view this post on Zulip Oliver Bertuch (May 04 2023 at 16:52):

So kind of fixing this by providing sane defaults saves headaches for devops that deploy this stuff

view this post on Zulip Oliver Bertuch (May 04 2023 at 16:52):

But again, nothing is hard-coded here. Just smoothing the experience

view this post on Zulip Jan Range (Dec 02 2023 at 00:12):

I have added some tests and cleaned up the repo. I think the action is ready to be used for testing pyDataverse :raised_hands:

https://github.com/gdcc/dataverse-action/pull/8


Last updated: Nov 01 2025 at 14:11 UTC