75 lines
2.5 KiB
YAML
75 lines
2.5 KiB
YAML
stages:
|
|
- build-and-deploy
|
|
|
|
variables:
|
|
ZOLA_VERSION: "0.20.0"
|
|
TEMPLATES_REPO: "netangel/solombala-shipyard-archive-site"
|
|
SCRIPTS_REPO: "netangel/archive-tovarishestvo"
|
|
S3_ENDPOINT: "se-sto-1.linodeobjects.com"
|
|
S3_BUCKET: "schooner-archive-v2"
|
|
GIT_SUBMODULE_STRATEGY: none
|
|
|
|
build-and-deploy:
|
|
stage: build-and-deploy
|
|
image: ubuntu:latest
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "main"
|
|
- if: $CI_PIPELINE_SOURCE == "web"
|
|
before_script:
|
|
# Update package list and install dependencies
|
|
- apt-get update -qq
|
|
- apt-get install -y curl tar sudo git openssh-client s3cmd wget
|
|
# Install PowerShell
|
|
- wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
|
|
- dpkg -i packages-microsoft-prod.deb
|
|
- apt-get update -qq
|
|
- apt-get install -y powershell
|
|
|
|
script:
|
|
# Clone template repository from GitHub (public)
|
|
- echo "Cloning templates from https://github.com/$TEMPLATES_REPO.git"
|
|
- git clone https://github.com/$TEMPLATES_REPO.git template
|
|
|
|
# Clone scripts repository from GitHub (private)
|
|
- echo "Cloning scripts from GitHub (private repo)"
|
|
- git clone https://$GITHUB_TOKEN@github.com/$SCRIPTS_REPO.git scripts
|
|
|
|
# Debug: Check what was cloned
|
|
- echo "Contents of current directory:"
|
|
- ls -la
|
|
- echo "Contents of scripts directory:"
|
|
- ls -la scripts/
|
|
|
|
# Install Zola
|
|
- curl -L "https://github.com/getzola/zola/releases/download/v${ZOLA_VERSION}/zola-v${ZOLA_VERSION}-x86_64-unknown-linux-gnu.tar.gz" | tar xz
|
|
- mv zola /usr/local/bin
|
|
|
|
# Convert JSON to Zola content using PowerShell
|
|
- echo "Running PowerShell conversion script"
|
|
- echo "Current working directory: $(pwd)"
|
|
- echo "Script path: $(pwd)/scripts/Convert-ToZola.ps1"
|
|
- test -f "./scripts/Convert-ToZola.ps1" && echo "Script exists" || echo "Script NOT found"
|
|
- pwsh -File "./scripts/Convert-ToZola.ps1" -MetadataPath "./" -ZolaContentPath "./template/content"
|
|
|
|
# Build Zola site
|
|
- cd template
|
|
- zola build
|
|
- cd ..
|
|
|
|
# Configure s3cmd
|
|
- |
|
|
cat > ~/.s3cfg << EOF
|
|
[default]
|
|
access_key = $LINODE_BUCKET_ACCESS_KEY_ID
|
|
secret_key = $LINODE_BUCKET_SECRET_ACCESS_KEY
|
|
host_base = $S3_ENDPOINT
|
|
host_bucket = %(bucket)s.$S3_ENDPOINT
|
|
use_https = True
|
|
EOF
|
|
|
|
# Upload to Linode Objects
|
|
- |
|
|
s3cmd sync --acl-public \
|
|
--no-mime-magic \
|
|
--guess-mime-type \
|
|
./template/public/ s3://$S3_BUCKET/ |