Hey Alan, > I would like to automatically create a new image and push to dockerhub with > github actions when I push changes to the github repository. Does anyone have > an example of this process in their repositories?
Well, I use GitHub actions to build a Docker image and push it to GitHub Container Registry, maybe this could help somehow: https://github.com/nuno-agostinho/psichomics/blob/master/.github/workflows/docker.yml <https://github.com/nuno-agostinho/psichomics/blob/master/.github/workflows/docker.yml> I use GitHub releases to release a new package version and, every time I release a new version, a new Docker image is built (this image also gets automatically tagged with the latest tag). I also build Docker images every time I push changes to the dev branch. Regarding DockerHub, I have DockerHub set up to automatically build Docker images every time I push to master (to create the latest tag) and dev branches in GitHub, as well as every time I create a new tag (which I do when creating new releases). I could put this in the GitHub actions, but I didn't bother yet. > I would ideally like the tag of this dockerhub push to be the R package > version (from the DESCRIPTION) to differentiate between images, is this > possible? I think you can run some bash script in your GitHub Actions based on your DESCRIPTION file. I would have to test but maybe something like: - name: Get R package version run: | version=$(grep Version DESCRIPTION | grep -o "[0-9.]\+") echo "packageVersion=${version}" >> $GITHUB_ENV shell: bash {0} You can then access this variable in other steps via ${{ env.packageVersion }} like so: - name: Build and push uses: docker/build-push-action@v2 with: push: true tags: ${{ github.repository }}:${{ env.packageVersion }} > Is there a way to tell the Dockerfile to install the R package in the current > repository? To build the image, I use ADD . . to put the GitHub repository content in the Docker image and then install the package using remotes::install_local(), as you can see from my Dockerfile: https://github.com/nuno-agostinho/psichomics/blob/master/Dockerfile <https://github.com/nuno-agostinho/psichomics/blob/master/Dockerfile> I hope I was clear and helpful. Please tell me if you need help with anything else! :) Best, Nuno Agostinho > On 3 Jun 2021, at 07:52, Murphy, Alan E <a.mur...@imperial.ac.uk> wrote: > > Hi all, > > I'm working on developing an R package with the aim to eventually submit to > Bioconductor. I would like to automatically create a new image and push to > dockerhub with github actions when I push changes to the github repository. > Does anyone have an example of this process in their repositories? > > Two things to also consider, I would ideally like the tag of this dockerhub > push to be the R package version (from the DESCRIPTION) to differentiate > between images, is this possible? Secondly, I currently have the dockerfile > created but, since my R package repository is private I have been building > the R package and using the tar.gz file in the dockerfile to install the > package (rather than using devtools::install_github()). Is there a way to > tell the Dockerfile to install the R package in the current repository? > > Kind regards, > Alan. > > Alan Murphy > Bioinformatician > Neurogenomics lab > UK Dementia Research Institute > Imperial College London > > [[alternative HTML version deleted]] > > _______________________________________________ > Bioc-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/bioc-devel [[alternative HTML version deleted]] _______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel