-
Notifications
You must be signed in to change notification settings - Fork 0
149 lines (135 loc) · 5.16 KB
/
windows.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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
name: Windows Build
on:
push:
paths-ignore:
- 'LICENSE'
- 'README.md'
- '.github/workflows/linux.yml'
jobs:
build:
if: ${{ false }} # disable for now
runs-on: windows-2019
env:
SBCL_VERSION: 2.1.9
VCPKG_CONCURRENCY: 1
VCPKG_DEFAULT_TRIPLET: x64-windows
VCPKG_MAX_CONCURRENCY: 1
VCPKG_FEATURE_FLAGS: fastbuild,versions
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
lfs: true
- name: mkdir
run: |
mkdir -p $HOME/Downloads
mkdir -p $HOME/sbcl
mkdir -p $HOME/quicklisp
mkdir -p $HOME/.cache/common-lisp
mkdir -p $HOME/AppData/Local/cache/common-lisp
shell: bash
- name: Get Current Month
id: current-month
run: echo "::set-output name=value::$(date -u '+%Y-%m')"
- name: Cache SBCL Setup
id: cache
uses: actions/cache@v2
env:
cache-name: cache-sbcl-choco
with:
path: |
~/Downloads/
~/quicklisp
~/.cache/common-lisp/
~/sbcl
~/AppData/Local/cache/common-lisp
key: "${{ steps.current-month.outputs.value }}-${{ env.cache-name }}-${{ runner.os }}"
- name: Restore Path To Cached Files
run: |
echo $HOME/sbcl/bin >> $GITHUB_PATH
if: steps.cache.outputs.cache-hit == 'true'
- run: choco install lessmsi make 7zip wget sbcl
- uses: lukka/run-vcpkg@v11
id: runvcpkg
with:
runVcpkgFormatString: '[`install`, `--recurse`, `--x-install-root`, `$[env.VCPKG_INSTALLED_DIR]`, `--triplet`, `$[env.VCPKG_DEFAULT_TRIPLET]`]'
vcpkgGitCommitId: 5b1214315250939257ef5d62ecdcbca18cf4fb1c
runVcpkgInstall: true
- run: cp -v vcpkg/packages/*/bin/*.dll C:/windows/system32/
- name: Install SBCL ${{ env.SBCL_VERSION }}
run: |
cd ~/Downloads
wget http://downloads.sourceforge.net/project/sbcl/sbcl/${{ env.SBCL_VERSION }}/sbcl-${{ env.SBCL_VERSION }}-source.tar.bz2
tar xjf sbcl-${{ env.SBCL_VERSION }}-source.tar.bz2
cd sbcl-${{ env.SBCL_VERSION }}
sh make.sh --with-sb-core-compression
unset SBCL_HOME
INSTALL_ROOT=~/sbcl ./install.sh
shell: bash
if: steps.cache.outputs.cache-hit != 'true'
- name: Install quicklisp
run: |
export SBCL_HOME="$HOME/sbcl/lib/sbcl"
export PATH="$HOME/sbcl/bin:${PATH}"
cd ~/Downloads
wget https://beta.quicklisp.org/quicklisp.lisp
sbcl --disable-debugger \
--eval '(load "quicklisp.lisp")' \
--eval '(quicklisp-quickstart:install)' \
--eval '(ql-util:without-prompting (ql:add-to-init-file))' \
--eval '(ql:update-all-dists)' \
--eval '(ql-dist:install-dist "http://bodge.borodust.org/dist/org.borodust.bodge.txt" :replace t :prompt nil)' \
--quit
shell: bash
if: steps.cache.outputs.cache-hit != 'true'
# git config due SBCL does not support windows new lines https://bugs.launchpad.net/sbcl/+bug/310185
- name: Get LISP deps
run: |
cd ~/quicklisp/local-projects/
git config --global core.autocrlf false
(test -d cl-openal) || git clone -b fixalut --depth=1 https://github.com/azimut/cl-openal
( cd cl-openal/ ; git pull )
(test -d nepal) || git clone --depth=1 https://github.com/azimut/nepal
( cd nepal/ ; git pull )
(test -d rocketman) || git clone --depth=1 https://github.com/azimut/rocketman
( cd rocketman ; git pull )
(test -d cepl) || git clone --depth=1 https://github.com/azimut/cepl
( cd cepl ; git pull )
(test -d glsl-spec) || git clone --depth=1 https://github.com/azimut/glsl-spec
( cd glsl-spec ; git pull )
(test -d cepl.fond) || git clone --depth=1 https://github.com/cbaggers/cepl.fond
( cd cepl.fond ; git pull )
(test -d cm) || git clone --depth=1 https://github.com/ormf/cm
( cd cm/ ; git pull )
shell: bash
- name: Build Binary
run: |
export PATH="$HOME/sbcl/bin:${PATH}"
cd bin/
make
shell: bash
- uses: vimtor/action-zip@v1
with:
files: bin/AppDir/
dest: scenic-Windows_NT.zip
- name: Dev Release
uses: marvinpinto/action-automatic-releases@latest
if: "!startsWith(github.ref, 'refs/tags/')"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "latest-windows"
prerelease: true
title: "Development Windows Build"
files: |
scenic*.zip
- name: Stable Release
uses: marvinpinto/action-automatic-releases@latest
if: "startsWith(github.ref, 'refnns/tags/')"
with:
prerelease: false
repo_token: "${{ secrets.GITHUB_TOKEN }}"
files: |
bin/scenic*.zip
# - name: DEBUG SHELL
# uses: mxschmitt/action-tmate@v3n
# if: ${{ failure() }}