Skip to content

Publish content to web server, GitHub is not a CDN #14

Publish content to web server, GitHub is not a CDN

Publish content to web server, GitHub is not a CDN #14

Workflow file for this run

# GHA workflow recipe to upload repository content using WebDAV when changed.
# In this setup, the workflow will connect to a tailnet first.
# https://github.com/tailscale/github-action
---
name: Publish content
on:
pull_request: ~
push:
branches: [ main ]
# Allow job to be triggered manually.
workflow_dispatch:
# Cancel in-progress jobs when pushing to the same branch.
concurrency:
cancel-in-progress: true
group: ${{ github.workflow }}-${{ github.ref }}
jobs:
publish-webserver:
runs-on: "ubuntu-latest"
name: Upload content to web server
steps:
- name: Connect using Tailscale
uses: tailscale/github-action@v3
with:
oauth-client-id: ${{ secrets.TS_OAUTH_CLIENT_ID }}
oauth-secret: ${{ secrets.TS_OAUTH_SECRET }}
tags: tag:ci
- name: Probe network connectivity
run: ping -c2 web
- name: Acquire sources
uses: actions/checkout@v4
- name: Install Rclone
run: sudo apt-get install --yes --no-install-recommends --no-install-suggests rclone
- name: Configure Rclone
run: |
mkdir -p ~/.config/rclone
cat << EOF > ~/.config/rclone/rclone.conf
[datasets-webdav]
type = webdav
url = https://web/downloads/datasets
vendor = other
EOF
- name: Upload content using WebDAV
env:
RCLONE_WEBDAV_USER: webdav
RCLONE_WEBDAV_PASS: ${{ secrets.RCLONE_WEBDAV_PASS }}
run: |
rclone sync $(pwd) datasets-webdav:/cratedb-datasets \
--copy-links --delete-excluded --exclude="/.git**"