Skip to content

Deploy index

Deploy index #96

Workflow file for this run

name: Deploy index
on:
push:
branches: [ "main" ]
workflow_dispatch:
schedule:
- cron: '0 0 * * *' # Run every day at midnight
jobs:
update:
name: Update
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
- name: Fetch plugin manifests and generate a list of plugins
run: go run cmd/crawler/main.go index.yaml
- name: Check for changes
id: changes
run: |
if git diff --quiet index.yaml; then
echo "has_changes=false" >> $GITHUB_OUTPUT
else
echo "has_changes=true" >> $GITHUB_OUTPUT
fi
- name: Push updated index.yaml
if: steps.changes.outputs.has_changes == 'true'
run: |
git config --global user.name 'GitHub Actions'
git config --global user.email 'actions@github.com'
git add index.yaml
git commit -m "Update index.yaml"
git pull --rebase
git push origin main
outputs:
has_changes: ${{ steps.changes.outputs.has_changes }}
build:
name: Build
runs-on: ubuntu-latest
needs: update
if: needs.update.outputs.has_changes == 'true'
env:
HUGO_VERSION: 0.125.6
steps:
- uses: actions/checkout@v4
with:
ref: main # To fetch the updated index.yaml
- name: Copy plugin index
run: |
cp index.yaml site/data/
mkdir -p site/public/v1
cp index.yaml site/public/v1/
- name: Install Hugo CLI
run: |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Install Dart Sass
run: sudo snap install dart-sass
- name: Setup Pages
id: pages
uses: actions/configure-pages@v4
- name: Build with Hugo
env:
# For maximum backward compatibility with Hugo modules
HUGO_ENVIRONMENT: production
HUGO_ENV: production
run: |
hugo \
-s site \
--gc \
--minify \
--baseURL "${{ steps.pages.outputs.base_url }}/"
- uses: actions/upload-pages-artifact@v3
with:
path: site/public
deploy:
needs: build
name: Deploy
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
permissions:
pages: write
id-token: write
steps:
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v4
id: deployment