CondorBox packages your GitHub repository into a Docker container and submits it to an HTCondor cluster for reproducible, scalable high-performance computing.
The CondorBox package provides the following functionalities:
-
Clone and Run a GitHub Repository on HTCondor:
- Use the
CondorBox()
function to package a GitHub repository into a Docker container, submit it to an HTCondor cluster, and execute the desired operations remotely.
- Use the
-
Sync Results Locally:
- After the job completes remotely, use the
CondorUnbox()
function to download the results from the remote server, extract the output, and synchronise it with your local project directory.
- After the job completes remotely, use the
To use CondorBox, ensure the following dependencies are installed and configured on your system:
-
Docker
- Docker is required to build and run containers.
- Install Docker from https://www.docker.com/products/docker-desktop.
- On Windows, ensure Docker Desktop is running.
-
GNU Make
-
Make is required for automating tasks defined in Makefiles.
-
For Windows users,
make
can be installed via:- Rtools (Recommended for R users):
Download from https://cran.r-project.org/bin/windows/Rtools/. - MinGW or Chocolatey:
Use these package managers to installmake
.
- Rtools (Recommended for R users):
-
For Linux users:
sudo apt-get install build-essential
-
For macOS users:
xcode-select --install
-
-
Git Bash (for Windows)
- Required to execute UNIX-style shell commands on Windows.
- Install Git from https://git-scm.com/downloads.
-
SSH Access
- SSH should be set up for secure communication with the remote server.
- Test connectivity:
To access private GitHub repositories or to authenticate securely, you need a GitHub Personal Access Token (PAT).
-
Log in to your GitHub account at https://github.com/.
-
Navigate to Settings > Developer settings > Personal access tokens > Tokens (classic).
-
Click Generate new token > Generate new token (classic).
-
Provide a descriptive note (e.g., "CondorBox access").
-
Set the expiration date for the token (e.g., 30 days).
-
Select the following scopes:
repo
(Full control of private repositories)read:org
(Optional: Access organisational resources)
-
Click Generate token.
-
Copy the generated token immediately and store it securely. (It will not be shown again.)
- Save your GitHub PAT as an environment variable to avoid hardcoding it into scripts:
Sys.setenv(GitPass = "your_github_pat")
- Use the
Sys.getenv("GitPass")
function to access the GitHub PAT in your scripts.