Skip to content

Run OctivBookerBot on Schedule #12

Run OctivBookerBot on Schedule

Run OctivBookerBot on Schedule #12

name: Run OctivBookerBot on Schedule
on:
schedule:
- cron: "55 18 * * *" # “At 18:55 UTC every day.”
workflow_dispatch:
env:
DOCKER_IMAGE: "octivbooker:v2.4.0"
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
environment_dir_list: ${{ steps.get_envdirs.outputs.environment_dir_list }}
steps:
-
name: Checkout code
uses: actions/checkout@v4
-
name: List environment subdirectories
id: get_envdirs
run: |
# Find all subdirectories within /src/data/prod
ENV_SUBDIRS=$(find src/slotbooker/data/prod -type d -maxdepth 1 -mindepth 1 -exec basename {} \;)
ENV_SUBDIR_LIST=$(echo "$ENV_SUBDIRS" | jq -R -s -c 'split("\n")[:-1]')
echo "environment_dir_list=$ENV_SUBDIR_LIST" >> $GITHUB_OUTPUT
echo $ENV_SUBDIR_LIST
run-octivbooker:
name: "🏋️‍♂️ Run OctivBooker ${{ matrix.environment }}"
needs: prepare
runs-on: ubuntu-latest
strategy:
matrix:
environment: ${{ fromJson(needs.prepare.outputs.environment_dir_list) }}
environment: ${{ matrix.environment }} # Use the environment from the matrix
steps:
-
name: Checkout code
uses: actions/checkout@v4
-
name: Set up Docker
uses: docker/setup-buildx-action@v2
-
name: Run MailingBot Docker Container
run: |
docker run --rm --volume $(pwd)/src/slotbooker/data/prod/${{ matrix.environment }}:/app/src/slotbooker/data/ \
-e OCTIV_USERNAME="${{ SECRETS.OCTIV_USERNAME }}" \
-e OCTIV_PASSWORD="${{ SECRETS.OCTIV_PASSWORD }}" \
-e EMAIL_SENDER="${{ SECRETS.EMAIL_SENDER }}" \
-e EMAIL_PASSWORD="${{ SECRETS.EMAIL_PASSWORD }}" \
-e EMAIL_RECEIVER="${{ SECRETS.EMAIL_RECEIVER }}" \
-e EMAIL_RECEIVER_NAME="${{ SECRETS.EMAIL_RECEIVER_NAME }}" \
-e DAYS_BEFORE_BOOKABLE="${{ VARS.DAYS_BEFORE_BOOKABLE }}" \
-e EXECUTION_BOOKING_TIME="${{ VARS.EXECUTION_BOOKING_TIME }}" \
seblum/${{ENV.DOCKER_IMAGE}}