Skip to content

Publish 1.3 to server #82

Publish 1.3 to server

Publish 1.3 to server #82

Workflow file for this run

name: Publish Website eoed-docs.eliatra.com
on:
workflow_dispatch:
push:
branches:
# - 1.3.x-ee
pull_request:
env:
WEBSITE_URL: 'eoed-docs.eliatra.com'
jobs:
setup:
runs-on: ubuntu-latest
outputs:
ruby-version: '3.0'
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2'
bundler-cache: true
build:
needs: setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ needs.setup.outputs.ruby-version }}
bundler-cache: true
- name: Update _config.yml
run: |
sed -i '/^url:/c\url: "https://${{ env.WEBSITE_URL }}"' _config.yml
WEBSITE_VERSION=$(cat _config.yml|grep "^opensearch_major_minor_version:"|cut -d ':' -f2| tr -d '[:blank:]')
sed -i '/^baseurl:/c\baseurl: "/docs/'"$WEBSITE_VERSION"'"' _config.yml
cat _config.yml|grep -e "^url:" -e "^baseurl:"
- run: bundle exec jekyll build --future
- uses: actions/upload-artifact@v4
with:
name: site-artifacts
path: _site
retention-days: 1
deploy:
needs: build
runs-on: ubuntu-latest
if: github.event_name != 'pull_request'
steps:
- uses: actions/download-artifact@v4
with:
name: site-artifacts
path: _site
- name: Install SSH key
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.SFTP_SSH_PRIVATE_KEY }}
- name: Upload Folder
run: |
sudo apt install lftp -y
lftp --version
WEBSITE_VERSION=$(cat _site/_config.yml|grep "^opensearch_major_minor_version:"|cut -d ':' -f2| tr -d '[:blank:]')
echo "Start SFTP upload"
lftp -u ${{ secrets.SFTP_USERNAME }}, -e "set sftp:connect-program 'ssh -a -x -o StrictHostKeyChecking=no'; mkdir -p /var/www/${{ env.WEBSITE_URL }}/html/$WEBSITE_VERSION; mirror --reverse --parallel=20 --verbose _site/ /var/www/${{ env.WEBSITE_URL }}/html/$WEBSITE_VERSION/; quit" sftp://${{ secrets.SFTP_SERVER }}
post_deploy:
needs: deploy
runs-on: ubuntu-latest
if: github.event_name != 'pull_request'
steps:
- name: Purge Cloudflare Cache
run: |
STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" \
-X POST "https://api.cloudflare.com/client/v4/zones/${{ secrets.ELIATRA_CLOUDFLARE_ZONEID }}/purge_cache" \
-H "Authorization: Bearer ${{ secrets.ELIATRA_CLOUDFLARE_DECACHE_TOKEN }}" \
-H "Content-Type: application/json" \
--data '{"purge_everything":true}')
if [ "$STATUS_CODE" -ne 200 ]; then
echo "Cloudflare API call failed with status $STATUS_CODE"
exit 1
else
echo "Cloudflare cache purged successfully"
fi