11
Build OS X Apps on Travis CI Build OS X Apps on Travis CI Build OS X Apps on Travis CI Build OS X Apps on Travis CI Build OS X Apps on Travis CI Kiwamu Okabe Kiwamu Okabe Kiwamu Okabe Kiwamu Okabe Kiwamu Okabe

Build OS X Apps on Travis CI

Embed Size (px)

DESCRIPTION

Build OS X Apps on Travis CI

Citation preview

Page 1: Build OS X Apps on Travis CI

Build OS X Apps on Travis CIBuild OS X Apps on Travis CIBuild OS X Apps on Travis CIBuild OS X Apps on Travis CIBuild OS X Apps on Travis CI

Kiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu Okabe

Page 2: Build OS X Apps on Travis CI

Who am I?Who am I?Who am I?Who am I?Who am I?

☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/

☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q

☆ Organizer of Metasepi project☆ Organizer of Metasepi project☆ Organizer of Metasepi project☆ Organizer of Metasepi project☆ Organizer of Metasepi project

☆ A developer of Ajhc Haskell compiler☆ A developer of Ajhc Haskell compiler☆ A developer of Ajhc Haskell compiler☆ A developer of Ajhc Haskell compiler☆ A developer of Ajhc Haskell compiler

☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer

☆ 10 years' experience in developing OS using NetBSD.☆ 10 years' experience in developing OS using NetBSD.☆ 10 years' experience in developing OS using NetBSD.☆ 10 years' experience in developing OS using NetBSD.☆ 10 years' experience in developing OS using NetBSD.

Page 3: Build OS X Apps on Travis CI

Do you use Travis CI?Do you use Travis CI?Do you use Travis CI?Do you use Travis CI?Do you use Travis CI?

Page 4: Build OS X Apps on Travis CI

Ajhc is tested on Travis CIAjhc is tested on Travis CIAjhc is tested on Travis CIAjhc is tested on Travis CIAjhc is tested on Travis CI

☆ Travis CI is a continuous integration service.☆ Travis CI is a continuous integration service.☆ Travis CI is a continuous integration service.☆ Travis CI is a continuous integration service.☆ Travis CI is a continuous integration service.

☆ It builds code on Ubuntu Linux.☆ It builds code on Ubuntu Linux.☆ It builds code on Ubuntu Linux.☆ It builds code on Ubuntu Linux.☆ It builds code on Ubuntu Linux.

☆ But some people use Mac OS X.☆ But some people use Mac OS X.☆ But some people use Mac OS X.☆ But some people use Mac OS X.☆ But some people use Mac OS X.

☆ Are there CI services for OS X Apps?☆ Are there CI services for OS X Apps?☆ Are there CI services for OS X Apps?☆ Are there CI services for OS X Apps?☆ Are there CI services for OS X Apps?

Page 5: Build OS X Apps on Travis CI

Travis CI can build iOS appsTravis CI can build iOS appsTravis CI can build iOS appsTravis CI can build iOS appsTravis CI can build iOS apps

If so, also can build Mac OS X apps?If so, also can build Mac OS X apps?If so, also can build Mac OS X apps?If so, also can build Mac OS X apps?If so, also can build Mac OS X apps?http://about.travis-ci.org/docs/user/osx-ci-environment/http://about.travis-ci.org/docs/user/osx-ci-environment/http://about.travis-ci.org/docs/user/osx-ci-environment/http://about.travis-ci.org/docs/user/osx-ci-environment/http://about.travis-ci.org/docs/user/osx-ci-environment/

Page 6: Build OS X Apps on Travis CI

Detail to build Mac OS X AppsDetail to build Mac OS X AppsDetail to build Mac OS X AppsDetail to build Mac OS X AppsDetail to build Mac OS X AppsDetail: https://github.com/ajhc/ajhc/tree/arafura-ci4osxDetail: https://github.com/ajhc/ajhc/tree/arafura-ci4osxDetail: https://github.com/ajhc/ajhc/tree/arafura-ci4osxDetail: https://github.com/ajhc/ajhc/tree/arafura-ci4osxDetail: https://github.com/ajhc/ajhc/tree/arafura-ci4osx

Page 7: Build OS X Apps on Travis CI

