2 Commits

Author SHA1 Message Date
184c687f92 Update action.yml 2023-07-12 00:06:11 +00:00
a7f015f130 Revert to vivi action 2023-07-12 00:05:46 +00:00
4 changed files with 54 additions and 60 deletions

View File

@@ -1,9 +1,14 @@
FROM jekyll/minimal:latest
USER root
LABEL version="1.2.0"
LABEL description="Minimal Jekyll image with basic build tools."
LABEL maintainer="Vivien Richter <vivien-richter@outlook.de>"
# Requirements
USER root
RUN apk --no-cache add build-base
EXPOSE 4000/tcp
# Entry point
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -1,46 +1,44 @@
# jekyll-build-action
Plain in-place Jekyll build action to be used in pipelines with a variety of possible deploy targets.
# Jekyll action
[![License](https://img.shields.io/badge/%E2%9A%96%EF%B8%8F-CC%20BY%204.0-brightgreen)](https://creativecommons.org/licenses/by/4.0)
# Usage
This Action literally only invokes a Jekyll build, so your pipeline needs to ensure the Jekyll source is first gathered, and once this action completes you must copy the contents of the destination folder to your intended hosting location.
This action provides just Jekyll and some basic build tools ([Alpine's `build-base`](https://pkgs.alpinelinux.org/package/v3.3/main/x86/build-base)).
It's based on the [jekyll/minimal:latest](https://github.com/envygeeks/jekyll-docker) [Docker](https://docker.com) image and the [jerryjvl/jekyll-build-action](https://github.com/jerryjvl/jekyll-build-action).
A typical example would be a GitHub repository with Jekyll source, and publishing the output to an S3 bucket configured for static site hosting.
The pipeline to realize this would look something like the following:
## Usage
```yaml
jobs:
jekyll:
name: Build and deploy Jekyll site
name: Build and store Jekyll site
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build
uses: jerryjvl/jekyll-build-action@v1
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
- name: Checkout 📥
uses: actions/checkout@v2.3.4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
lfs: true
fetch-depth: 1
- name: Sync output to S3
run: |
aws s3 sync ./_site/ s3://my-s3-bucket --delete
- name: Build ⚙️
uses: vivi90/jekyll-minimal-action@v1.1.0
with:
command: jekyll build
- name: Store 📦
uses: actions/upload-artifact@v2.2.4
if: success()
with:
name: site
path: _site
```
Just use the `command` option as you like:
- `jekyll build --trace`
- `jekyll serve`
- and so on..
# References
For more technical details on these steps and associated setup, see:
- [actions/checkout](https://github.com/actions/checkout)
- [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials)
- [Creating encrypted secrets in GitHub](https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets)
## Contribution
Please feel free to create issues and/or pull requests.
# A Note on Security
Please be mindful of the third-party actions you trust with your secrets, credentials and content. Without investigation you should assume a third-party action might exfiltrate your content to some secondary location, or modify contents before they are published.
## License
This project is free software under the terms of the CC BY 4.0 license.
For more details please see the LICENSE file or: [Creative Commons](http://creativecommons.org/licenses/by/4.0)
Futhermore, if you rely on versioning that the publisher of an action can control, the action you think you are running could be changed later without your knowledge.
... Trust but verify!
*The licenses of the installed components may differ.*

View File

@@ -1,8 +1,11 @@
name: 'Build Jekyll'
description: 'Local pipeline build of Jekyll content; follow-on actions must publish it somewhere'
name: 'Jekyll Minimal Action'
author: 'Vivien Richter <vivien-richter@outlook.de>'
description: 'Pure minimal Jekyll pipeline with basic build tools for universal usage.'
runs:
using: 'docker'
image: 'Dockerfile'
args:
- jekyll build
branding:
icon: 'book-open'
color: 'white'
color: 'red'

View File

@@ -1,28 +1,16 @@
#!/bin/sh
set -x # verbose mode
set -e # stop executing after error
# Set verbose mode
set -x
echo "Starting Jekyll build"
# Stop executing after error
set -e
####################################################
# Set workspace permissions
####################################################
# Change permissions
chmod -R a+w /github/workspace
pwd
# Use working directory
cd /github/workspace
ls -R
chmod -R a+w ./
####################################################
# Build the Jekyll site
####################################################
jekyll build --trace
####################################################
# Build completed
####################################################
echo "Completed Jekll build"
# Run command
$*