-
Notifications
You must be signed in to change notification settings - Fork 3
141 lines (119 loc) · 4.4 KB
/
build_and_deploy.yml
File metadata and controls
141 lines (119 loc) · 4.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
name: Build and Deploy
run-name: "🚀[${{ github.workflow }}] - ${{ github.event.head_commit.message }}"
on:
push:
branches:
- main
concurrency:
group: ${{ github.workflow}}
cancel-in-progress: true
# env:
# PYTHON_VERSION: 3.x
permissions:
contents: write
id-token: write
pages: write
jobs:
build_and_deploy:
runs-on: ubuntu-latest
environment: copdips.com
steps:
- name: Checkout repository
# https://squidfunk.github.io/mkdocs-material/blog/2023/09/22/using-git-sparse-checkout-for-faster-documentation-builds/
uses: actions/checkout@v4
with:
fetch-depth: 0
sparse-checkout: |
docs
tools
- name: Set up Python runtime
uses: actions/setup-python@v5
with:
# python-version: ${{ env.PYTHON_VERSION }}
python-version-file: .python-version
# cache: pip
# cache-dependency-path: |
# requirements.txt
- name: Debug
run: |
env | sort -f
ls -lart
# - name: Get pip cache dir
# run: |
# os_version=$(cat /etc/os-release | grep -i "version=" | cut -c9- | tr -d '"' | tr ' ' '_')
# github_workflow_full_path="${GITHUB_WORKFLOW_REF%@*}"
# python_full_version=$(python -c 'import platform; print(platform.python_version())')
# node_major_version=$(node --version | cut -d'.' -f1 | tr -d 'v')
# echo "os_version=$os_version" >> $GITHUB_ENV
# echo "github_workflow_full_path=$github_workflow_full_path" >> $GITHUB_ENV
# echo "python_full_version=$python_full_version" >> $GITHUB_ENV
# echo "PIP_CACHE_DIR=$(pip cache dir)" >> $GITHUB_ENV
# - name: cache pip
# uses: actions/cache@v4
# with:
# path: |
# ${{ env.pythonLocation }}
# .cache/plugin/git-committers/
# key: ${{ env.github_workflow_full_path}}-${{ env.os_version }}-${{ env.python_full_version }}-${{ env.node_major_version}}-${{ hashFiles('requirements.txt') }}
# - name: Set up build cache
# uses: actions/cache/restore@v3
# with:
# key: mkdocs-material-${{ hashfiles('.cache/**') }}
# path: .cache
# restore-keys: |
# mkdocs-material-
- name: Install os dependencies
run: sudo apt-get install pngquant
- name: Install uv
uses: astral-sh/setup-uv@v6
with:
enable-cache: true
activate-environment: true
cache-dependency-glob: |
pyproject.toml
# run: uv sync --frozen --all-extras --dev --verbose
# - name: Install Requirements
# run: |
# uv sync --frozen --no-dev --verbose
# uv pip show mkdocs
# working-directory: ${{ github.workspace }}
- name: Install Python dependencies
run: |
make ci-install
- name: Remove future-dated markdown files
run: |
# set -x
current_date=$(date +%Y-%m-%d)
echo "Current date: $current_date"
find ./docs/posts -type f -name "*.md" | while read file; do
filename=$(basename "$file")
filedate=$(echo "$filename" | grep -oP '^\d{4}-\d{2}-\d{2}')
if [ -n "$filedate" ] && [ "$(date -d "$filedate" +%s)" -gt "$(date -d "$current_date" +%s)" ]; then
echo "Deleting future-dated file: $file (date: $filedate > $current_date)"
rm "$file"
fi
done
- name: Build documentation
run: |
uv run mkdocs --version
# https://github.com/facelessuser/pymdown-extensions/issues/2240#issuecomment-1819117598
uv run python -m mkdocs build -s
cp ads.txt ./site/
env:
MKDOCS_GIT_COMMITTERS_APIKEY: ${{ secrets.GH_TOKEN_FOR_GIT_COMMITTERS }}
# - name: Adjust permissions
# run: |
# chmod -c -R +rX site/ | while read line; do
# echo "::warning title=Invalid file permissions automatically fixed::$line"
# done
- name: Upload to GitHub Pages
uses: actions/upload-pages-artifact@v3
with:
path: site
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v4
# - name: Save build cache
# uses: actions/cache/save@v3
# with:
# key: mkdocs-material-${{ hashfiles('.cache/**') }}
# path: .cache