Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Help generate docs #1409

Merged
merged 8 commits into from
Jan 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 3 additions & 18 deletions .github/workflows/site_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ jobs:
echo "VCELL_TAG=`git rev-parse --short HEAD`" >> $GITHUB_ENV
echo "VCELL_REPO_NAMESPACE=ghcr.io/virtualcell" >> $GITHUB_ENV
echo "VCELL_DEPLOY_REMOTE_DIR=/share/apps/vcell3/deployed_github" >> $GITHUB_ENV
echo "VCELL_WEBHELP_REMOTE_DIR=/share/apps/vcell3/apache_webroot/htdocs/webstart/VCell_Tutorials/VCell_Help" >> $GITHUB_ENV
if [ "${{ github.event.inputs.vcell_site }}" == "rel" ]; then\
echo "VCELL_MANAGER_NODE=vcellapi.cam.uchc.edu" >> $GITHUB_ENV;\
echo "VCELL_INSTALLER_REMOTE_DIR="/share/apps/vcell3/apache_webroot/htdocs/webstart/Rel"" >> $GITHUB_ENV;\
Expand Down Expand Up @@ -182,30 +181,16 @@ jobs:
ssh-keyscan $VCELL_MANAGER_NODE >> ~/.ssh/known_hosts
cd docker/swarm
scp ${{ secrets.CD_FULL_USER }}@${VCELL_MANAGER_NODE}:${VCELL_DEPLOY_REMOTE_DIR}/${VCELL_CONFIG_FILE_NAME} .
- name: setup java 17 with maven cache (for documentation build)
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'maven'
- name: build documentation for web help
if: ${{ github.event.inputs.server_only != 'true' }}
run: |
set -ux
mvn clean install -DskipTests
- name: deploy installers and web help to vcell.org
- name: deploy installers to vcell.org
run: |
set -ux
cd docker/swarm
ssh -t ${{ secrets.CD_FULL_USER }}@${VCELL_MANAGER_NODE} sudo docker login -u ${{ github.actor }} -p "${{ secrets.GITHUB_TOKEN }}" ghcr.io
if ${{ github.event.inputs.server_only != 'true' }}; then
# build and install the client installers, and the web help (kubernetes cluster deployments are separate)
./deploy-action-kubernetes.sh \
# build and install the client installers (kubernetes cluster deployments are separate)
./deploy-installers.sh \
--ssh-user ${{ secrets.CD_FULL_USER }} \
--build-installers \
--installer-deploy-dir $VCELL_INSTALLER_REMOTE_DIR \
--webhelp-local-dir ../../vcell-client/target/classes/vcellDoc \
--webhelp-deploy-dir $VCELL_WEBHELP_REMOTE_DIR \
${VCELL_MANAGER_NODE} \
./${VCELL_CONFIG_FILE_NAME}
export VCELL_SITE_CAMEL=`cat $VCELL_CONFIG_FILE_NAME | grep VCELL_SITE_CAMEL | cut -d"=" -f2`
Expand Down
60 changes: 60 additions & 0 deletions .github/workflows/webhelp-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: webhelp-deploy.yml
on:
workflow_dispatch:
jobs:
deploy:
name: Deploy Web Help Documentation
runs-on: ubuntu-20.04
steps:
- name: checkout tag
uses: actions/checkout@v4

- name: setup global environment variables
run: |
echo "VCELL_REPO_NAMESPACE=ghcr.io/virtualcell" >> $GITHUB_ENV
echo "VCELL_DEPLOY_REMOTE_DIR=/share/apps/vcell3/deployed_github" >> $GITHUB_ENV
echo "VCELL_WEBHELP_REMOTE_DIR=/share/apps/vcell3/apache_webroot/htdocs/webstart/VCell_Tutorials/VCell_Help" >> $GITHUB_ENV
echo "VCELL_MANAGER_NODE=vcellapi.cam.uchc.edu" >> $GITHUB_ENV

- name: setup ssh-agent
uses: webfactory/ssh-agent@v0.8.0
with:
ssh-private-key: ${{ secrets.VC_KEY }}

- name: setup java 17 with maven cache (for documentation build)
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'maven'

- name: build documentation for web help
run: |
mvn clean install -DskipTests

- name: Deploy Web Help
run: |
set -ux
webhelp_local_dir="~/work/vcell/vcell/vcell-client/target/classes/vcellDoc"
ssh_user=${{ secrets.CD_FULL_USER }}
webhelp_deploy_dir="${VCELL_WEBHELP_REMOTE_DIR}"
manager_node="${VCELL_MANAGER_NODE}"
if [[ -z "${webhelp_deploy_dir}" || -z "${manager_node}" ]]; then
echo "Error: VCELL_WEBHELP_REMOTE_DIR or manager_node is not set."
exit 1;
fi
if ! rsync -a -vvv "${webhelp_local_dir}/topics" "$ssh_user@$manager_node:${webhelp_deploy_dir}";
then
echo "failed to copy html files in topic directory to webhelp deploy directory";
fi
if ! scp "${webhelp_local_dir}/VCellHelpTOC.html" "$ssh_user@$manager_node:${webhelp_deploy_dir}/index.html";
then
echo "failed to index.html to webhelp deploy directory";
fi

