-
Notifications
You must be signed in to change notification settings - Fork 1
140 lines (117 loc) · 4.16 KB
/
test.yml
File metadata and controls
140 lines (117 loc) · 4.16 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: Test Hugo Theme
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
matrix:
hugo-version: ['0.123.7'] # Match your theme's requirement
defaults:
run:
shell: bash
steps:
<<<<<<< HEAD
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: false
=======
- name: Checkout code
uses: actions/checkout@v4
>>>>>>> gh-pages
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: ${{ matrix.hugo-version }}
extended: true
- name: Install htmltest
run: |
# Fetch the latest version of htmltest
LATEST_VERSION=$(curl -s https://api.github.com/repos/wjdp/htmltest/releases/latest | grep "tag_name" | cut -d '"' -f 4)
echo "LATEST_VERSION=${LATEST_VERSION}"
if [ -z "$LATEST_VERSION" ]; then
echo "Failed to fetch the latest version of htmltest."
exit 1
fi
# Adjust the URL to match the asset naming convention
echo "Downloading from: https://github.com/wjdp/htmltest/releases/download/${LATEST_VERSION}/htmltest_${LATEST_VERSION#v}_linux_amd64.tar.gz"
wget -q https://github.com/wjdp/htmltest/releases/download/${LATEST_VERSION}/htmltest_${LATEST_VERSION#v}_linux_amd64.tar.gz || {
echo "Failed to download htmltest. Check the URL or network connection.";
exit 1;
}
tar xzf htmltest_${LATEST_VERSION#v}_linux_amd64.tar.gz
sudo mv htmltest /usr/local/bin/
<<<<<<< HEAD
- name: Cache Hugo Modules
uses: actions/cache@v4
with:
path: |
${{ env.HUGO_CACHEDIR }}
exampleSite/vendor
key: ${{ runner.os }}-hugo-cache-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-hugo-cache-
- name: Cache Go Modules
uses: actions/cache@v4
with:
path: |
~/go/pkg/mod
~/.cache/go-build
key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-mod-
- name: Verify versions
run: |
hugo version
go version
- name: Install htmltest
run: |
LATEST=$(curl -s https://api.github.com/repos/wjdp/htmltest/releases/latest \
| grep '"tag_name":' | cut -d '"' -f 4)
wget -q "https://github.com/wjdp/htmltest/releases/download/${LATEST}/htmltest_${LATEST#v}_linux_amd64.tar.gz"
tar xzf htmltest_${LATEST#v}_linux_amd64.tar.gz
sudo mv htmltest /usr/local/bin/
- name: Initialize Hugo Module
working-directory: exampleSite
run: |
rm -f go.mod go.sum
hugo mod init github.com/stradichenko/PKB-theme/exampleSite
hugo mod get github.com/stradichenko/PKB-theme
hugo mod edit -replace github.com/stradichenko/PKB-theme=../
hugo mod tidy
hugo mod verify
- name: Vendor Hugo Modules
working-directory: exampleSite
run: hugo mod vendor
- name: Build the site
working-directory: exampleSite
run: |
hugo --minify \
--cleanDestinationDir \
--environment _default \
--logLevel debug
- name: Run HTML validation
working-directory: exampleSite
run: htmltest -c .htmltest.yml --log-level 3 --skip-external
=======
- name: Build and test
run: |
cd exampleSite
# Clean previous modules
rm -rf go.mod go.sum resources/_gen public
# Initialize temporary module
hugo mod init temp-site
# Get latest theme version automatically
hugo mod get -u github.com/stradichenko/PKB-theme
# Verify module integrity
hugo mod verify
# Build and test
hugo --minify --cleanDestinationDir --environment production --logLevel debug
htmltest -c .htmltest.yml --log-level 3 --skip-external
>>>>>>> gh-pages