-
Notifications
You must be signed in to change notification settings - Fork 140
111 lines (92 loc) · 3.81 KB
/
release.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
name: release
permissions:
contents: write
pages: write
on:
push:
branches:
- main
jobs:
release:
name: release
runs-on: ubuntu-latest
steps:
- name: Check out the repository
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: install mamba
uses: mamba-org/setup-micromamba@v2
with:
environment-file: environment.yml
init-shell: >-
bash
cache-environment: true
post-cleanup: 'all'
- name: set timezone
run: |
TZ="Europe/London" &&
sudo ln -snf /usr/share/zoneinfo/$TZ /etc/localtime
- name: install linux deps
run: |
sudo apt-get -y install openssl graphviz nano texlive graphviz-dev unzip
- name: install special fonts
run: |
mkdir -p /usr/share/fonts/truetype/ &&
wget https://www.wfonts.com/download/data/2015/10/08/varta/varta.zip &&
unzip varta.zip &&
install -m644 *.ttf /usr/share/fonts/truetype/ &&
rm *.ttf
rm varta.zip
- name: install text models
run: |
micromamba run -n codeforecon python3 -m spacy download en_core_web_sm &&
micromamba run -n codeforecon python3 -m nltk.downloader all
- name: special fix for todoify
run: |
sed -i '90 s/^/#/' /home/runner/micromamba/envs/codeforecon/lib/python3.10/site-packages/mdit_py_plugins/tasklists/__init__.py
# Issue with pymc needing np<2.0 and skimpy needing >2.0, so pip install of latter causes upgrade to np
- name: special fix for numpy
run: |
micromamba run -n codeforecon pip install --force-reinstall -v "numpy==1.26"
- name: Monkey patch for binsreg # sets np.math = math
run: |
sed -i '/^import\|^from.*import/ { :a; n; /^import\|^from.*import/! { x; s/.*//; x; ba; }; }; a\import math\nimport numpy as np\nnp.math = math' ~/micromamba/envs/codeforecon/lib/python3.10/site-packages/binsreg/funs.py
- name: git config # Needed as git config --get user.name is used in one example
run: |
git config user.name "$(git log -n 1 --pretty=format:%an)" &&
git config user.email "$(git log -n 1 --pretty=format:%ae)"
- name: build the book
run: |
micromamba run -n codeforecon jupyter-book build . --verbose
- name: Check if there is a parent commit
id: check-parent-commit
run: |
echo "::set-output name=sha::$(git rev-parse --verify --quiet HEAD^)"
- name: Detect and tag new version
id: check-version
if: steps.check-parent-commit.outputs.sha
uses: salsify/action-detect-and-tag-new-version@v2.0.3
with:
version-command: |
micromamba run -n codeforecon toml get --toml-path=pyproject.toml project.version
- name: Bump version for developmental release
if: "! steps.check-version.outputs.tag"
run: |
micromamba run -n codeforecon python version_bumper.py &&
version=$(micromamba run -n codeforecon toml get --toml-path=pyproject.toml project.version) &&
micromamba run -n codeforecon toml set --toml-path=pyproject.toml project.version $version.dev.$(date +%s)
- name: Publish
if: steps.check-version.outputs.tag
run: ghp-import -n -p -f _build/html
- name: Publish the release notes
uses: release-drafter/release-drafter@v6.0.0
with:
publish: ${{ steps.check-version.outputs.tag != '' }}
tag: ${{ steps.check-version.outputs.tag }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Success
if: steps.check-version.outputs.tag
run: |
echo "Success in releasing a new version of Coding for Economists!"