- name: Setup tmate session 3
uses: mxschmitt/action-tmate@v3
if: ${{ failure() }}
with:
limit-access-to-actor: false

158 changes: 0 additions & 158 deletions docker/swarm/deploy-action-kubernetes.sh

This file was deleted.

113 changes: 113 additions & 0 deletions docker/swarm/deploy-installers.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
#!/usr/bin/env bash

set -ux

show_help() {
echo "Deploys vcell client installers."
echo ""
echo "usage: deploy-installers.sh [OPTIONS] REQUIRED-ARGUMENTS"
echo ""
echo " REQUIRED-ARGUMENTS"
echo " manager-node any node for ssh access (e.g. vcellapi.cam.uchc.edu)"
echo ""
echo " local-config-file local config file for setting environment"
echo ""
echo " [OPTIONS]"
echo " -h | --help show this message"
echo ""
echo " --ssh-user user user for ssh to node [defaults to current user id using whoami]"
echo " (user must have passwordless sudo for docker commands on manager-node)"
echo ""
echo " --installer-deploy-dir /path/to/installer/dir"
echo " directory for installers accessible to users"
echo " typically a web-accessible location to download the client installers for each platform"
echo ""
echo ""
echo ""
echo "example:"
echo ""
echo "deploy-installers.sh \\"
echo " --ssh-user vcell \\"
echo " --installer_deploy_dir /share/apps/vcell3/apache_webroot/htdocs/webstart/Alpha \\"
echo " vcellapi.cam.uchc.edu \\"
echo " ./server.config"
exit 1
}

if [[ $# -lt 2 ]]; then
show_help
fi

ssh_user=$(whoami)
installer_deploy_dir=
while :; do
case $1 in
-h|--help)
show_help
exit
;;
--ssh-user)
shift
ssh_user=$1
;;
--installer-deploy-dir)
shift
installer_deploy_dir=$1
;;
-?*)
printf 'ERROR: Unknown option: %s\n' "$1" >&2
echo ""
show_help
;;
*) # Default case: No more options, so break out of the loop.
break
esac
shift
done

if [[ $# -ne 2 ]] ; then
show_help
fi

manager_node=$1
local_config_file=$2

# get settings from config file
vcell_siteCamel=$(grep VCELL_SITE_CAMEL "$local_config_file" | cut -d"=" -f2)
vcell_version=$(grep VCELL_VERSION_NUMBER "$local_config_file" | cut -d"=" -f2)
vcell_build=$(grep VCELL_BUILD_NUMBER "$local_config_file" | cut -d"=" -f2)


#
# if --installer-deploy-dir, then copy the installers from ./generated_installers directory to the installer deploy directory
#
if [ ! -z "$installer_deploy_dir" ]; then
# vcell_siteCamel=Alpha
# vcell_version=7.0.0
# vcell_build=19
# version=7_0_0_19
version=$(echo "${vcell_version}_${vcell_build}" | tr '.' _)
if ! scp "./generated_installers/VCell_${vcell_siteCamel}_windows-x64_${version}_64bit.exe" \
"./generated_installers/VCell_${vcell_siteCamel}_unix_${version}_32bit.sh" \
"./generated_installers/VCell_${vcell_siteCamel}_macos_${version}_64bit.dmg" \
"./generated_installers/VCell_${vcell_siteCamel}_windows-x32_${version}_32bit.exe" \
"./generated_installers/VCell_${vcell_siteCamel}_unix_${version}_64bit.sh" \
"./generated_installers/updates.xml" \
"./generated_installers/updates_linux32.xml" \
"./generated_installers/updates_linux64.xml" \
"./generated_installers/updates_mac64.xml" \
"./generated_installers/updates_win32.xml" \
"./generated_installers/updates_win64.xml" \
"./generated_installers/output.txt" \
"./generated_installers/md5sums" \
"./generated_installers/sha256sums" \
"$ssh_user@$manager_node:${installer_deploy_dir}";
then
echo "failed to copy installers";
exit 1;
fi
fi

echo "exited normally"

exit 0
2 changes: 1 addition & 1 deletion docker/swarm/serverconfig-uch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ VCELL_SSH_CMD_RESTORE_TIMEOUT=5

#
# write out the environment file to be for:
# 1. deployment actions (e.g. deploy-action-kubernetes.sh)
# 1. deployment actions (e.g. deploy-installers.sh)
# 2. runtime environment for the docker stack run command (kubernetes uses ConfigMaps in vcell-fluxcd repo), what about VCell Installers?
#
cat <<EOF >"$_outputfile"
Expand Down