Last active
September 27, 2017 01:30
-
-
Save iynere/db38b9039efb12aee800e0607287bc6f to your computer and use it in GitHub Desktop.
applicaster Dockerfile https://hub.docker.com/r/iynere/applicaster & config.yml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| notify: | |
| webhooks: | |
| - url: https://zapp.applicaster.com/callbacks/build_status/circleci_builds | |
| - url: https://zapp-dev.herokuapp.com/callbacks/build_status/circleci_builds | |
| version: 2 | |
| jobs: | |
| build: | |
| working_directory: ~/zapp | |
| docker: | |
| - image: iynere/applicaster:java-ruby-node-v1 | |
| environment: | |
| ANDROID_HOME: /home/circleci/android-sdk | |
| JAVA_HOME: /usr/lib/jvm/java-1.8.0-openjdk-amd64 | |
| CIRCLE_ARTIFACTS: /home/circleci/zapp/artifacts | |
| GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx4608M -XX:MaxPermSize=1024m -Xms512m -XX:+HeapDumpOnOutOfMemoryError"' | |
| RAILS_ENV: test | |
| RACK_ENV: test | |
| steps: | |
| - restore_cache: | |
| key: zapp-v5-{{ .Branch }}-{{ .Revision }} | |
| keys: | |
| - zapp-v5-{{ .Branch }}- | |
| - zapp-v5- | |
| - checkout | |
| - save_cache: | |
| key: zapp-v5-{{ .Branch }}-{{ .Revision }} | |
| paths: | |
| - ".git" | |
| - restore_cache: | |
| key: zapp-v5-{{ checksum "Gemfile.lock" }} | |
| - run: bundle check --path=/usr/local/bundle || bundle install --jobs=4 --retry=3 | |
| - save_cache: | |
| key: zapp-v5-{{ checksum "Gemfile.lock" }} | |
| paths: | |
| - /usr/local/bundle | |
| - run: | |
| name: dependencies section | |
| command: | | |
| rm -rf ~/.gradle/caches | |
| if [ -e ./gradlew ]; then ./gradlew dependencies; else gradle dependencies; fi | |
| environment: | |
| TERM: dumb | |
| - run: | |
| name: tests pre | |
| command: | | |
| if [ "$CIRCLE_BRANCH" = "release" ] || [ "$triggered_by" = "zapp" ]; | |
| then | |
| echo "skipping default rake task" | |
| else | |
| set -eo | |
| bundle exec rake | |
| git checkout . | |
| git clean -f -d | |
| fi | |
| - run: | |
| name: tests 1 | |
| command: | | |
| mkdir -p $CIRCLE_ARTIFACTS | |
| if [ "$triggered_by" = "zapp" ]; | |
| then | |
| rake build_zapp_pipes | |
| fi | |
| rake build_app | |
| if [ "$flavor" = "tv" ]; | |
| then | |
| ./gradlew assembleTvDebug | |
| else | |
| ./gradlew assembleMobileDebug | |
| fi | |
| cp -r app/build/outputs $CIRCLE_ARTIFACTS | |
| - run: | |
| name: tests 2 | |
| command: | | |
| if [ -z "$flavor" ]; | |
| then | |
| export flavor=mobile | |
| fi | |
| name=${bundle_identifier}; | |
| app_name_no_whitespaces=${bundle_identifier//[^a-zA-Z0-9]/_}; | |
| cp app/build/outputs/apk/app-${flavor}-debug.apk ${HOME}/${app_name_no_whitespaces}-debug.apk; | |
| curl -F "private=false" -F "status=2" -F "notify=0" -F "notes=debug-${flavor}" -F "ipa=@${HOME}/${app_name_no_whitespaces}-debug.apk" -F "dsym=@app/build/outputs/mapping/${flavor}/debug/mapping.txt" -H "X-HockeyAppToken:${HOCKEY_APP_TOKEN}" https://rink.hockeyapp.net/api/2/apps/upload | |
| - run: | |
| name: tests 3 | |
| command: | | |
| if [ -z "$key_store_url" ]; | |
| then | |
| echo "debug only, skipping release version" | |
| else | |
| if [ "$flavor" = "tv" ]; | |
| then | |
| ./gradlew assembleTvRelease | |
| else | |
| export flavor=mobile | |
| ./gradlew assembleMobileRelease | |
| fi | |
| fi | |
| - run: | |
| name: tests 4 | |
| command: | | |
| if [ -z "$key_store_url" ]; | |
| then | |
| echo "no release apk" | |
| else | |
| if [ -z "$flavor" ]; | |
| then | |
| flavor=mobile | |
| fi | |
| cp -r app/build/outputs $CIRCLE_ARTIFACTS | |
| name=${bundle_identifier}; | |
| app_name_no_whitespaces=${bundle_identifier//[^a-zA-Z0-9]/_}; | |
| cp app/build/outputs/apk/app-${flavor}-release.apk ${HOME}/${app_name_no_whitespaces}.apk; | |
| path_to_release_apk=${HOME}/${app_name_no_whitespaces}.apk | |
| path_to_release_mapping=app/build/outputs/mapping/${flavor}/release/mapping.txt | |
| curl -F "private=false" -F "status=2" -F "notify=0" -F "notes=store version-${flavor}" -F "ipa=@${path_to_release_apk}" -F "dsym=@${path_to_release_mapping}" -H "X-HockeyAppToken:${HOCKEY_APP_TOKEN}" https://rink.hockeyapp.net/api/2/apps/upload | |
| fi | |
| - store_artifacts: | |
| path: artifacts |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| FROM circleci/ruby:2.2-node-browsers | |
| USER root | |
| # remove Ruby 2.2.8 | |
| RUN rm -rf /usr/local/bin/ruby | |
| # install Ruby 2.1.5 | |
| RUN wget https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz && \ | |
| tar -xzvf ruby-2.1.5.tar.gz && \ | |
| rm ruby-2.1.5.tar.gz && \ | |
| cd ruby-2.1.5 && \ | |
| ./configure --with-openssl-dir=/usr/bin && \ | |
| make -j4 && \ | |
| sudo make install && \ | |
| cd .. && \ | |
| rm -r ruby-2.1.5 | |
| # install Bundler | |
| RUN gem install bundler && \ | |
| mkdir -p /usr/local/bundle && \ | |
| chown -R circleci /usr/local/bundle | |
| # remove Node 8.5.0 | |
| RUN rm -f \ | |
| /usr/local/bin/node \ | |
| /usr/local/bin/nodejs \ | |
| /usr/local/bin/npm \ | |
| /usr/local/bin/npx \ | |
| /usr/local/share/man/man1/node.1 \ | |
| /usr/local/share/systemtap/tapset/node.stp | |
| RUN rm -rf \ | |
| /usr/local/lib/node_modules \ | |
| /usr/local/include/node \ | |
| /usr/local/share/doc/node | |
| # install Node 8.0.0 | |
| RUN wget https://nodejs.org/dist/v8.0.0/node-v8.0.0.tar.gz && \ | |
| tar -xzvf node-v8.0.0.tar.gz && \ | |
| rm node-v8.0.0.tar.gz && \ | |
| cd node-v8.0.0 && \ | |
| ./configure && \ | |
| make -j4 && \ | |
| make install && \ | |
| cd .. && \ | |
| rm -r node-v8.0.0 | |
| # install Imagemagick, etc. | |
| RUN apt-get install -y imagemagick libmagickcore-dev libmagickwand-dev libept1.4.12 aptitude | |
| # install Android SDK | |
| RUN wget https://dl.google.com/android/repository/tools_r25.2.5-linux.zip && \ | |
| unzip -d /home/circleci/android-sdk tools_r25.2.5-linux.zip && \ | |
| rm -f tools_r25.2.5-linux.zip | |
| ENV PATH=$PATH:/home/circleci/android-sdk/tools:/home/circleci/android-sdk/tools/bin:/home/circleci/android-sdk/tools/bin64:/home/circleci/android-sdk/tools/lib:/home/circleci/android-sdk/tools/lib64:/home/circleci/android-sdk/tools/qemu/linux-x86_64 | |
| # install Google APIs | |
| RUN ( sleep 5 && while [ 1 ]; do sleep 1; echo y; done ) | android update sdk --no-ui --all --filter build-tools-23.0.2,build-tools-25.0.2,platform-tools,android-25,tool,extra-android-m2repository,extra-android-support,extra-google-google_play_services,extra-google-m2repository | |
| # clean up temp, fix permissions, make sure android CLI is installed | |
| RUN unzip -d /home/circleci/android-sdk /home/circleci/android-sdk/temp/tools_r25.2.5-linux.zip && \ | |
| rm -rf /home/circleci/android-sdk/temp && \ | |
| chown -R circleci /home/circleci/android-sdk | |
| USER circleci |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment