Deploy index #86
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 '[email protected]' | |
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 |