diff --git a/.dockerignore b/.dockerignore index 1a2d31e73d2e4..05a14b4623bb2 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1,13 @@ +*.sublime-project +aws_machines +Brewfile +build_times +build_types +codeship-services.yml +codeship-steps* +codeship.aes +CONTRIBUTING.md +COPYRIGHT.txt +README.md tmp -.git +Vagrantfile diff --git a/.gitignore b/.gitignore index 9dfa377bcf857..124ff230475c6 100644 --- a/.gitignore +++ b/.gitignore @@ -108,3 +108,7 @@ bundler_stubs/* vendor/bundle/* *.db + +# Codeship Docker Plattform +codeship.aes +dockercfg diff --git a/Dockerfile b/Dockerfile index 6e8837cc81bd3..b0d02585d23c7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,34 +1,65 @@ -FROM ruby:2.2.1 -MAINTAINER flo@codeship.com +FROM ruby:2.3.1-slim +MAINTAINER maintainers@codeship.com + +ENV \ + DEBIAN_DISTRIBUTION="jessie" \ + DEBIAN_FRONTEND="noninteractive" \ + NODE_VERSION="4.x" \ + PHANTOMJS_VERSION="1.9.7" RUN \ - apt-get update -y && \ - apt-get upgrade -y && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y \ + apt-get update \ + && apt-get install -y --no-install-recommends \ + apt-transport-https \ + && curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ + && echo "deb https://deb.nodesource.com/node_${NODE_VERSION} ${DEBIAN_DISTRIBUTION} main" > /etc/apt/sources.list.d/nodesource.list \ + && curl -s https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \ + && echo "deb http://apt.postgresql.org/pub/repos/apt/ ${DEBIAN_DISTRIBUTION}-pgdg main" > /etc/apt/sources.list.d/postgresql.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + postgresql-client-9.5 \ + apt-utils \ build-essential \ + bzip2 \ + gifsicle \ + git \ + graphicsmagick-imagemagick-compat \ + jhead \ + jpegoptim \ + libfontconfig \ + libfreetype6 \ + libjpeg-progs \ libpq-dev \ nodejs \ - apt-utils \ - vim git wget libfreetype6 libfontconfig bzip2 time python-pip - -ENV PHANTOMJS_VERSION 1.9.7 + optipng \ + postgresql-client-9.4 \ + python-pip \ + time \ + vim \ + wget \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* \ + && pip install awscli \ + && npm config set "production" "true" \ + && npm config set "loglevel" "error" \ + && npm install npm -g \ + && npm install -g svgo RUN \ - mkdir -p /srv/var && \ - wget -q --no-check-certificate -O /tmp/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 https://s3.amazonaws.com/codeship.io/checkbot/archives/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 && \ - tar -xjf /tmp/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 -C /tmp && \ - rm -f /tmp/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 && \ - mv /tmp/phantomjs-$PHANTOMJS_VERSION-linux-x86_64/ /srv/var/phantomjs && \ - ln -s /srv/var/phantomjs/bin/phantomjs /usr/bin/phantomjs + wget --no-verbose --output-document /tmp/phantomjs-linux-x86_64.tar.bz2 "https://s3.amazonaws.com/codeship-packages/phantomjs-${PHANTOMJS_VERSION}-linux-x86_64.tar.bz2" \ + && tar -xaf /tmp/phantomjs-linux-x86_64.tar.bz2 --directory /tmp/ \ + && mv "/tmp/phantomjs-${PHANTOMJS_VERSION}-linux-x86_64/bin/phantomjs" /usr/bin/phantomjs \ + && rm -rf /tmp/phantomjs-linux-x86_64.tar.bz2 "/tmp/phantomjs-${PHANTOMJS_VERSION}-linux-x86_64" -RUN pip install awscli +RUN mkdir /code +WORKDIR /code -RUN mkdir -p /app -WORKDIR /app -COPY Gemfile ./Gemfile -COPY Gemfile.lock ./Gemfile.lock -COPY vendor ./vendor -RUN bundle install -j24 -RUN gem install parallel_tests +COPY Gemfile Gemfile.lock vendor ./ +RUN \ + bundle install --jobs 20 --retry 5 \ + && gem install parallel_tests -WORKDIR /code +COPY . ./ + +RUN \ + mkdir -p ./public/backups/default tmp diff --git a/codeship-services.yml b/codeship-services.yml index 58f3f2648aa7d..ed116cdde36fb 100644 --- a/codeship-services.yml +++ b/codeship-services.yml @@ -1,19 +1,18 @@ app: build: - image: flomotlik/discourse dockerfile_path: Dockerfile environment: - SECRET_TOKEN: abcdefghij - REDIS_ADDRESS: redis://redis:6379 - RAILS_ENV: test DATABASE_HOST: postgresql + PGHOST: postgresql + PGUSER: postgres + RAILS_ENV: test + REDIS_ADDRESS: redis://redis:6379 + SECRET_TOKEN: abcdefghij links: - postgresql - redis cached: true - volumes: - - ./:/code postgresql: - image: postgres:9.3.6 + image: postgres:9.5 redis: - image: redis:3.0.2 + image: redis:3.2-alpine diff --git a/codeship-steps.yml b/codeship-steps.yml index 54572177a9d52..31dae9fd6a79c 100644 --- a/codeship-steps.yml +++ b/codeship-steps.yml @@ -1,11 +1,11 @@ - type: parallel - encrypted_dockercfg_path: dockercfg.encrypted + service: app steps: - - service: app + - name: Specs command: ./script/ci/ci.parallel spec - - service: app + - name: Plugins command: ./script/ci/ci.parallel plugin - - service: app + - name: QUnit command: ./script/ci/ci.parallel qunit - - service: app + - name: PhantomJS command: phantomjs --help diff --git a/dockercfg.encrypted b/dockercfg.encrypted deleted file mode 100644 index 9f63d90f44ac7..0000000000000 --- a/dockercfg.encrypted +++ /dev/null @@ -1 +0,0 @@ -4iE+JmvBTwm21rQEfbxEBhC6Ht6NyWbN8agi/aUQrB3A/JU3JnBBqvDXp2ryUufU75V58kJukKrNA4VmRRzmv3lGrjLMqB5j1Ljf84f80P32jShFaZOpO6JtV/OZMWpKTHosjOnwae+jny2sqeLukzh2MymN/PhkiptMzNcwB77c4N3h5IJGM7z04ffIndawvT2zUbO5k/MU6FHZSP8= \ No newline at end of file