-
Notifications
You must be signed in to change notification settings - Fork 3
140 lines (118 loc) · 4.34 KB
/
build_and_deploy.yml
File metadata and controls
140 lines (118 loc) · 4.34 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
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 }}
# 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
cache-dependency-glob: |
pyproject.toml
# run: uv sync --frozen --all-extras --dev --verbose
- name: Install Requirements
run: |
UV_SYSTEM_PYTHON=true uv sync --frozen --no-dev --verbose
uv pip list
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: |
mkdocs --version
# https://github.com/facelessuser/pymdown-extensions/issues/2240#issuecomment-1819117598
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