rubyinstaller-build 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.github/ISSUE_TEMPLATE.md +8 -0
- data/.gitignore +12 -0
- data/.yardopts +7 -0
- data/CHANGELOG-2.4.md +166 -0
- data/CHANGELOG-2.5.md +87 -0
- data/CHANGELOG-2.6.md +62 -0
- data/CHANGELOG-2.7.md +22 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +25 -0
- data/README.md +114 -0
- data/Rakefile +164 -0
- data/appveyor-key.asc.asc +61 -0
- data/appveyor.yml +141 -0
- data/docker/Dockerfile +50 -0
- data/docker/Rakefile +22 -0
- data/gems/rubyinstaller-build.yaml +2 -0
- data/lib/devkit.rb +3 -0
- data/lib/ruby_installer.rb +3 -0
- data/lib/ruby_installer/build.rb +23 -0
- data/lib/ruby_installer/build/ca_cert_file.rb +66 -0
- data/lib/ruby_installer/build/colors.rb +45 -0
- data/lib/ruby_installer/build/components/01_msys2.rb +97 -0
- data/lib/ruby_installer/build/components/02_pacman_update.rb +35 -0
- data/lib/ruby_installer/build/components/03_dev_tools.rb +68 -0
- data/lib/ruby_installer/build/components/base.rb +58 -0
- data/lib/ruby_installer/build/components_installer.rb +53 -0
- data/lib/ruby_installer/build/dll_directory.rb +97 -0
- data/lib/ruby_installer/build/erb_compiler.rb +61 -0
- data/lib/ruby_installer/build/gem_version.rb +5 -0
- data/lib/ruby_installer/build/gems.rb +74 -0
- data/lib/ruby_installer/build/msys2_installation.rb +280 -0
- data/lib/ruby_installer/build/openstruct.rb +29 -0
- data/lib/ruby_installer/build/release.rb +120 -0
- data/lib/ruby_installer/build/singleton.rb +45 -0
- data/lib/ruby_installer/build/task.rb +20 -0
- data/lib/ruby_installer/build/utils.rb +110 -0
- data/lib/ruby_installer/runtime.rb +18 -0
- data/lib/ruby_installer/runtime/ridk.rb +195 -0
- data/packages/ri-msys/Rakefile +72 -0
- data/packages/ri-msys/recipes/sandbox/70-add-msys2-installation.rake +18 -0
- data/packages/ri/Rakefile +60 -0
- data/recipes/archive-7z/10-define-variables.rake +2 -0
- data/recipes/archive-7z/70-create-archive.rake +10 -0
- data/recipes/archive-7z/90-define-main-task.rake +2 -0
- data/recipes/installer-inno/10-define-variables.rake +2 -0
- data/recipes/installer-inno/50-generate-filelist.rake +28 -0
- data/recipes/installer-inno/60-generate-iss-file.rake +8 -0
- data/recipes/installer-inno/70-run-iscc.rake +19 -0
- data/recipes/installer-inno/90-define-main-task.rake +2 -0
- data/recipes/installer-inno/events.iss +88 -0
- data/recipes/installer-inno/images/fake.bmp +0 -0
- data/recipes/installer-inno/images/wizard-large.bmp +0 -0
- data/recipes/installer-inno/images/wizard-logo.bmp +0 -0
- data/recipes/installer-inno/ri_gui.iss +286 -0
- data/recipes/installer-inno/rubyinstaller.iss.erb +157 -0
- data/recipes/installer-inno/util.iss +271 -0
- data/recipes/msys2/10-define-variables.rake +6 -0
- data/recipes/msys2/30-download-msys2-base.rake +4 -0
- data/recipes/msys2/40-extract-msys2-base.rake +9 -0
- data/recipes/msys2/50-init-msys.rake +8 -0
- data/recipes/msys2/50-install-components.rake +19 -0
- data/recipes/msys2/90-define-main-task.rake +2 -0
- data/recipes/sandbox/10-define-variables.rake +6 -0
- data/recipes/sandbox/20-add-runtime-files.rake +15 -0
- data/recipes/sandbox/20-define-import-files.rake +16 -0
- data/recipes/sandbox/20-define-import-readline.rake +28 -0
- data/recipes/sandbox/20-extend-irb.rake +13 -0
- data/recipes/sandbox/40-fix-rake-shebang.rake +6 -0
- data/recipes/sandbox/40-generate-rake-cmd.rake +7 -0
- data/recipes/sandbox/40-generate-version-file.rake +20 -0
- data/recipes/sandbox/50-do-import-files.rake +17 -0
- data/recipes/sandbox/50-gather-sandbox-files.rake +6 -0
- data/recipes/sandbox/60-define-gem-wrappers.rake +5 -0
- data/recipes/sandbox/60-side-by-side-assembly.rake +81 -0
- data/recipes/sandbox/70-add-gem-bin-wrappers.rake +10 -0
- data/recipes/sandbox/70-install-gems.rake +11 -0
- data/recipes/sandbox/80-copy-msys-files.rake +8 -0
- data/recipes/sandbox/90-define-main-task.rake +2 -0
- data/recipes/sandbox/LICENSE.txt +24 -0
- data/recipes/sandbox/rubyinstaller-2.3.4-x64.files +4 -0
- data/recipes/sandbox/rubyinstaller-2.3.4-x86.files +4 -0
- data/recipes/sandbox/rubyinstaller-2.3.4.files +43 -0
- data/recipes/sandbox/rubyinstaller-2.4.10-x64.files +4 -0
- data/recipes/sandbox/rubyinstaller-2.4.10-x86.files +4 -0
- data/recipes/sandbox/rubyinstaller-2.4.10.files +44 -0
- data/recipes/sandbox/rubyinstaller-2.5.8-x64.files +6 -0
- data/recipes/sandbox/rubyinstaller-2.5.8-x86.files +6 -0
- data/recipes/sandbox/rubyinstaller-2.5.8.files +33 -0
- data/recipes/sandbox/rubyinstaller-2.6.6-x64.files +6 -0
- data/recipes/sandbox/rubyinstaller-2.6.6-x86.files +6 -0
- data/recipes/sandbox/rubyinstaller-2.6.6.files +35 -0
- data/recipes/sandbox/rubyinstaller-2.7.1-x64.files +6 -0
- data/recipes/sandbox/rubyinstaller-2.7.1-x86.files +6 -0
- data/recipes/sandbox/rubyinstaller-2.7.1.files +35 -0
- data/recipes/sandbox/rubyinstaller-head-x64.files +6 -0
- data/recipes/sandbox/rubyinstaller-head-x86.files +6 -0
- data/recipes/sandbox/rubyinstaller-head.files +35 -0
- data/recipes/unpack/10-define-variables.rake +5 -0
- data/recipes/unpack/20-define-msys-packages.rake +1 -0
- data/recipes/unpack/30-add-ri2-repo-to-msys.rake +41 -0
- data/recipes/unpack/50-install-msys-packages.rake +28 -0
- data/recipes/unpack/90-define-main-task.rake +2 -0
- data/recipes/unpack/appveyor-repo-key.asc +29 -0
- data/resources/files/irbrc_predefiner.rb +21 -0
- data/resources/files/operating_system.rb +21 -0
- data/resources/files/readline.rb +17 -0
- data/resources/files/reline.rb +437 -0
- data/resources/files/reline/ansi.rb +177 -0
- data/resources/files/reline/config.rb +297 -0
- data/resources/files/reline/general_io.rb +75 -0
- data/resources/files/reline/history.rb +56 -0
- data/resources/files/reline/key_actor.rb +7 -0
- data/resources/files/reline/key_actor/base.rb +7 -0
- data/resources/files/reline/key_actor/emacs.rb +517 -0
- data/resources/files/reline/key_actor/vi_command.rb +518 -0
- data/resources/files/reline/key_actor/vi_insert.rb +517 -0
- data/resources/files/reline/key_stroke.rb +53 -0
- data/resources/files/reline/kill_ring.rb +113 -0
- data/resources/files/reline/line_editor.rb +2231 -0
- data/resources/files/reline/unicode.rb +527 -0
- data/resources/files/reline/unicode/east_asian_width.rb +1145 -0
- data/resources/files/reline/version.rb +3 -0
- data/resources/files/reline/windows.rb +273 -0
- data/resources/files/ridk.cmd +39 -0
- data/resources/files/ridk.ps1 +26 -0
- data/resources/files/ridk_use/ridk.cmd +13 -0
- data/resources/files/ridk_use/ridk.ps1 +17 -0
- data/resources/files/ridk_use/ridk_use.rb +221 -0
- data/resources/files/setrbvars.cmd +14 -0
- data/resources/icons/ruby-doc.ico +0 -0
- data/resources/ssl/README-SSL.md +37 -0
- data/resources/ssl/c_rehash.rb +167 -0
- data/resources/ssl/cacert.pem +4105 -0
- data/rubyinstaller-build.gemspec +28 -0
- metadata +226 -0
data/Rakefile
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
$: << File.expand_path("../lib", __FILE__)
|
|
2
|
+
|
|
3
|
+
require "ruby_installer/build"
|
|
4
|
+
require "bundler/gem_tasks"
|
|
5
|
+
require "rake/clean"
|
|
6
|
+
require "find"
|
|
7
|
+
|
|
8
|
+
include RubyInstaller::Build::Utils
|
|
9
|
+
|
|
10
|
+
task :gem => :build
|
|
11
|
+
|
|
12
|
+
# Forward package build tasks to the sub Rakefiles.
|
|
13
|
+
%w[ri ri-msys].each do |packname|
|
|
14
|
+
namespace packname do |ns|
|
|
15
|
+
Rake::TaskManager.record_task_metadata = true
|
|
16
|
+
Rake.load_rakefile "packages/#{packname}/Rakefile"
|
|
17
|
+
ns.tasks.select(&:comment).each do |t|
|
|
18
|
+
name, comment = t.name.sub(/.*?:/, ""), t.comment
|
|
19
|
+
t.clear
|
|
20
|
+
desc comment
|
|
21
|
+
task name do
|
|
22
|
+
chdir "packages/#{packname}" do
|
|
23
|
+
sh "rake", name
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Add all package dirs/files to `rake clean` which are not registered in git and don't contain any files registered in git.
|
|
30
|
+
gitfiles = `git ls-files -z`.split("\0")
|
|
31
|
+
clean_list = Enumerator.new do |y|
|
|
32
|
+
Find.find("packages/#{packname}") do |path|
|
|
33
|
+
path = path.gsub(/\A\.\//, "") # remove prefix "./"
|
|
34
|
+
unless gitfiles.find { |gf| gf.start_with?(path) }
|
|
35
|
+
y << path
|
|
36
|
+
Find.prune
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
CLEAN.include(clean_list.to_a)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
libtest = "test/helper/libtest.dll"
|
|
44
|
+
file libtest => libtest.sub(".dll", ".c") do |t|
|
|
45
|
+
RubyInstaller::Build.enable_msys_apps
|
|
46
|
+
sh RbConfig::CONFIG['CC'], "-shared", t.prerequisites.first, "-o", t.name
|
|
47
|
+
end
|
|
48
|
+
CLEAN.include(libtest)
|
|
49
|
+
|
|
50
|
+
desc "Run tests on the Ruby installation"
|
|
51
|
+
task :test => libtest do
|
|
52
|
+
sh "ruby -w -W2 -I. -e \"#{Dir["test/**/test_*.rb"].map{|f| "require '#{f}';"}.join}\" -- -v"
|
|
53
|
+
|
|
54
|
+
# Re-test with simulated legacy Windows version.
|
|
55
|
+
# This is done in a dedicated run, because it's not possible to revert a call to SetDefaultDllDirectories().
|
|
56
|
+
# See https://msdn.microsoft.com/de-de/library/windows/desktop/hh310515(v=vs.85).aspx
|
|
57
|
+
ENV['RI_FORCE_PATH_FOR_DLL'] = '1'
|
|
58
|
+
sh "ruby -w -W2 -I. -e \"#{Dir["test/ruby_installer/test_module.rb"].map{|f| "require '#{f}';"}.join}\" -- -v"
|
|
59
|
+
ENV['RI_FORCE_PATH_FOR_DLL'] = '0'
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
namespace :ssl do
|
|
63
|
+
directory "resources/ssl"
|
|
64
|
+
|
|
65
|
+
desc "Download latest SSL trust certificates"
|
|
66
|
+
task :update => "resources/ssl" do
|
|
67
|
+
ca_file = RubyInstaller::Build::CaCertFile.new
|
|
68
|
+
File.binwrite("resources/ssl/cacert.pem", ca_file.content)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
task :update_check do
|
|
72
|
+
old_file = RubyInstaller::Build::CaCertFile.new(File.binread("resources/ssl/cacert.pem"))
|
|
73
|
+
print "Download SSL CA list..."
|
|
74
|
+
begin
|
|
75
|
+
new_file = RubyInstaller::Build::CaCertFile.new
|
|
76
|
+
rescue SocketError => err
|
|
77
|
+
puts " failed: #{err} (#{err.class})"
|
|
78
|
+
else
|
|
79
|
+
if old_file == new_file
|
|
80
|
+
puts " => unchanged"
|
|
81
|
+
else
|
|
82
|
+
puts " => changed"
|
|
83
|
+
raise "cacert.pem has changed"
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
namespace "release" do
|
|
90
|
+
desc "Update date in CHANGELOG file and set a git tag"
|
|
91
|
+
task "tag", [:name] do |_task, args|
|
|
92
|
+
release = RubyInstaller::Build::Release.new
|
|
93
|
+
|
|
94
|
+
# Enable this to update release date in CHANGELOG files
|
|
95
|
+
# release.update_history(args[:name])
|
|
96
|
+
release.tag_version(args[:name])
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
task "upload" do
|
|
100
|
+
files = ARGV[ARGV.index("--")+1 .. -1]
|
|
101
|
+
|
|
102
|
+
release = RubyInstaller::Build::Release.new
|
|
103
|
+
release.upload_to_github(
|
|
104
|
+
tag: ENV['DEPLOY_TAG'],
|
|
105
|
+
repo: ENV['DEPLOY_REPO_NAME'],
|
|
106
|
+
token: ENV['DEPLOY_TOKEN'],
|
|
107
|
+
files: files
|
|
108
|
+
)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
task "appveyor_upload" do
|
|
112
|
+
files = ARGV[ARGV.index("--")+1 .. -1]
|
|
113
|
+
files.each { |f| task(f) }
|
|
114
|
+
if ENV['DEPLOY_TAG'].to_s.include?(ENV['target_ruby'])
|
|
115
|
+
puts "Upload #{ENV['DEPLOY_TAG']}: #{files}"
|
|
116
|
+
|
|
117
|
+
require "ruby_installer/build"
|
|
118
|
+
RubyInstaller::Build.enable_msys_apps
|
|
119
|
+
|
|
120
|
+
sh "c:/msys64/usr/bin/mkdir -p /c/Users/appveyor/.gnupg"
|
|
121
|
+
sh "gpg --batch --passphrase %GPGPASSWD% --decrypt appveyor-key.asc.asc | gpg --import"
|
|
122
|
+
sh "c:/msys64/usr/bin/mkdir artifacts"
|
|
123
|
+
sh "cp", "-v", *files, "artifacts/"
|
|
124
|
+
sh "ls artifacts/* | xargs -n1 gpg --verbose --detach-sign --armor"
|
|
125
|
+
sh "rake release:upload -- artifacts/*"
|
|
126
|
+
else
|
|
127
|
+
puts "No release upload"
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
CLEAN.include("artifacts")
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
namespace "docker" do
|
|
134
|
+
task :image do
|
|
135
|
+
rm_rf "docker/gitrepo"
|
|
136
|
+
cp_r ".git", "docker/gitrepo"
|
|
137
|
+
sh "docker build -t ri2 docker"
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
desc "Run all builds"
|
|
141
|
+
multitask :builds
|
|
142
|
+
|
|
143
|
+
%w[ri ri-msys].each do |package|
|
|
144
|
+
%w[x86 x64].each do |arch|
|
|
145
|
+
task "#{package}-#{arch}" => :image do
|
|
146
|
+
# Use the cache of our main MSYS2 environment for package install
|
|
147
|
+
cachedir = File.expand_path("../cache/#{package}-#{arch}", __FILE__)
|
|
148
|
+
mkdir_p cachedir
|
|
149
|
+
puts "Using pacman cache in #{cachedir}"
|
|
150
|
+
|
|
151
|
+
pwd = Dir.pwd
|
|
152
|
+
pkgdir = "#{pwd}/pkg"
|
|
153
|
+
mkdir_p pkgdir
|
|
154
|
+
|
|
155
|
+
sh "docker run --rm -v #{cachedir}:c:/ruby24-x64/msys64/var/cache/pacman -v #{pkgdir}:c:/build/pkg ri2 cmd /c rake PACKAGE=#{package} ARCH=#{arch}"
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
multitask :builds => "#{package}-#{arch}"
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
CLOBBER.include("pkg")
|
|
164
|
+
CLOBBER.include("cache")
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
-----BEGIN PGP MESSAGE-----
|
|
2
|
+
|
|
3
|
+
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
|
|
60
|
+
=Gi0q
|
|
61
|
+
-----END PGP MESSAGE-----
|
data/appveyor.yml
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
init:
|
|
2
|
+
- echo %PATH%
|
|
3
|
+
# We use a clean PATH to avoid interferences with the hundreds of installed programs.
|
|
4
|
+
- set PATH=c:/Program Files/Git/cmd;c:/ProgramData/chocolatey/bin;c:/Program Files (x86)/Inno Setup 5;c:/Windows/system32;C:/Windows/System32/WindowsPowerShell/v1.0
|
|
5
|
+
- set PATH=C:/ruby%build_ruby%/bin;%PATH%
|
|
6
|
+
- echo %PATH%
|
|
7
|
+
- ruby --version
|
|
8
|
+
- IF DEFINED DEPLOY_TAG (
|
|
9
|
+
echo.%DEPLOY_TAG% | findstr /C:"%target_ruby%">nul || (echo stop build not required for release & (exit 1))
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
install:
|
|
13
|
+
- choco install -y InnoSetup
|
|
14
|
+
# Update pacman for compat with zst packages
|
|
15
|
+
- c:/msys64/usr/bin/sh -lc "pacman -Syu --needed --noconfirm"
|
|
16
|
+
|
|
17
|
+
build_script:
|
|
18
|
+
# Remove broken pkg files from cache
|
|
19
|
+
- c:/msys64/usr/bin/rm -f c:/msys64/var/cache/pacman/pkg/{pacman-mirrors}*
|
|
20
|
+
# Build the installer
|
|
21
|
+
- rake ri:ruby-%target_ruby%-%arch% & c:/msys64/usr/bin/gpgconf --homedir /etc/pacman.d/gnupg --kill all
|
|
22
|
+
|
|
23
|
+
# Reuse installed ruby for RubyInstaller-Devkit
|
|
24
|
+
- c:/msys64/usr/bin/mkdir -p packages/ri-msys/recipes/
|
|
25
|
+
- c:/msys64/usr/bin/cp -a packages/ri/recipes/unpack packages/ri-msys/recipes/
|
|
26
|
+
# Remove broken pkg files from cache
|
|
27
|
+
- c:/msys64/usr/bin/rm -f c:/msys64/var/cache/pacman/pkg/{autoconf,automake,bash-completion,ca-certificates}*
|
|
28
|
+
# Build the RubyInstaller-Devkit installer
|
|
29
|
+
- rake ri-msys:ruby-%target_ruby%-%arch%:installer-inno
|
|
30
|
+
|
|
31
|
+
test_script:
|
|
32
|
+
# Run the built Ruby installer and install to c:/ri2-ruby
|
|
33
|
+
- ruby -e "Dir['packages/ri/recipes/installer-inno/rubyinstaller-%target_ruby%*-%arch%.exe'].each{|f| system(f, '/verysilent', '/dir=c:/ri2-ruby', '/tasks=assocfiles,modpath,defaultutf8')}"
|
|
34
|
+
# Activate the environment variables set by the installer, but exclude
|
|
35
|
+
# git's /usr/bin, because it conflicts with one RubyInstaller test.
|
|
36
|
+
- ps: $env:PATH = [Environment]::GetEnvironmentVariable("PATH","Machine") -replace ";C:\\Program Files\\Git\\usr\\bin" -replace ";C:\\Ruby193\\bin"
|
|
37
|
+
- ps: $env:RUBYOPT = [Environment]::GetEnvironmentVariable("RUBYOPT","Machine")
|
|
38
|
+
- echo %PATH%
|
|
39
|
+
- echo %RUBYOPT%
|
|
40
|
+
- ridk version
|
|
41
|
+
# Install dependent gems
|
|
42
|
+
- IF "%target_ruby%" LSS "2.6" ( gem update --system && gem install bundler --force )
|
|
43
|
+
# Remove lock file because bundler version can vary between build and runtime
|
|
44
|
+
- del Gemfile.lock
|
|
45
|
+
- bundle install
|
|
46
|
+
# Run all tests against the new installed Ruby
|
|
47
|
+
- rake test
|
|
48
|
+
# Verify that the used CA list is still the latest.
|
|
49
|
+
- rake ssl:update_check
|
|
50
|
+
# Enable MSYS2 commands in cmd
|
|
51
|
+
- ridk enable
|
|
52
|
+
|
|
53
|
+
# Run the Ruby Spec Suite
|
|
54
|
+
- IF DEFINED run_ruby_spec ( IF NOT DEFINED APPVEYOR_REPO_TAG_NAME (
|
|
55
|
+
git clone --depth 1 https://github.com/ruby/mspec &&
|
|
56
|
+
git clone --depth 1 https://github.com/ruby/spec &&
|
|
57
|
+
env --unset=RUBYOPT ruby -C spec ../mspec/bin/mspec -j --exclude "Socket.getnameinfo using IPv4 using a 3 element Array as the first argument without custom flags returns an Array containing the hostname and service name" --exclude "Socket.getifaddrs each returned Socket::Ifaddr has an interface index"
|
|
58
|
+
))
|
|
59
|
+
|
|
60
|
+
# Run the MRI copy of Ruby Spec Suite
|
|
61
|
+
- IF DEFINED run_mri_spec ( IF NOT DEFINED APPVEYOR_REPO_TAG_NAME (
|
|
62
|
+
git clone --depth 1 https://github.com/ruby/ruby -b %run_mri_spec% &&
|
|
63
|
+
env --unset=RUBYOPT ruby -C ruby/spec/ruby ../mspec/bin/mspec -j --exclude "Socket.getnameinfo using IPv4 using a 3 element Array as the first argument without custom flags returns an Array containing the hostname and service name"
|
|
64
|
+
))
|
|
65
|
+
|
|
66
|
+
# Run upload to github (only on tag builds)
|
|
67
|
+
- set DEPLOY_TAG=%APPVEYOR_REPO_TAG_NAME%
|
|
68
|
+
- IF "%target_ruby%" EQU "head" (SET DEPLOY_TAG=rubyinstaller-head)
|
|
69
|
+
- rake release:appveyor_upload -- packages/ri/recipes/installer-inno/%DEPLOY_TAG%*-%arch%.exe packages/ri/recipes/archive-7z/%DEPLOY_TAG%*-%arch%.7z packages/ri-msys/recipes/installer-inno/ruby*-%target_ruby%*-%arch%.exe
|
|
70
|
+
|
|
71
|
+
# Provide the rubyinstaller.exe files for download
|
|
72
|
+
artifacts:
|
|
73
|
+
- path: packages/ri/recipes/installer-inno/ruby*-$(target_ruby)*-$(arch).exe
|
|
74
|
+
name: Executable installer
|
|
75
|
+
- path: packages/ri/recipes/archive-7z/ruby*-$(target_ruby)*-$(arch).7z
|
|
76
|
+
name: Plain archive file
|
|
77
|
+
- path: packages/ri-msys/recipes/installer-inno/ruby*-$(target_ruby)*-$(arch).exe
|
|
78
|
+
name: Executable installer with MYS2
|
|
79
|
+
|
|
80
|
+
environment:
|
|
81
|
+
GPGPASSWD:
|
|
82
|
+
secure: /DELcKSZC+R4HdXgsqR1RtC+IrDZ3Xut/vzV/KgepE3M8OsjJtmWutN0+Jvc2Iv2
|
|
83
|
+
DEPLOY_REPO_NAME: oneclick/rubyinstaller2
|
|
84
|
+
DEPLOY_TOKEN:
|
|
85
|
+
secure: HIQ7Ovn+zMKskPWhnlYGvQMvdLPlZB5lhn62wzw0AUSno8UfntuTgFmPvS1pUwOW
|
|
86
|
+
matrix:
|
|
87
|
+
- target_ruby: "2.7.1"
|
|
88
|
+
arch: "x86"
|
|
89
|
+
build_ruby: "26"
|
|
90
|
+
MINGW_PACKAGE_PREFIX: "mingw-w64-i686"
|
|
91
|
+
MSYSTEM: "MINGW32"
|
|
92
|
+
run_ruby_spec: true
|
|
93
|
+
|
|
94
|
+
- target_ruby: "2.7.1"
|
|
95
|
+
arch: "x64"
|
|
96
|
+
build_ruby: "26"
|
|
97
|
+
MINGW_PACKAGE_PREFIX: "mingw-w64-x86_64"
|
|
98
|
+
MSYSTEM: "MINGW64"
|
|
99
|
+
run_ruby_spec: true
|
|
100
|
+
|
|
101
|
+
- target_ruby: "2.6.6"
|
|
102
|
+
arch: "x64"
|
|
103
|
+
build_ruby: "25"
|
|
104
|
+
MINGW_PACKAGE_PREFIX: "mingw-w64-x86_64"
|
|
105
|
+
MSYSTEM: "MINGW64"
|
|
106
|
+
run_ruby_spec: true
|
|
107
|
+
|
|
108
|
+
- target_ruby: "2.5.8"
|
|
109
|
+
arch: "x64"
|
|
110
|
+
build_ruby: "24"
|
|
111
|
+
MINGW_PACKAGE_PREFIX: "mingw-w64-x86_64"
|
|
112
|
+
MSYSTEM: "MINGW64"
|
|
113
|
+
run_ruby_spec: true
|
|
114
|
+
|
|
115
|
+
- target_ruby: "2.6.6"
|
|
116
|
+
arch: "x86"
|
|
117
|
+
build_ruby: "25"
|
|
118
|
+
MINGW_PACKAGE_PREFIX: "mingw-w64-i686"
|
|
119
|
+
MSYSTEM: "MINGW32"
|
|
120
|
+
run_ruby_spec: true
|
|
121
|
+
|
|
122
|
+
- target_ruby: "2.5.8"
|
|
123
|
+
arch: "x86"
|
|
124
|
+
build_ruby: "24"
|
|
125
|
+
MINGW_PACKAGE_PREFIX: "mingw-w64-i686"
|
|
126
|
+
MSYSTEM: "MINGW32"
|
|
127
|
+
run_ruby_spec: true
|
|
128
|
+
|
|
129
|
+
- target_ruby: "head"
|
|
130
|
+
arch: "x64"
|
|
131
|
+
build_ruby: "26"
|
|
132
|
+
MINGW_PACKAGE_PREFIX: "mingw-w64-x86_64"
|
|
133
|
+
MSYSTEM: "MINGW64"
|
|
134
|
+
run_mri_spec: master
|
|
135
|
+
|
|
136
|
+
- target_ruby: "head"
|
|
137
|
+
arch: "x86"
|
|
138
|
+
build_ruby: "26"
|
|
139
|
+
MINGW_PACKAGE_PREFIX: "mingw-w64-i686"
|
|
140
|
+
MSYSTEM: "MINGW32"
|
|
141
|
+
run_mri_spec: master
|
data/docker/Dockerfile
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
FROM microsoft/windowsservercore
|
|
2
|
+
# FROM microsoft/nanoserver
|
|
3
|
+
|
|
4
|
+
# Download base ruby
|
|
5
|
+
RUN powershell \
|
|
6
|
+
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
|
|
7
|
+
Invoke-WebRequest https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.4.6-1/rubyinstaller-devkit-2.4.6-1-x64.exe -Outfile rubyinstaller.exe
|
|
8
|
+
# Download git
|
|
9
|
+
RUN powershell \
|
|
10
|
+
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
|
|
11
|
+
Invoke-WebRequest https://github.com/git-for-windows/git/releases/download/v2.20.1.windows.1/Git-2.20.1-64-bit.exe -Outfile git-installer.exe
|
|
12
|
+
# Download Inno Setup
|
|
13
|
+
RUN powershell \
|
|
14
|
+
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
|
|
15
|
+
Invoke-WebRequest http://www.jrsoftware.org/download.php/is.exe -Outfile inno-setup.exe
|
|
16
|
+
|
|
17
|
+
# Install base ruby and initialize Devkit
|
|
18
|
+
RUN (cmd /c rubyinstaller.exe /verysilent /log=install.log) || (powershell get-content c:/install.log)
|
|
19
|
+
RUN powershell $env:PATH = [Environment]::GetEnvironmentVariable('PATH','Machine'); \
|
|
20
|
+
$env:RUBYOPT = [Environment]::GetEnvironmentVariable('RUBYOPT','Machine')
|
|
21
|
+
RUN ruby --version
|
|
22
|
+
RUN ridk install 1
|
|
23
|
+
|
|
24
|
+
# Install git
|
|
25
|
+
RUN cmd /c git-installer.exe /verysilent
|
|
26
|
+
RUN git --version
|
|
27
|
+
|
|
28
|
+
# Install Inno Setup
|
|
29
|
+
RUN cmd /c inno-setup.exe /verysilent /allusers
|
|
30
|
+
RUN powershell [Environment]::SetEnvironmentVariable('PATH', $env:PATH + ';c:/Program Files (x86)/Inno Setup 6', 'Machine')
|
|
31
|
+
RUN iscc --version || (exit 0)
|
|
32
|
+
|
|
33
|
+
RUN ridk enable
|
|
34
|
+
|
|
35
|
+
# pacman fails with EXDEV error after download when /var/cache/pkg is bind mounted into the container.
|
|
36
|
+
# Therefore mount /var/cache directory an let pacman create the pkg directory.
|
|
37
|
+
RUN ridk exec rm -r c:/ruby24-x64/msys64/var/cache/pacman/pkg
|
|
38
|
+
|
|
39
|
+
# Import the git repository and unpack it in /build
|
|
40
|
+
WORKDIR /build
|
|
41
|
+
COPY gitrepo .git/
|
|
42
|
+
RUN dir
|
|
43
|
+
RUN git checkout -f
|
|
44
|
+
|
|
45
|
+
# Install required rubygems
|
|
46
|
+
RUN gem install bundler --no-doc
|
|
47
|
+
RUN bundle
|
|
48
|
+
|
|
49
|
+
WORKDIR /build/docker
|
|
50
|
+
CMD rake
|
data/docker/Rakefile
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
task :default do
|
|
2
|
+
cd ".." do
|
|
3
|
+
package = ENV['PACKAGE']
|
|
4
|
+
arch = ENV['ARCH']
|
|
5
|
+
|
|
6
|
+
mkdir_p "packages/#{package}/recipes/msys2/"
|
|
7
|
+
cp Dir["/ruby*/msys*/var/cache/pacman/pkg/msys2-{x86_64,i686}-latest.tar.xz"], "packages/#{package}/recipes/msys2/"
|
|
8
|
+
|
|
9
|
+
sh "rake #{package}:ruby-2.6.4-#{arch} #{package}:ruby-2.5.6-#{arch} #{package}:ruby-2.4.7-#{arch}"
|
|
10
|
+
|
|
11
|
+
# Copy result files to the output directory
|
|
12
|
+
cp Dir["packages/#{package}/recipes/installer-inno/*.exe"], "pkg/"
|
|
13
|
+
cp Dir["packages/#{package}/recipes/archive-7z/*.7z"], "pkg/"
|
|
14
|
+
cp Dir["packages/#{package}/recipes/msys2/msys2-{x86_64,i686}-latest.tar.xz"], Dir["/ruby*/msys*/var/cache/pacman/pkg/"]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# GPG starts a background process called "gpg-agent".
|
|
19
|
+
# For safety we shut the process explicit down when finished with all tasks.
|
|
20
|
+
END {
|
|
21
|
+
sh "ridk exec gpgconf --homedir /etc/pacman.d/gnupg --kill all"
|
|
22
|
+
}
|
data/lib/devkit.rb
ADDED