Update docs
This commit is contained in:
parent
d05de90b76
commit
f1fddbf686
2 changed files with 31 additions and 58 deletions
11
ChangeLog.md
11
ChangeLog.md
|
@ -2,6 +2,17 @@
|
||||||
|
|
||||||
# ChangeLog
|
# ChangeLog
|
||||||
|
|
||||||
|
<a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C4-2E0-2E0-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
|
||||||
|
|
||||||
|
## 4.0.0 (2024-02-24)
|
||||||
|
|
||||||
|
<a id="changed"></a>
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
* Internal cache mechanism was added. Now action caches Roswell and Qlot files to speed up reruns. For example, without cache action could be executed about 4 minutes, and with cache it runs only 20 seconds on Ubuntu or 1 minute on Windows.
|
||||||
|
* A new input variable `cache` was added to control caching beheviour. It is `true` by default, but you can switch it to `false` to turn caching off.
|
||||||
|
|
||||||
<a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C3-2E2-2E0-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
|
<a id="x-28PROJECT-DOCS-2FCHANGELOG-3A-3A-7C3-2E2-2E0-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
|
||||||
|
|
||||||
## 3.2.0 (2023-01-30)
|
## 3.2.0 (2023-01-30)
|
||||||
|
|
78
README.md
78
README.md
|
@ -22,6 +22,8 @@ and [Qlot][e3ea] inside the Github `CI`.
|
||||||
`qlfile`, see "Overriding qlfile" section.
|
`qlfile`, see "Overriding qlfile" section.
|
||||||
* And finally, it can install a specified `ASDF` system and all it's dependencies.
|
* And finally, it can install a specified `ASDF` system and all it's dependencies.
|
||||||
But this step is optional.
|
But this step is optional.
|
||||||
|
* Installed Roswell, `.qlot` and `~/.cache/common-lisp/` files are cached to speed up
|
||||||
|
repeated builds.
|
||||||
|
|
||||||
<a id="x-28PROJECT-DOCS-3A-3A-40IMPLEMENTATION-SUPPORT-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
|
<a id="x-28PROJECT-DOCS-3A-3A-40IMPLEMENTATION-SUPPORT-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
|
||||||
|
|
||||||
|
@ -40,7 +42,7 @@ when trying to call `ros` or `qlot` scripts:
|
||||||
| **Implementation** | **Supported** |
|
| **Implementation** | **Supported** |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| abcl-bin | ✅ |
|
| abcl-bin | ✅ |
|
||||||
| allegro | ✅ |
|
| allegro | ✅ (sometimes fails because of "expired-license") |
|
||||||
| ccl-bin | ✅ |
|
| ccl-bin | ✅ |
|
||||||
| clasp | [❌][ecc6] |
|
| clasp | [❌][ecc6] |
|
||||||
| clasp-bin | ✅ |
|
| clasp-bin | ✅ |
|
||||||
|
@ -83,8 +85,8 @@ jobs:
|
||||||
LISP: ${{ matrix.lisp }}
|
LISP: ${{ matrix.lisp }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
- uses: 40ants/setup-lisp@v2
|
- uses: 40ants/setup-lisp@v4
|
||||||
with:
|
with:
|
||||||
asdf-system: cl-info
|
asdf-system: cl-info
|
||||||
- uses: 40ants/run-tests@v2
|
- uses: 40ants/run-tests@v2
|
||||||
|
@ -94,7 +96,7 @@ jobs:
|
||||||
The part, corresponding to an action call is:
|
The part, corresponding to an action call is:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: 40ants/setup-lisp@v2
|
- uses: 40ants/setup-lisp@v4
|
||||||
with:
|
with:
|
||||||
asdf-system: cl-info
|
asdf-system: cl-info
|
||||||
```
|
```
|
||||||
|
@ -121,7 +123,7 @@ working with this action. However, should you need to use a different version
|
||||||
instead, you can specify that via the `roswell-version` argument:
|
instead, you can specify that via the `roswell-version` argument:
|
||||||
|
|
||||||
```
|
```
|
||||||
- uses: 40ants/setup-lisp@v2
|
- uses: 40ants/setup-lisp@v4
|
||||||
with:
|
with:
|
||||||
roswell-version: v21.10.14.111
|
roswell-version: v21.10.14.111
|
||||||
```
|
```
|
||||||
|
@ -134,7 +136,7 @@ working with this action. However, should you need to use a different version
|
||||||
instead, you can specify that via the `asdf-version` argument:
|
instead, you can specify that via the `asdf-version` argument:
|
||||||
|
|
||||||
```
|
```
|
||||||
- uses: 40ants/setup-lisp@v2
|
- uses: 40ants/setup-lisp@v4
|
||||||
with:
|
with:
|
||||||
asdf-version: 3.3.5.3
|
asdf-version: 3.3.5.3
|
||||||
```
|
```
|
||||||
|
@ -147,7 +149,7 @@ working with this action. However, should you need to use a different version
|
||||||
instead, you can specify that via the `qlot-version` argument:
|
instead, you can specify that via the `qlot-version` argument:
|
||||||
|
|
||||||
```
|
```
|
||||||
- uses: 40ants/setup-lisp@v2
|
- uses: 40ants/setup-lisp@v4
|
||||||
with:
|
with:
|
||||||
qlot-version: 0.11.5
|
qlot-version: 0.11.5
|
||||||
```
|
```
|
||||||
|
@ -182,8 +184,8 @@ env:
|
||||||
QUICKLISP_DIST: ${{ matrix.quicklisp-dist }}
|
QUICKLISP_DIST: ${{ matrix.quicklisp-dist }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
- uses: 40ants/setup-lisp@v2
|
- uses: 40ants/setup-lisp@v4
|
||||||
with:
|
with:
|
||||||
asdf-system: cl-info
|
asdf-system: cl-info
|
||||||
qlfile-template: |
|
qlfile-template: |
|
||||||
|
@ -212,57 +214,17 @@ Usually installing Roswell, a lisp implementation and dependencies
|
||||||
take from 2 to 10 minutes. Multiply this to the number of
|
take from 2 to 10 minutes. Multiply this to the number of
|
||||||
matrix combinations and you'll get signifficant time.
|
matrix combinations and you'll get signifficant time.
|
||||||
|
|
||||||
To speed up build, you can use caching using a standad GitHub action `actions/cache@v2`.
|
Starting from version `4.0.0`, this action cares about caching itself
|
||||||
|
and you don't need to wrap it with `actions/cache`. This behaviour
|
||||||
|
of enabled by default. Without cache action could be executed about
|
||||||
|
4 minutes, and with cache it runs only 20 seconds on Ubuntu or 1 minute on Windows.
|
||||||
|
|
||||||
To make caching work, add such sections into your workflow file:
|
A new input variable `cache` was added to control caching beheviour.
|
||||||
|
It is `true` by default, but you can switch it to `false` to turn caching off.
|
||||||
|
|
||||||
```yaml
|
The current month is used as part of the cache key, to refresh caches every month.
|
||||||
- name: Grant All Perms to Make Cache Restoring Possible
|
This way a new Roswell, Qlot and `ASDF` will be used in a build. Also, you can set
|
||||||
run: |
|
`env.cache-name` variable to some value, to force rebuild with a fresh cache.
|
||||||
sudo mkdir -p /usr/local/etc/roswell
|
|
||||||
sudo chown "${USER}" /usr/local/etc/roswell
|
|
||||||
# Here the ros binary will be restored:
|
|
||||||
sudo chown "${USER}" /usr/local/bin
|
|
||||||
- name: Get Current Month
|
|
||||||
id: current-month
|
|
||||||
run: |
|
|
||||||
echo "::set-output name=value::$(date -u "+%Y-%m")"
|
|
||||||
- name: Cache Roswell Setup
|
|
||||||
id: cache
|
|
||||||
uses: actions/cache@v2
|
|
||||||
env:
|
|
||||||
cache-name: cache-roswell
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
/usr/local/bin/ros
|
|
||||||
~/.cache/common-lisp/
|
|
||||||
~/.roswell
|
|
||||||
/usr/local/etc/roswell
|
|
||||||
.qlot
|
|
||||||
key: "${{ steps.current-month.outputs.value }}-${{ env.cache-name }}-${{ runner.os }}-${{ hashFiles('qlfile.lock') }}"
|
|
||||||
- name: Restore Path To Cached Files
|
|
||||||
run: |
|
|
||||||
echo $HOME/.roswell/bin >> $GITHUB_PATH
|
|
||||||
echo .qlot/bin >> $GITHUB_PATH
|
|
||||||
if: steps.cache.outputs.cache-hit == 'true'
|
|
||||||
- uses: 40ants/setup-lisp@v2
|
|
||||||
if: steps.cache.outputs.cache-hit != 'true'
|
|
||||||
```
|
|
||||||
There are two important lines here.
|
|
||||||
|
|
||||||
* The last line `if: steps.cache.outputs.cache-hit != 'true'` skips
|
|
||||||
running lisp installation, it it was take from the cache.
|
|
||||||
* The `key` value:
|
|
||||||
|
|
||||||
`
|
|
||||||
key: "${{ steps.current-month.outputs.value }}-${{ env.cache-name }}-${{ runner.os }}-${{ hashFiles('qlfile.lock') }}"
|
|
||||||
`
|
|
||||||
|
|
||||||
It controls when your cache will be matched. If you are using `matrix`, put all it's components
|
|
||||||
into the key.
|
|
||||||
|
|
||||||
I also added a current month there, to make sure cache will be renewed at least monthly.
|
|
||||||
This way a new Roswell, Qlot and `ASDF` will be used in a build.
|
|
||||||
|
|
||||||
<a id="x-28PROJECT-DOCS-3A-3A-40ROADMAP-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
|
<a id="x-28PROJECT-DOCS-3A-3A-40ROADMAP-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue