Add publish workflow
87
.github/workflows/publish.yml
vendored
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
name: Publish Hugo Site
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths-ignore:
|
||||||
|
- templates/**
|
||||||
|
|
||||||
|
workflow_run:
|
||||||
|
workflows: ["Update Projects Page"]
|
||||||
|
types:
|
||||||
|
- completed
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update_hugo_npm_dependencies:
|
||||||
|
name: Update Hugo npm Dependencies
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
outputs:
|
||||||
|
commit_hash: ${{ steps.commit_changes.outputs.commit_hash }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: "18"
|
||||||
|
|
||||||
|
- name: Install Hugo
|
||||||
|
uses: peaceiris/actions-hugo@v2
|
||||||
|
with:
|
||||||
|
hugo-version: "0.111.3"
|
||||||
|
extended: true
|
||||||
|
|
||||||
|
- name: Write composite package.json
|
||||||
|
run: hugo mod npm pack
|
||||||
|
|
||||||
|
- name: Install npm Packages
|
||||||
|
run: npm install
|
||||||
|
|
||||||
|
- name: Display Changes
|
||||||
|
run: git status
|
||||||
|
|
||||||
|
- name: Commit Changes
|
||||||
|
id: commit_changes
|
||||||
|
uses: stefanzweifel/git-auto-commit-action@v5
|
||||||
|
with:
|
||||||
|
commit_message: Update Hugo npm Dependencies
|
||||||
|
|
||||||
|
publish:
|
||||||
|
name: Publish Hugo Site
|
||||||
|
needs: update_hugo_npm_dependencies
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
ref: ${{ needs.update_hugo_npm_dependencies.outputs.commit_hash }}
|
||||||
|
|
||||||
|
- name: Install Node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: "18"
|
||||||
|
|
||||||
|
- name: Install Hugo
|
||||||
|
uses: peaceiris/actions-hugo@v2
|
||||||
|
with:
|
||||||
|
hugo-version: "0.111.3"
|
||||||
|
extended: true
|
||||||
|
|
||||||
|
- name: Install npm Packages
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Build Hugo
|
||||||
|
run: hugo --minify
|
||||||
|
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
publish_dir: ./public
|
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[submodule "themes/hugo-video"]
|
||||||
|
path = themes/hugo-video
|
||||||
|
url = https://github.com/martignoni/hugo-video.git
|
32
config.yaml
@@ -1,7 +1,9 @@
|
|||||||
baseurl: "https://davegallant.ca"
|
baseURL: /
|
||||||
languageCode: en-us
|
|
||||||
googleAnalytics: G-V8WJDERTX9
|
googleAnalytics: G-V8WJDERTX9
|
||||||
copyright: Dave Gallant
|
copyright: Dave Gallant
|
||||||
|
enableGitInfo: true
|
||||||
|
enableRobotsTXT: true
|
||||||
|
noJSConfigInAssets: true
|
||||||
|
|
||||||
params:
|
params:
|
||||||
author: Dave Gallant
|
author: Dave Gallant
|
||||||
@@ -20,6 +22,27 @@ params:
|
|||||||
username: davegallant
|
username: davegallant
|
||||||
repository: davegallant.github.io
|
repository: davegallant.github.io
|
||||||
|
|
||||||
|
prism:
|
||||||
|
languages:
|
||||||
|
- markup
|
||||||
|
- css
|
||||||
|
- clike
|
||||||
|
- javascript
|
||||||
|
- bash
|
||||||
|
- csharp
|
||||||
|
- hcl
|
||||||
|
- ignore
|
||||||
|
- json
|
||||||
|
- markdown
|
||||||
|
- powershell
|
||||||
|
- toml
|
||||||
|
- yaml
|
||||||
|
plugins:
|
||||||
|
- normalize-whitespace
|
||||||
|
- toolbar
|
||||||
|
- copy-to-clipboard
|
||||||
|
- command-line
|
||||||
|
|
||||||
menu:
|
menu:
|
||||||
main:
|
main:
|
||||||
- name: RSS
|
- name: RSS
|
||||||
@@ -29,6 +52,11 @@ menu:
|
|||||||
permalinks:
|
permalinks:
|
||||||
post: "/blog/:year/:month/:day/:slug/"
|
post: "/blog/:year/:month/:day/:slug/"
|
||||||
|
|
||||||
|
markup:
|
||||||
|
goldmark:
|
||||||
|
renderer:
|
||||||
|
unsafe: true
|
||||||
|
|
||||||
module:
|
module:
|
||||||
imports:
|
imports:
|
||||||
- path: github.com/davegallant/hugo-theme-gruvbox
|
- path: github.com/davegallant/hugo-theme-gruvbox
|
||||||
|
10
content/about.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
title: About
|
||||||
|
weight: -210
|
||||||
|
disable_comments: true
|
||||||
|
hide_date: true
|
||||||
|
---
|
||||||
|
|
||||||
|
I'm a software tinkerer with a passion for infrastructure, tooling, security, and coffee.
|
||||||
|
|
||||||
|
Feel free to reach out at [me@davegallant.ca](mailto:me@davegallant.ca).
|
@@ -11,7 +11,7 @@ There are a number of reasons why you might want to replace docker, especially o
|
|||||||
|
|
||||||
<!--more-->
|
<!--more-->
|
||||||
|
|
||||||
{{< tweet 1388586550682861568 >}}
|
{{< tweet user="moyix" id="1388586550682861568" >}}
|
||||||
|
|
||||||
Docker has been one of the larger influencers in the container world, helping to standardize the [OCI Image Format Specification](https://github.com/opencontainers/image-spec/blob/main/spec.md). For many developers, containers have become synonymous with terms like `docker` and `Dockerfile` (a file containing build instructions for a container image). Docker has certainly made it very convenient to build and run containers, but it is not the only solution for doing so.
|
Docker has been one of the larger influencers in the container world, helping to standardize the [OCI Image Format Specification](https://github.com/opencontainers/image-spec/blob/main/spec.md). For many developers, containers have become synonymous with terms like `docker` and `Dockerfile` (a file containing build instructions for a container image). Docker has certainly made it very convenient to build and run containers, but it is not the only solution for doing so.
|
||||||
|
|
||||||
|
2
go.mod
@@ -1,6 +1,6 @@
|
|||||||
module davegallant.github.io
|
module davegallant.github.io
|
||||||
|
|
||||||
go 1.21.5
|
go 1.23
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/davegallant/hugo-theme-gruvbox v0.0.0-20240102030224-3e3d39381e83 // indirect
|
github.com/davegallant/hugo-theme-gruvbox v0.0.0-20240102030224-3e3d39381e83 // indirect
|
||||||
|
810
package-lock.json
generated
39
package.json
@@ -33,36 +33,43 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@tabler/icons": "^2.44.0",
|
"@tabler/icons": "^2.39.0",
|
||||||
"flexsearch": "^0.7.31",
|
"flexsearch": "^0.7.31",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
"prism-themes": "^1.9.0",
|
"prism-themes": "^1.9.0",
|
||||||
"prismjs": "^1.29.0",
|
"prismjs": "^1.29.0",
|
||||||
"simple-icons": "^10.4.0",
|
"simple-icons": "^9.19.0",
|
||||||
"typeface-fira-code": "^1.1.13",
|
"typeface-fira-code": "^1.1.13",
|
||||||
"typeface-roboto-slab": "^1.1.13"
|
"typeface-roboto-slab": "^1.1.13"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@fullhuman/postcss-purgecss": "^5.0.0",
|
"@fullhuman/postcss-purgecss": "^5.0.0",
|
||||||
"cssnano": "^6.0.2",
|
"cssnano": "^6.0.1",
|
||||||
"eslint": "^8.56.0",
|
"eslint": "^8.52.0",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
"eslint-config-prettier": "^9.0.0",
|
||||||
"eslint-plugin-prettier": "^5.1.1",
|
"eslint-plugin-prettier": "^5.0.1",
|
||||||
"husky": "^8.0.3",
|
"husky": "^8.0.3",
|
||||||
"lint-staged": "^15.2.0",
|
"lint-staged": "^15.0.2",
|
||||||
"markdownlint-cli": "^0.38.0",
|
"markdownlint-cli": "^0.37.0",
|
||||||
"postcss": "^8.4.32",
|
"postcss": "^8.4.31",
|
||||||
"postcss-cli": "^11.0.0",
|
"postcss-cli": "^10.1.0",
|
||||||
"postcss-custom-media": "^10.0.2",
|
"postcss-custom-media": "^10.0.2",
|
||||||
"postcss-import": "^15.1.0",
|
"postcss-import": "^15.1.0",
|
||||||
"postcss-nesting": "^12.0.2",
|
"postcss-nesting": "^12.0.1",
|
||||||
"postcss-preset-env": "^9.3.0",
|
"postcss-preset-env": "^9.2.0",
|
||||||
"postcss-url": "^10.1.3",
|
"postcss-url": "^10.1.3",
|
||||||
"prettier": "^3.1.1",
|
"prettier": "^3.0.3",
|
||||||
"prettier-plugin-go-template": "^0.0.15",
|
"prettier-plugin-go-template": "^0.0.15",
|
||||||
"stylelint": "^16.0.2",
|
"stylelint": "^15.11.0",
|
||||||
"stylelint-prettier": "^5.0.0"
|
"stylelint-prettier": "^4.0.2"
|
||||||
},
|
},
|
||||||
"name": "davegallant.github.io",
|
"name": "davegallant.github.io",
|
||||||
"version": "0.1.0"
|
"version": "0.1.0",
|
||||||
|
"scripts": {
|
||||||
|
"lint": "npm run lint:css && npm run lint:js && npm run lint:md",
|
||||||
|
"lint:css": "stylelint --fix **/*.css",
|
||||||
|
"lint:js": "eslint --fix --ext js .",
|
||||||
|
"lint:md": "markdownlint --fix **/*.md",
|
||||||
|
"prepare": "husky install"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1 +0,0 @@
|
|||||||
davegallant.ca
|
|
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 157 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 935 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 149 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 248 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.9 KiB |