Setting to build OS X Apps #1Setting to build OS X Apps #1Setting to build OS X Apps #1Setting to build OS X Apps #1Setting to build OS X Apps #1# .travis.ymllanguage: objective-c

before_install: - date - export PATH="$HOME/Library/Haskell/bin:$PATH" - ./travis-ci/setup_osx.sh - git fetch --tags - ./travis-ci/show_setting_osx.shscript: - ./travis-ci/build.sh - make selftest - make rtstestafter_script: - date

# .travis.ymllanguage: objective-c

before_install: - date - export PATH="$HOME/Library/Haskell/bin:$PATH" - ./travis-ci/setup_osx.sh - git fetch --tags - ./travis-ci/show_setting_osx.shscript: - ./travis-ci/build.sh - make selftest - make rtstestafter_script: - date

# .travis.ymllanguage: objective-c

before_install: - date - export PATH="$HOME/Library/Haskell/bin:$PATH" - ./travis-ci/setup_osx.sh - git fetch --tags - ./travis-ci/show_setting_osx.shscript: - ./travis-ci/build.sh - make selftest - make rtstestafter_script: - date

# .travis.ymllanguage: objective-c

before_install: - date - export PATH="$HOME/Library/Haskell/bin:$PATH" - ./travis-ci/setup_osx.sh - git fetch --tags - ./travis-ci/show_setting_osx.shscript: - ./travis-ci/build.sh - make selftest - make rtstestafter_script: - date

# .travis.ymllanguage: objective-c

before_install:- date- export PATH="$HOME/Library/Haskell/bin:$PATH"- ./travis-ci/setup_osx.sh- git fetch --tags- ./travis-ci/show_setting_osx.sh

script:- ./travis-ci/build.sh- make selftest- make rtstest

after_script:- date

Page 8: Build OS X Apps on Travis CI

Setting to build OS X Apps #2Setting to build OS X Apps #2Setting to build OS X Apps #2Setting to build OS X Apps #2Setting to build OS X Apps #2# travis-ci/setup_osx.sh#!/usr/bin/env shwget "http://lambda.haskell.org/platform/download/2013.2.0.0/Haskell Platform 2013.2.0.0 32bit.pkg"sudo installer -pkg "Haskell Platform 2013.2.0.0 32bit.pkg" -target /brew updatebrew install valgrindecho "yes" | sudo cpan install YAMLcabal updateexport HSPACKS="derive temporary haskeline utf8-string HsSyck cpphs test-framework-th test-framework-hunit test-framework-quickcheck2 uniplate"export HSOPTS="-j --disable-documentation --disable-library-profiling --disable-executable-profiling"cabal install $HSOPTS cabal-installcabal install $HSOPTS $HSPACKS

# travis-ci/setup_osx.sh#!/usr/bin/env shwget "http://lambda.haskell.org/platform/download/2013.2.0.0/Haskell Platform 2013.2.0.0 32bit.pkg"sudo installer -pkg "Haskell Platform 2013.2.0.0 32bit.pkg" -target /brew updatebrew install valgrindecho "yes" | sudo cpan install YAMLcabal updateexport HSPACKS="derive temporary haskeline utf8-string HsSyck cpphs test-framework-th test-framework-hunit test-framework-quickcheck2 uniplate"export HSOPTS="-j --disable-documentation --disable-library-profiling --disable-executable-profiling"cabal install $HSOPTS cabal-installcabal install $HSOPTS $HSPACKS

# travis-ci/setup_osx.sh#!/usr/bin/env shwget "http://lambda.haskell.org/platform/download/2013.2.0.0/Haskell Platform 2013.2.0.0 32bit.pkg"sudo installer -pkg "Haskell Platform 2013.2.0.0 32bit.pkg" -target /brew updatebrew install valgrindecho "yes" | sudo cpan install YAMLcabal updateexport HSPACKS="derive temporary haskeline utf8-string HsSyck cpphs test-framework-th test-framework-hunit test-framework-quickcheck2 uniplate"export HSOPTS="-j --disable-documentation --disable-library-profiling --disable-executable-profiling"cabal install $HSOPTS cabal-installcabal install $HSOPTS $HSPACKS

