Skip to content

Commit ec44565

Browse files
committed
Added package_bin rule to Makefile. Save package as an artifacts on AppVeyor.
1 parent bb168f6 commit ec44565

File tree

5 files changed

+55
-11
lines changed

5 files changed

+55
-11
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
*.a
77
*.exe
88
.*.swp
9+
/out
910

1011
/extra/hxclasses
1112
/extra/*.swf

Makefile

+24-2
Original file line numberDiff line numberDiff line change
@@ -169,10 +169,32 @@ lexer.$(MODULE_EXT): ast.$(MODULE_EXT)
169169

170170
ast.$(MODULE_EXT):
171171

172-
version.$(MODULE_EXT):
173-
$(MAKE) -f Makefile.version_extra -s ADD_REVISION=$(ADD_REVISION) > version.ml
172+
version_info:
173+
$(if $(APPVEYOR),\
174+
$(eval BRANCH:=$(APPVEYOR_REPO_BRANCH)),\
175+
$(if $(TRAVIS),\
176+
$(eval BRANCH:=$(TRAVIS_BRANCH)),\
177+
$(eval BRANCH:=$(shell git rev-parse --abbrev-ref HEAD))))
178+
$(eval COMMIT_SHA:=$(shell git rev-parse --short HEAD))
179+
$(eval COMMIT_DATE:=$(shell git show -s --format=%ci HEAD | grep -oh ....-..-..))
180+
$(eval PACKAGE_FILE_NAME:=haxe_$(COMMIT_DATE)_$(BRANCH)_$(COMMIT_SHA))
181+
182+
version.$(MODULE_EXT): version_info
183+
$(MAKE) -f Makefile.version_extra -s ADD_REVISION=$(ADD_REVISION) BRANCH=$(BRANCH) COMMIT_SHA=$(COMMIT_SHA) COMMIT_DATE=$(COMMIT_DATE) > version.ml
174184
$(COMPILER) $(CFLAGS) -c version.ml
175185

186+
# Package
187+
188+
package_bin: version_info
189+
mkdir -p out
190+
rm -rf $(PACKAGE_FILE_NAME) $(PACKAGE_FILE_NAME).tar.gz
191+
# Copy the package contents to $(PACKAGE_FILE_NAME)
192+
mkdir -p $(PACKAGE_FILE_NAME)
193+
cp -r $(OUTPUT) haxelib$(EXTENSION) std extra/LICENSE.txt extra/CONTRIB.txt extra/CHANGES.txt $(PACKAGE_FILE_NAME)
194+
# archive
195+
tar -zcf out/$(PACKAGE_FILE_NAME).tar.gz $(PACKAGE_FILE_NAME)
196+
rm -r $(PACKAGE_FILE_NAME)
197+
176198
# Clean
177199

178200
clean: clean_libs clean_haxe clean_tools

Makefile.version_extra

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
all: ;
66

77
ifneq ($(ADD_REVISION),0)
8-
$(info let version_extra = Some "(git build $(shell git rev-parse --abbrev-ref HEAD) @ $(shell git rev-parse --short HEAD))")
8+
$(info let version_extra = Some "(git build $(BRANCH) @ $(COMMIT_SHA))")
99
else
1010
$(info let version_extra = None)
1111
endif

Makefile.win

+15
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,18 @@ ifdef FILTER
3333
CC_CMD=($(OCAMLOPT) $(CFLAGS) -c $< 2>tmp.cmi && $(FILTER)) || ($(FILTER) && exit 1)
3434
CC_PARSER_CMD=($(OCAMLOPT) -pp camlp4o $(CFLAGS) -c parser.ml 2>tmp.cmi && $(FILTER)) || ($(FILTER) && exit 1)
3535
endif
36+
37+
package_bin: version_info
38+
mkdir -p out
39+
rm -rf $(PACKAGE_FILE_NAME) $(PACKAGE_FILE_NAME).zip temp.zip
40+
# Copy the package contents to $(PACKAGE_FILE_NAME)
41+
# Using poor man's cp (zip then unzip), because cp in cygwin is quite broken
42+
mkdir -p $(PACKAGE_FILE_NAME)
43+
7za a -y -tzip -mx0 temp.zip $(OUTPUT) haxelib$(EXTENSION) std > log.txt || type log.txt
44+
cd extra && 7za a -y -tzip -mx0 ../temp.zip LICENSE.txt CONTRIB.txt CHANGES.txt > log.txt || type log.txt
45+
7za x -y temp.zip -o$(PACKAGE_FILE_NAME) > log.txt || type log.txt
46+
rm temp.zip
47+
# archive
48+
7za a -r -tzip out/$(PACKAGE_FILE_NAME).zip $(PACKAGE_FILE_NAME) > log.txt || type log.txt
49+
rm -r $(PACKAGE_FILE_NAME)
50+
rm log.txt extra/log.txt

appveyor.yml

+14-8
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,32 @@ os: unstable #http://help.appveyor.com/discussions/suggestions/427-pre-install-c
55
platform:
66
- Win32
77

8-
clone_folder: C:/projects/haxe
9-
108
environment:
119
global:
1210
NEKO_ROOT: C:/projects/neko
1311
HAXELIB_ROOT: C:/projects/haxelib
1412
CYG_ARCH: x86
1513
CYG_ROOT: C:/cygwin
1614
CYG_SETUP: C:/cygwin/setup-x86.exe
17-
WODI_ARCH: 32
1815
MINGW_ARCH: i686
16+
WODI: wodi32
17+
ADD_REVISION: 1
18+
OCAMLOPT: ocamlopt.opt
1919
TEST: "neko,cs,java,cpp,macro"
2020

2121
skip_tags: true
2222

2323
install:
2424
- 'git submodule update --init --recursive'
25+
- cinst 7zip.commandline -y
2526
# Install ocaml using wodi
2627
- appveyor DownloadFile "http://cygwin.com/setup-%CYG_ARCH%.exe" -FileName "%CYG_ROOT%\setup.exe"
2728
- '%CYG_ROOT%/setup.exe -q -R "%CYG_ROOT%" -P dos2unix -P diffutils -P cpio -P make -P patch -P mingw64-%MINGW_ARCH%-gcc-core -P mingw64-%MINGW_ARCH%-gcc-g++ > log.txt || type log.txt'
2829
- '%CYG_ROOT%/bin/bash -lc "cygcheck -dc cygwin" > log.txt || type log.txt'
29-
- '%CYG_ROOT%/bin/bash -lc "wget -q http://ml.ignorelist.com/wodi/8/wodi%WODI_ARCH%.tar.xz -O /tmp/wodi%WODI_ARCH%.tar.xz" > log.txt || type log.txt'
30-
- '%CYG_ROOT%/bin/bash -lc "cd /tmp && rm -rf wodi%WODI_ARCH% && tar -xf wodi%WODI_ARCH%.tar.xz && bash wodi%WODI_ARCH%/install.sh" > log.txt || type log.txt'
30+
- '%CYG_ROOT%/bin/bash -lc "wget -q http://ml.ignorelist.com/wodi/8/%WODI%.tar.xz -O /tmp/%WODI%.tar.xz" > log.txt || type log.txt'
31+
- '%CYG_ROOT%/bin/bash -lc "cd /tmp && rm -rf %WODI% && tar -xf %WODI%.tar.xz && bash %WODI%/install.sh" > log.txt || type log.txt'
3132
- '%CYG_ROOT%/bin/bash -lc "godi_add godi-zip" > log.txt || type log.txt'
32-
- 'set PATH=%PATH%;%CYG_ROOT%/opt/wodi%WODI_ARCH%/bin'
33+
- 'set PATH=%PATH%;%CYG_ROOT%/opt/%WODI%/bin'
3334
# Install neko
3435
- cinst make -y
3536
- 'git clone --recursive https://github.com/HaxeFoundation/neko.git %NEKO_ROOT%'
@@ -46,8 +47,10 @@ install:
4647
build_script:
4748
- 'cd %APPVEYOR_BUILD_FOLDER%'
4849
- 'set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%'
49-
- '%CYG_ROOT%/bin/bash -lc "cd \"$OLDPWD\" && make -s -f Makefile.win WODI=wodi%WODI_ARCH% OCAMLOPT=ocamlopt.opt ADD_REVISION=1"'
50-
- '%CYG_ROOT%/bin/bash -lc "cd \"$OLDPWD\" && make -s -f Makefile.win WODI=wodi%WODI_ARCH% OCAMLOPT=ocamlopt.opt tools"'
50+
- '%CYG_ROOT%/bin/bash -lc "cd \"$OLDPWD\" && make -s -f Makefile.win"'
51+
- '%CYG_ROOT%/bin/bash -lc "cd \"$OLDPWD\" && make -s -f Makefile.win tools"'
52+
- '%CYG_ROOT%/bin/bash -lc "cd \"$OLDPWD\" && make -s -f Makefile.win package_bin"'
53+
- dir %APPVEYOR_BUILD_FOLDER%\out
5154
- cd %APPVEYOR_BUILD_FOLDER%/tests/
5255
- mkdir "%HAXELIB_ROOT%"
5356
- haxelib setup "%HAXELIB_ROOT%"
@@ -57,3 +60,6 @@ test_script:
5760
- haxe -version
5861
- haxe RunCi.hxml
5962
- neko RunCi.n
63+
64+
artifacts:
65+
- path: out/haxe_*.zip

0 commit comments

Comments
 (0)