1
0

update& switch to python version

This commit is contained in:
sangge-redmi 2025-02-11 15:23:51 +08:00
parent ad28b73245
commit 68db5879c6
6 changed files with 112 additions and 29 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
.venv/
__pycache__/
*.pyc
.env

View File

@ -1,11 +1,45 @@
# setup-zola # setup-zola
This action sets up Zola static site generator in your GitHub Actions workflow. This action sets up Zola static site generator in your GitHub Actions workflow.
It supports downloading Zola from any S3-compatible storage service.
## Usage ## Usage
Basic usage:
```yaml ```yaml
uses: my-org/setup-zola@v1 - uses: my-org/setup-zola@v1
with: with:
version: "0.19.2" # Optional version: "0.19.2" # Optional, defaults to 0.19.2
access_key: ${{ secrets.S3_ACCESS_KEY }} # Required
secret_key: ${{ secrets.S3_SECRET_KEY }} # Required
endpoint: "https://your-s3-endpoint.com" # Required
bucket: ${{ secrets.S3_BUCKET }} # Required
``` ```
## Example workflow
```yaml
name: Build with Zola
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Zola
uses: my-org/setup-zola@v1
with:
version: "0.19.2"
access_key: ${{ secrets.S3_ACCESS_KEY }}
secret_key: ${{ secrets.S3_SECRET_KEY }}
endpoint: "https://your-s3-endpoint.com"
bucket: ${{ secrets.S3_BUCKET }}
- name: Build site
run: zola build
```
## License
MIT

View File

@ -4,12 +4,33 @@ inputs:
version: version:
description: "The version of Zola to install" description: "The version of Zola to install"
required: false required: false
default: "0.18.0" default: "0.19.2"
access_key:
description: "s3 Access Key"
required: true
secret_key:
description: "s3 Secret Key"
required: true
endpoint:
description: "S3 endpoint URL"
required: true
bucket:
description: "S3 bucket"
required: true
runs: runs:
using: "composite" using: "composite"
steps: steps:
- name: Install dependencies
shell: bash
run: pip install -r ./requirements.txt
- name: Run install script - name: Run install script
shell: bash shell: bash
run: | env:
chmod +x ${{ github.action_path }}/scripts/install_zola.sh INPUT_VERSION: ${{ inputs.version }}
${{ github.action_path }}/scripts/install_zola.sh ${{ inputs.version }} INPUT_ACCESS_KEY: ${{ inputs.access_key }}
INPUT_SECRET_KEY: ${{ inputs.secret_key }}
INPUT_ENDPOINT: ${{ inputs.endpoint }}
INPUT_BUCKET: ${{ inputs.bucket }}
run: python3 ${{ github.action_path }}/scripts/install_zola.py

8
requirements.txt Normal file
View File

@ -0,0 +1,8 @@
boto3==1.36.17
botocore==1.36.17
jmespath==1.0.1
python-dateutil==2.9.0.post0
python-dotenv==1.0.1
s3transfer==0.11.2
six==1.17.0
urllib3==2.3.0

38
scripts/install_zola.py Normal file
View File

@ -0,0 +1,38 @@
import os
import sys
import boto3
from botocore.client import Config
from dotenv import load_dotenv
import shutil
def install_zola():
version = os.environ["INPUT_VERSION"]
access_key = os.environ["INPUT_ACCESS_KEY"]
secret_key = os.environ["INPUT_SECRET_KEY"]
endpoint = os.environ["INPUT_ENDPOINT"]
bucket = "omybucket"
# 配置 S3 客户端
s3 = boto3.client(
"s3",
endpoint_url=endpoint,
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
config=Config(signature_version="s3v4"),
)
zola_filename = "zola-" + version
try:
s3.download_file(bucket, zola_filename, zola_filename)
shutil.copy(zola_filename, "/usr/local/bin/zola")
os.chmod("/usr/local/bin/zola", 0o755)
except Exception as e:
print(f"Error: {str(e)}")
sys.exit(1)
if __name__ == "__main__":
load_dotenv()
install_zola()

View File

@ -1,22 +0,0 @@
#!/bin/bash
set -e
ZOLA_VERSION="0.19.2"
BASE_URL="https://git.mamahaha.work/api/packages/actions/generic/zola"
echo "Checking Zola version $ZOLA_VERSION..."
# 使用 -I 只获取头信息,-s 静默模式
if ! curl -Is "${BASE_URL}/${ZOLA_VERSION}/zola" | grep -q "200 OK"; then
echo "Error: Version $ZOLA_VERSION not found"
exit 1
fi
echo "Downloading Zola version $ZOLA_VERSION..."
curl -OJ "${BASE_URL}/${ZOLA_VERSION}/zola"
chmod +x zola
sudo mv zola /usr/local/bin
echo "Zola installed successfully."