@@ -11,36 +11,50 @@ jobs:
1111 uses : actions/checkout@v2
1212 - name : Bundle
1313 run : bundle install
14- - name : Set Node.js version
15- run : |
16- bundle exec ruby -e 'puts Libv8Node::NODE_VERSION' | tee node_version
14+ - name : Set metadata
15+ id : set-metadata
16+ run : |
17+ bundle exec ruby -e 'puts RUBY_PLATFORM' | tee ruby_platform
18+ echo "::set-output name=RUBY_PLATFORM::$(cat ruby_platform)"
19+ bundle exec ruby -e 'puts Gem.platforms.last.to_s' | tee gem_platform
20+ echo "::set-output name=GEM_PLATFORM::$(cat gem_platform)"
21+ bundle exec ruby -e 'puts Libv8::Node::VERSION' | tee gem_version
22+ echo "::set-output name=GEM_VERSION::$(cat gem_version)"
23+ bundle exec ruby -e 'puts Libv8::Node::NODE_VERSION' | tee node_version
24+ echo "::set-output name=NODE_VERSION::$(cat node_version)"
25+ bundle exec ruby -e 'puts Libv8::Node::LIBV8_VERSION' | tee libv8_version
26+ echo "::set-output name=LIBV8_VERSION::$(cat libv8_version)"
1727 - name : Download Node.js
1828 run : |
19- ./download-node 12.18.4
29+ ./download-node ${{ steps.set-metadata.outputs.NODE_VERSION }}
2030 - name : Extract Node.js
2131 run : |
22- ./extract-node 12.18.4
32+ ./extract-node ${{ steps.set-metadata.outputs.NODE_VERSION }}
33+ - name : Validate V8 version
34+ run : |
35+ ruby -e 'h = File.read("src/node-14.14.0/deps/v8/include/v8-version.h"); eval h.each_line.with_object([]) { |l, e| l =~ /#define (V8_[A-Z_]+)\s(\d+)/ && e << "#{$1} = #{$2}" }.join(";"); puts "#{V8_MAJOR_VERSION}.#{V8_MINOR_VERSION}.#{V8_BUILD_NUMBER}.#{V8_PATCH_LEVEL}"' | tee libv8_version_h
36+ diff libv8_version_h libv8_version
2337 - name : Build V8
2438 run : |
25- ./build-libv8 12.18.4
39+ ./build-libv8 ${{ steps.set-metadata.outputs.NODE_VERSION }}
2640 - name : Build Monolith
2741 run : |
28- ./build-monolith 12.18.4
42+ ./build-monolith ${{ steps.set-metadata.outputs.NODE_VERSION }}
2943 - name : Inject V8
3044 run : |
31- ./inject-libv8 12.18.4
45+ ./inject-libv8 ${{ steps.set-metadata.outputs.NODE_VERSION }}
3246 - name : Build gem
3347 run : |
3448 bundle exec rake binary
3549 - name : Upload V8
3650 uses : actions/upload-artifact@v1
3751 with :
38- name : v8-x86_64-darwin19
52+ name : v8-${{ steps.set-metadata.outputs.LIBV8_VERSION }}-${{ steps.set-metadata.outputs.GEM_PLATFORM }}
3953 path : vendor
4054 - name : Upload gem
4155 uses : actions/upload-artifact@v1
4256 with :
43- name : gem-x86_64-darwin19
57+ name : gem-${{ steps.set-metadata.outputs.GEM_VERSION }}-${{ steps.set-metadata.outputs.GEM_PLATFORM }}
4458 path : pkg
4559 build-linux-glibc :
4660 name : Build (Linux glibc)
@@ -51,33 +65,50 @@ jobs:
5165 uses : actions/checkout@v2
5266 - name : Bundle
5367 run : bundle install
68+ - name : Set metadata
69+ id : set-metadata
70+ run : |
71+ bundle exec ruby -e 'puts RUBY_PLATFORM' | tee ruby_platform
72+ echo "::set-output name=RUBY_PLATFORM::$(cat ruby_platform)"
73+ bundle exec ruby -e 'puts Gem.platforms.last.to_s' | tee gem_platform
74+ echo "::set-output name=GEM_PLATFORM::$(cat gem_platform)"
75+ bundle exec ruby -e 'puts Libv8::Node::VERSION' | tee gem_version
76+ echo "::set-output name=GEM_VERSION::$(cat gem_version)"
77+ bundle exec ruby -e 'puts Libv8::Node::NODE_VERSION' | tee node_version
78+ echo "::set-output name=NODE_VERSION::$(cat node_version)"
79+ bundle exec ruby -e 'puts Libv8::Node::LIBV8_VERSION' | tee libv8_version
80+ echo "::set-output name=LIBV8_VERSION::$(cat libv8_version)"
5481 - name : Download Node.js
5582 run : |
56- ./download-node 12.18.4
83+ ./download-node ${{ steps.set-metadata.outputs.NODE_VERSION }}
5784 - name : Extract Node.js
5885 run : |
59- ./extract-node 12.18.4
86+ ./extract-node ${{ steps.set-metadata.outputs.NODE_VERSION }}
87+ - name : Validate V8 version
88+ run : |
89+ ruby -e 'h = File.read("src/node-14.14.0/deps/v8/include/v8-version.h"); eval h.each_line.with_object([]) { |l, e| l =~ /#define (V8_[A-Z_]+)\s(\d+)/ && e << "#{$1} = #{$2}" }.join(";"); puts "#{V8_MAJOR_VERSION}.#{V8_MINOR_VERSION}.#{V8_BUILD_NUMBER}.#{V8_PATCH_LEVEL}"' | tee libv8_version_h
90+ diff libv8_version_h libv8_version
6091 - name : Build V8
6192 run : |
62- ./build-libv8 12.18.4
93+ ./build-libv8 ${{ steps.set-metadata.outputs.NODE_VERSION }}
6394 - name : Build Monolith
6495 run : |
65- ./build-monolith 12.18.4
96+ ./build-monolith ${{ steps.set-metadata.outputs.NODE_VERSION }}
6697 - name : Inject V8
6798 run : |
68- ./inject-libv8 12.18.4
99+ ./inject-libv8 ${{ steps.set-metadata.outputs.NODE_VERSION }}
69100 - name : Build gem
70101 run : |
71102 bundle exec rake binary
72103 - name : Upload V8
73104 uses : actions/upload-artifact@v1
74105 with :
75- name : v8-x86_64-linux-glibc
106+ name : v8-${{ steps.set-metadata.outputs.LIBV8_VERSION }}-${{ steps.set-metadata.outputs.GEM_PLATFORM }}
76107 path : vendor
77108 - name : Upload gem
78109 uses : actions/upload-artifact@v1
79110 with :
80- name : gem-x86_64-linux-glibc
111+ name : gem-${{ steps.set-metadata.outputs.GEM_VERSION }}-${{ steps.set-metadata.outputs.GEM_PLATFORM }}
81112 path : pkg
82113 build-linux-musl :
83114 name : Build (Linux musl)
@@ -90,21 +121,38 @@ jobs:
90121 uses : actions/checkout@v2
91122 - name : Bundle
92123 run : bundle install
124+ - name : Set metadata
125+ id : set-metadata
126+ run : |
127+ bundle exec ruby -e 'puts RUBY_PLATFORM' | tee ruby_platform
128+ echo "::set-output name=RUBY_PLATFORM::$(cat ruby_platform)"
129+ bundle exec ruby -e 'puts Gem.platforms.last.to_s' | tee gem_platform
130+ echo "::set-output name=GEM_PLATFORM::$(cat gem_platform)"
131+ bundle exec ruby -e 'puts Libv8::Node::VERSION' | tee gem_version
132+ echo "::set-output name=GEM_VERSION::$(cat gem_version)"
133+ bundle exec ruby -e 'puts Libv8::Node::NODE_VERSION' | tee node_version
134+ echo "::set-output name=NODE_VERSION::$(cat node_version)"
135+ bundle exec ruby -e 'puts Libv8::Node::LIBV8_VERSION' | tee libv8_version
136+ echo "::set-output name=LIBV8_VERSION::$(cat libv8_version)"
93137 - name : Download Node.js
94138 run : |
95- ./download-node 12.18.4
139+ ./download-node ${{ steps.set-metadata.outputs.NODE_VERSION }}
96140 - name : Extract Node.js
97141 run : |
98- ./extract-node 12.18.4
142+ ./extract-node ${{ steps.set-metadata.outputs.NODE_VERSION }}
143+ - name : Validate V8 version
144+ run : |
145+ ruby -e 'h = File.read("src/node-14.14.0/deps/v8/include/v8-version.h"); eval h.each_line.with_object([]) { |l, e| l =~ /#define (V8_[A-Z_]+)\s(\d+)/ && e << "#{$1} = #{$2}" }.join(";"); puts "#{V8_MAJOR_VERSION}.#{V8_MINOR_VERSION}.#{V8_BUILD_NUMBER}.#{V8_PATCH_LEVEL}"' | tee libv8_version_h
146+ diff libv8_version_h libv8_version
99147 - name : Build V8
100148 run : |
101- ./build-libv8 12.18.4
149+ ./build-libv8 ${{ steps.set-metadata.outputs.NODE_VERSION }}
102150 - name : Build Monolith
103151 run : |
104- ./build-monolith 12.18.4
152+ ./build-monolith ${{ steps.set-metadata.outputs.NODE_VERSION }}
105153 - name : Inject V8
106154 run : |
107- ./inject-libv8 12.18.4
155+ ./inject-libv8 ${{ steps.set-metadata.outputs.NODE_VERSION }}
108156 - name : Build gem
109157 run : |
110158 bundle exec rake binary
@@ -116,10 +164,10 @@ jobs:
116164 - name : Upload V8
117165 uses : actions/upload-artifact@v1
118166 with :
119- name : v8-x86_64-linux-musl
167+ name : v8-${{ steps.set-metadata.outputs.LIBV8_VERSION }}-${{ steps.set-metadata.outputs.GEM_PLATFORM }}
120168 path : vendor
121169 - name : Upload gem
122170 uses : actions/upload-artifact@v1
123171 with :
124- name : gem-x86_64-linux-musl
172+ name : gem-${{ steps.set-metadata.outputs.GEM_VERSION }}-${{ steps.set-metadata.outputs.GEM_PLATFORM }}
125173 path : pkg
0 commit comments