-
Notifications
You must be signed in to change notification settings - Fork 0
146 lines (118 loc) · 4.7 KB
/
release-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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
name: Build and publish to npm
on:
release:
types: [created]
workflow_dispatch:
inputs:
branch:
description: 'The branch to checkout'
required: false
default: 'master'
jobs:
build_and_release:
runs-on: ubuntu-latest
env:
NODE_OPTIONS: "--max-old-space-size=5120" # locally export NODE_OPTIONS=--max-old-space-size=5120
MBHome: /home/runner/work/MartyBlocks/MartyBlocks
mblib: /home/runner/work/MartyBlocks/MartyBlocks/marty-blocks-lib/
REPLACEMENTS: /home/runner/work/MartyBlocks/MartyBlocks/marty-blocks-lib/replacements
blocks_original: /home/runner/work/MartyBlocks/MartyBlocks/scratch-blocks
vm_original: /home/runner/work/MartyBlocks/MartyBlocks/scratch-vm
gui_original: /home/runner/work/MartyBlocks/MartyBlocks/scratch-gui
steps:
- uses: actions/checkout@v2
with:
ref: ${{ github.event.inputs.branch || 'master' }}
- name: Set up Python 2.7
run: |
sudo apt-get update
sudo apt-get install python2.7
- name: Link python to python2.7
run: |
sudo ln -sf /usr/bin/python2.7 /usr/bin/python
- name: Use Node.js 16.15.0
uses: actions/setup-node@v3
with:
node-version: 16.15.0
- name: see node version
run: node -v
- name: see memory allocation
run: node -e 'console.log(`node heap limit = ${require("v8").getHeapStatistics().heap_size_limit / (1024 * 1024)} Mb`)'
- name: Clone repos
run: |
git clone -b develop https://github.com/llk/scratch-blocks.git --no-checkout ${{ env.blocks_original }}
git clone -b develop https://github.com/llk/scratch-vm.git --no-checkout ${{ env.vm_original }}
git clone -b develop https://github.com/llk/scratch-gui.git --no-checkout ${{ env.gui_original }}
- name: Checkout appropriate commit
run: |
cd ${{ env.blocks_original }} && git reset --hard f9107bf5d0479d632658f2b203995f5ae6d75363
cd ${{ env.vm_original }} && git reset --hard 3b36a8e3ea7f3caa5b4bf4ae7b4f821a986a1378
cd ${{ env.gui_original }} && git reset --hard 738c86bb58e336711280aec33c510d7aef79408e
- name: Install scratch
run: |
cd ${{ env.blocks_original }} && npm install
cd ${{ env.vm_original }} && npm install && npm install [email protected]
cd ${{ env.gui_original }} && npm install && npm i [email protected]
- name: Install marty blocks library
run: |
cd ${{ env.mblib }}
npm install
- name: setting production environments
run: |
cd ${{ env.mblib }}
npx node set-production.js
- name: Link repositories
run: |
cd ${{ env.mblib }} && npm link
cd ${{ env.blocks_original }} && npm link && npm link marty-blocks-lib
cd ${{ env.vm_original }} && npm link && npm link marty-blocks-lib scratch-blocks
cd ${{ env.gui_original }} && npm link marty-blocks-lib scratch-blocks scratch-vm
- name: Copy marty-machine web workder
run: |
cp ${{ env.mblib }}/node_modules/@robotical/marty-machine-lib/dist/assets/* ${{ env.gui_original }}/static
- name: Print web worker files
run: |
cd ${{ env.gui_original }}
ls -l ${{ env.gui_original }}/static
- name: check if scracth-blocks linking worked
run: |
cd ${{ env.blocks_original }}
npm list || true
- name: check if scratch-vm linking worked
run: |
cd ${{ env.vm_original }}
npm list || true
- name: check if gui linking worked
run: |
cd ${{ env.gui_original }}
npm list || true
- name: Copy replacements
run: |
cp -r ${{ env.REPLACEMENTS }}/* ${{ env.MBHome }}
- name: Build Blocks
run: |
cd ${{ env.blocks_original }}
npm run prepublish
- name: Build VM
run: |
cd ${{ env.vm_original }}
npm run build
- name: Build Scratch
run: |
cd ${{ env.gui_original }}
BUILD_MODE=dist npm run build
- name: print gui components
run: |
cd ${{ env.gui_original }}
ls -l ${{ env.gui_original }}/src/components
- name: Copy dist files
run: |
mkdir -p ${{ env.MBHome }}/dist
cp -r ${{ env.gui_original }}/build/* ${{ env.MBHome }}/dist
- uses: actions/setup-node@v3
with:
node-version: 16.15.0
registry-url: "https://registry.npmjs.org"
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}