From 2f646b72cab9de9cc2c5effef82853436e376539 Mon Sep 17 00:00:00 2001 From: David Kocher Date: Sun, 29 Dec 2024 20:48:18 +0100 Subject: [PATCH] Add deployment script. --- .github/workflows/publish.yml | 64 +++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..a14f95b --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,64 @@ +name: Build and Deploy Website + +on: + workflow_dispatch: + push: + branches: + - main + paths: + - 'content/**' +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + cache: 'pip' + python-version: 3.9 + + - name: Set up dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt --root-user-action ignore + + - name: Build the project + run: | + pelican content -s publishconf.py + + - name: Save Cache + uses: actions/cache/save@v4 + with: + key: html-${{ github.sha }} + path: ./output + publish: + name: Publish + runs-on: ubuntu-latest + needs: build + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Restore Cache + uses: actions/cache/restore@v4 + with: + key: html-${{ github.sha }} + path: ./output + + - name: Install Cyberduck CLI + run: | + echo -e "deb https://s3.amazonaws.com/repo.deb.cyberduck.io stable main" | sudo tee /etc/apt/sources.list.d/cyberduck.list > /dev/null + sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FE7097963FEFBE72 + sudo apt-get update + sudo apt-get -y install duck + + - name: Upload + env: + SFTP_IDENTITY: ${{ secrets.SFTP_IDENTITY }} + run: | + echo "$SFTP_IDENTITY" > private-key.pem + duck -y --username ${{ secrets.SFTP_USER }} --identity private-key.pem --existing compare --upload "${{ secrets.SFTP_URL }}" ./output/* \ No newline at end of file