Files
site_opytex/.gitea/workflows/deploy.yml
Bertrand Benjamin bcd9480e66
All checks were successful
Build and Deploy to MinIO / build (push) Successful in 1m17s
Build and Deploy to MinIO / deploy (push) Successful in 38s
fix: same for download-artifact
2025-09-06 06:35:24 +02:00

108 lines
3.1 KiB
YAML

name: Build and Deploy to MinIO
on:
push:
branches:
# - master
- 2025-2026
jobs:
build:
runs-on: ubuntu-latest
outputs:
branch-type: ${{ steps.branch-info.outputs.branch-type }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Set branch type
id: branch-info
run: |
if [ "${{ gitea.ref }}" = "refs/heads/master" ]; then
echo "branch-type=master" >> $GITEA_OUTPUT
else
echo "branch-type=year" >> $GITEA_OUTPUT
fi
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.13"
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y imagemagick libmagickwand-dev ghostscript
- name: Install Python dependencies
run: |
pip install --no-cache-dir -r requirements.txt
- name: Setup content directory for year branches
env:
BRANCH_NAME: ${{ gitea.ref_name }}
if: gitea.ref != 'refs/heads/master'
run: |
echo "Branch name: $BRANCH_NAME"
echo "Testing URL: https://git.opytex.org/Cours/${BRANCH_NAME}.git"
curl -I "https://git.opytex.org/Cours/${BRANCH_NAME}.git" || echo "URL not accessible"
rm -rf content
git clone https://git.opytex.org/Cours/${BRANCH_NAME}.git content
- name: Build site
run: |
export MAGICK_HOME=/usr
pelican ./content/ -o ./output -s publishconf.py --relative-urls
- name: Upload build artifact
uses: actions/upload-artifact@v3
with:
name: site-build
path: output/
retention-days: 1
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- name: Download build artifact
uses: actions/download-artifact@v3
with:
name: site-build
path: output/
- name: Install MinIO client
run: |
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
- name: Configure MinIO client
env:
MINIO_REPOSITORY: ${{ secrets.MINIO_REPOSITORY }}
MINIO_ACCESS_KEY: ${{ secrets.MINIO_ACCESS_KEY }}
MINIO_SECRET_KEY: ${{ secrets.MINIO_SECRET_KEY }}
run: |
mc alias set storage $MINIO_REPOSITORY $MINIO_ACCESS_KEY $MINIO_SECRET_KEY
- name: Deploy to MinIO - Master branch
env:
MINIO_BUCKET: ${{ secrets.MINIO_BUCKET }}
if: needs.build.outputs.branch-type == 'master'
run: |
mc mirror --overwrite --exclude "enseignements/*" ./output/ storage/$MINIO_BUCKET
- name: Deploy to MinIO - Year branches
env:
MINIO_BUCKET: ${{ secrets.MINIO_BUCKET }}
BRANCH_NAME: ${{ gitea.ref_name }}
if: needs.build.outputs.branch-type == 'year'
run: |
mc mirror --overwrite --remove ./output/ storage/$MINIO_BUCKET/enseignements/${BRANCH_NAME}/