-
Notifications
You must be signed in to change notification settings - Fork 0
152 lines (123 loc) · 5 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
147
148
149
150
151
152
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 f210e042988b91bcdc2abeca7a2d85e178edadb2
cd ${{ env.vm_original }} && git reset --hard 7313ce5199f8a3da7850085d0f7f6a3ca2c89bf6
cd ${{ env.gui_original }} && git reset --hard 530d1ed7b8c45560f9a0580d6a00c87ecbec4721
- 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] && npm install [email protected] && npm install --save-dev babel-plugin-prismjs
- 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: Remove unused assets
run: |
cd ${{ env.gui_original }}
rm -f src/lib/libraries/decks/thumbnails/*
rm -f src/lib/libraries/decks/steps/*
- name: Build Blocks
run: |
cd ${{ env.blocks_original }}
NODE_ENV=production npm run prepublish
- name: Build VM
run: |
cd ${{ env.vm_original }}
NODE_ENV=production npm run build
- name: Build Scratch
run: |
cd ${{ env.gui_original }}
NODE_ENV=production 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 }}