-
Notifications
You must be signed in to change notification settings - Fork 1
/
action.yml
123 lines (93 loc) · 3.89 KB
/
action.yml
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
name: 'WikiLeet'
description: 'Automatically parse your LeetCode submissions and generate a navigatable wiki of your solutions'
author: 'Zanger67'
branding:
icon: "book-open"
color: "yellow"
inputs:
username:
description: |
'Your LeetCode username'
'Default: Zanger'
default: 'Zanger'
runs:
using: 'composite'
steps:
- name: Checkout the current repository content
uses: actions/checkout@v2
with:
# Fetch all commits since init so we can trace each file's
# first commit timestamp. If not for this, the date for
# every single file will default to the most recent
# commit date since there's nothing to trace.
fetch-depth: 0
# Markdown generator is found in submodule + data submodule
submodules: "true"
- name: Pull current version of markdown generator | Cloning if not present
shell: bash
run: |
git clone --recurse-submodules https://github.com/Zanger67/Leetcode-Progress-Tracker.git '.readme_updater'
cd .readme_updater
echo "Initializing and updating submodules in case checkout resulted in uninitializations..."
git submodule update --init --recursive
git submodule update --recursive --remote
cd ../
# if [ -d .readme_updater/ ]; then
# echo "Submodule exists."
# else
# echo "Submodule not found. Adding..."
# git submodule add https://github.com/Zanger67/Leetcode-Progress-Tracker.git '.readme_updater'
# fi
# echo "Initializing and updating submodules..."
# git submodule update --init --recursive
# git submodule update --recursive --remote
# cd .readme_updater
# # Present for testing branch -- unused
# git fetch origin daily-by-official-dates
# git checkout daily-by-official-dates
# # Make sure current branch is the main live branch
# git fetch origin main
# git checkout main
# echo "Initializing and updating submodules in case checkout resulted in uninitializations..."
# git submodule update --init --recursive
# git submodule update --recursive --remote
# cd ../
- name: Ensure my-submissions directory exists
shell: bash
run: |
if [ -d my-submissions/ ]; then
echo "my-submissions directory found"
else
echo "my-submissions directory not found. Creating..."
mkdir "my-submissions"
fi
- name: Setup python 3.10
uses: actions/setup-python@v4
with:
python-version: "3.10"
cache: "pip"
# Dependencies for the markdown generator
- name: Install python packages
shell: bash
run: |
python -m pip install --upgrade pip
pip install -r '.readme_updater/requirements.txt'
- name: Execute the markdown generation python script
shell: bash
# -n: ignores previous .pkl stores of the modified dates (regenerate all from scratch)
# -g: use github log history to determine creation and modification dates of files
# -user: specify the username for the LeetCode account
run: python '.readme_updater/main.py' -n -g -user ${{ inputs.username }}
# Note: exit 0 should be redundant since this action triggers on a modification meaning
# at least one file edit, but might as well keep it in case of future changes
#
# Only exception I can think of is if you make a change in one commit
# then revert it in the next
- name: Commit updated markdown files to repo
shell: bash
run: |
git config --global user.name "Zanger67/leetcode"
git config --global user.email "Zanger67[bot]@Zanger67.github.io"
git add -- . ':!.readme_updater'
git commit -m 'Updated markdown files' || exit 0
git push