pipeline configuration
This commit is contained in:
58
.gitlab-ci.yml
Normal file
58
.gitlab-ci.yml
Normal file
@@ -0,0 +1,58 @@
|
||||
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 powershell
|
||||
|
||||
script:
|
||||
# Clone template repository from GitHub (public)
|
||||
- git clone https://github.com/$TEMPLATES_REPO.git template
|
||||
|
||||
# Clone scripts repository from GitHub (private)
|
||||
- git clone https://$GITHUB_TOKEN@github.com/$SCRIPTS_REPO.git 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
|
||||
- pwsh -Command ". ./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/
|
||||
Reference in New Issue
Block a user