# travis-ci/setup_osx.sh#!/usr/bin/env shwget "http://lambda.haskell.org/platform/download/2013.2.0.0/Haskell Platform 2013.2.0.0 32bit.pkg"sudo installer -pkg "Haskell Platform 2013.2.0.0 32bit.pkg" -target /brew updatebrew install valgrindecho "yes" | sudo cpan install YAMLcabal updateexport HSPACKS="derive temporary haskeline utf8-string HsSyck cpphs test-framework-th test-framework-hunit test-framework-quickcheck2 uniplate"export HSOPTS="-j --disable-documentation --disable-library-profiling --disable-executable-profiling"cabal install $HSOPTS cabal-installcabal install $HSOPTS $HSPACKS

# travis-ci/setup_osx.sh#!/usr/bin/env shwget "http://lambda.haskell.org/platform/download/2013.2.0.0/Haskell Platform 2013.2.0.0 32bit.pkg"sudo installer -pkg "Haskell Platform 2013.2.0.0 32bit.pkg" -target /brew updatebrew install valgrindecho "yes" | sudo cpan install YAMLcabal updateexport HSPACKS="derive temporary haskeline utf8-string HsSyck cpphs test-framework-th test-framework-hunit test-framework-quickcheck2 uniplate"export HSOPTS="-j --disable-documentation --disable-library-profiling --disable-executable-profiling"cabal install $HSOPTS cabal-installcabal install $HSOPTS $HSPACKS

Page 9: Build OS X Apps on Travis CI

DemonstrationDemonstrationDemonstrationDemonstrationDemonstration

We have a time to watch demo?We have a time to watch demo?We have a time to watch demo?We have a time to watch demo?We have a time to watch demo?

Page 10: Build OS X Apps on Travis CI

PR: Ajhc Haskell compilerPR: Ajhc Haskell compilerPR: Ajhc Haskell compilerPR: Ajhc Haskell compilerPR: Ajhc Haskell compiler

☆ http://ajhc.metasepi.org/☆ http://ajhc.metasepi.org/☆ http://ajhc.metasepi.org/☆ http://ajhc.metasepi.org/☆ http://ajhc.metasepi.org/

☆ Ajhc apps are able to running on tiny CPU has only 40kB RAM.☆ Ajhc apps are able to running on tiny CPU has only 40kB RAM.☆ Ajhc apps are able to running on tiny CPU has only 40kB RAM.☆ Ajhc apps are able to running on tiny CPU has only 40kB RAM.☆ Ajhc apps are able to running on tiny CPU has only 40kB RAM.

☆ Ajhc also build Android NDK apps.☆ Ajhc also build Android NDK apps.☆ Ajhc also build Android NDK apps.☆ Ajhc also build Android NDK apps.☆ Ajhc also build Android NDK apps.

☆ In future, would like to rewrite NetBSD kernel with Ajhc!☆ In future, would like to rewrite NetBSD kernel with Ajhc!☆ In future, would like to rewrite NetBSD kernel with Ajhc!☆ In future, would like to rewrite NetBSD kernel with Ajhc!☆ In future, would like to rewrite NetBSD kernel with Ajhc!

Page 11: Build OS X Apps on Travis CI

PR: Call For ArticlesPR: Call For ArticlesPR: Call For ArticlesPR: Call For ArticlesPR: Call For Articles

☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/☆ http://www.paraiso-lang.org/ikmsm/

☆ Fanzine of functional programming.☆ Fanzine of functional programming.☆ Fanzine of functional programming.☆ Fanzine of functional programming.☆ Fanzine of functional programming.

☆ About Haskell or OCaml or . . .☆ About Haskell or OCaml or . . .☆ About Haskell or OCaml or . . .☆ About Haskell or OCaml or . . .☆ About Haskell or OCaml or . . .

☆ Article about Ajhc in C84 book.☆ Article about Ajhc in C84 book.☆ Article about Ajhc in C84 book.☆ Article about Ajhc in C84 book.☆ Article about Ajhc in C84 book.

☆ Call me if you read it!☆ Call me if you read it!☆ Call me if you read it!☆ Call me if you read it!☆ Call me if you read it!http://www.paraiso-lang.org/ikmsm/books/c85.htmlhttp://www.paraiso-lang.org/ikmsm/books/c85.htmlhttp://www.paraiso-lang.org/ikmsm/books/c85.htmlhttp://www.paraiso-lang.org/ikmsm/books/c85.htmlhttp://www.paraiso-lang.org/ikmsm/books/c85.html