Skip to content
This repository was archived by the owner on Jul 3, 2020. It is now read-only.

Commit 67a12eb

Browse files
committed
Merge pull request #101 from runtimejs/ci-release
Automatically release tagged versions
2 parents 6278e61 + 49caac1 commit 67a12eb

13 files changed

Lines changed: 127 additions & 20 deletions

File tree

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,11 @@ disk/boot/initrd-downloaded
2525
disk/boot/runtime-downloaded
2626
netdump.txt
2727
/js/node_modules
28+
/node_modules
29+
/out
2830
/js/initrd
2931
/build/system/kernel.js
32+
release.tag
33+
npm-debug.log
34+
/src/kernel/version-autogenerated.h
35+
/runtimecorelib.json

.npmignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/*
2+
/*/
3+
!/js/
4+
!/scripts/
5+
!/runtimecorelib.json

js/.runtimeignore renamed to .runtimeignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,15 @@ README.md
1313
LICENSE.isaac
1414
LICENSE
1515
/node_modules/util/test/
16+
/src
17+
/deps
18+
/tmp
19+
/scripts
20+
/testcc
21+
/disk
22+
/docker
23+
/docs
24+
/gen
25+
/out
26+
/runtimejs
27+
*.o

.travis.yml

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
language: cpp
22
compiler: gcc
33
sudo: false
4-
54
before_script:
6-
- cd tools
7-
- wget https://github.com/runtimejs/toolchain-bin-linux/raw/master/x86_64-elf-4.9.1-Linux-x86_64.tar.xz
8-
- tar -xf x86_64-elf-4.9.1-Linux-x86_64.tar.xz
9-
- wget https://github.com/runtimejs/toolchain-bin-linux/raw/master/fasm-1.71.21.tgz
10-
- tar -xf fasm-1.71.21.tgz
11-
- cd ..
12-
- export PATH=$PWD/tools/x86_64-elf-4.9.1-Linux-x86_64/bin:$PWD/tools/fasm:$PATH
13-
14-
script: scons
5+
- node scripts/make-release.js "$TRAVIS_TAG"
6+
- cd tools
7+
- wget https://github.com/runtimejs/toolchain-bin-linux/raw/master/x86_64-elf-4.9.1-Linux-x86_64.tar.xz
8+
- tar -xf x86_64-elf-4.9.1-Linux-x86_64.tar.xz
9+
- wget https://github.com/runtimejs/toolchain-bin-linux/raw/master/fasm-1.71.21.tgz
10+
- tar -xf fasm-1.71.21.tgz
11+
- cd ..
12+
- export PATH=$PWD/tools/x86_64-elf-4.9.1-Linux-x86_64/bin:$PWD/tools/fasm:$PATH
13+
script: RUNTIME_BUILD=release scons
14+
before_deploy: gzip -k disk/boot/runtime
15+
deploy:
16+
- provider: releases
17+
skip_cleanup: true
18+
api_key:
19+
secure: P+Ei+zxl/jN4Mt+sIm0jfikU0F81yQJEDQgLharThnblm8SILYLZ4jo+vSC7YA5u75wjj6ej3Guxk/Nm0Ajg4C9K7BLVZViZzrRhT8VdxZ8680EOn0A7/abHKA8AT+By8n4sOMhGgbsOLUUHQC+Bo7KLA2S2NGLgHJCKuEatPjg=
20+
file: disk/boot/runtime.gz
21+
on:
22+
tags: true
23+
repo: runtimejs/runtime

SConstruct

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ import datetime
44

55
SetOption('num_jobs', 4)
66

7-
build = "debug"
7+
build = os.getenv('RUNTIME_BUILD', "debug")
8+
print 'Build', build
89

910
config = {
10-
"project_name": "runtimejs",
11+
"project_name": "out/runtimejs",
1112
"binary_output_file": "disk/boot/runtime",
1213
"toolchain_bin_path": "",
1314
"fasm_pathname": "fasm",
@@ -211,8 +212,12 @@ def BuildProject(env_base):
211212
env.Replace(LIBS = config["libs"])
212213
env.Replace(LIBPATH = ['deps'])
213214

215+
version_header = env.Command('src/kernel/version-autogenerated.h', 'package.json',
216+
'node scripts/update-versions.js')
217+
214218
proj_name = config["project_name"]
215219
env.Depends(proj_name, obj_js);
220+
env.Depends(proj_name, version_header)
216221
env.Depends(proj_name, config["link_script"])
217222
output_elf = env.Program(proj_name, sources["cc"] + obj_asm)
218223

js/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
'use strict';
1616

17-
var packagejson = require('./package.json');
17+
var packagejson = require('../package.json');
1818
require('module-singleton')(packagejson);
1919
require('./version');
2020

js/runtimecorelib.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

js/version.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ if (!global.__SYSCALL) {
1919
throw 'error: this program requires runtime.js environment';
2020
}
2121

22-
var requiredKernelVersion = require('./runtimecorelib.json').kernelVersion;
22+
var requiredKernelVersion = require('../runtimecorelib.json').kernelVersion;
2323
var currentKernelVersion = __SYSCALL.version().kernel;
2424

2525
if (currentKernelVersion !== requiredKernelVersion) {

js/package.json renamed to package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
"name": "runtimejs",
33
"version": "0.2.5",
44
"description": "Core runtime.js library",
5-
"main": "index.js",
5+
"main": "js/index.js",
6+
"private": true,
67
"scripts": {
8+
"postinstall": "node scripts/update-versions.js",
79
"lint": "eslint .",
810
"test": "runtimeify test/unit/index.js -o initrd && runtime-qemu ./initrd",
911
"test-build": "runtimeify test/unit/index.js -o initrd && runtime-qemu ./initrd --kernel ../disk/boot/runtime"
@@ -33,7 +35,6 @@
3335
"bit-twiddle": "^1.0.2",
3436
"buffer": "^4.3.0",
3537
"constants-browserify": "^1.0.0",
36-
"eslint": "^1.10.3",
3738
"event-controller": "^1.0.1",
3839
"events": "^1.1.0",
3940
"isint": "^1.0.0",

scripts/helpers/release-id.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
var assert = require('assert');
2+
3+
function versionToReleaseId(ver) {
4+
var parts = String(ver).split('.');
5+
assert(parts.length === 3);
6+
var major = parts[0];
7+
var minor = parts[1];
8+
var patch = parts[2];
9+
assert(major < 1024);
10+
assert(minor < 1024);
11+
assert(patch < 1024);
12+
return ((major << 20) + (minor << 10) + patch) >>> 0;
13+
}
14+
15+
module.exports = versionToReleaseId;

0 commit comments

Comments
 (0)