diff --git a/.circleci/config.yml b/.circleci/config.yml index ed03e91fe..f87bfc00e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -34,7 +34,7 @@ jobs: # Specify service dependencies here if necessary # CircleCI maintains a library of pre-built images # documented at https://circleci.com/docs/2.0/circleci-images/ - resource_class: xlarge + resource_class: xlarge # - image: circleci/mongo:3.4.4 environment: - COMMIT_AUTHOR_EMAIL: "yann@ethereum.org" @@ -189,6 +189,29 @@ jobs: - store_artifacts: path: ./apps/remix-ide/reports/screenshots + publish-docker: + docker: + # specify the version you desire here + - image: circleci/node:10.19.0-buster + + # Specify service dependencies here if necessary + # CircleCI maintains a library of pre-built images + # documented at https://circleci.com/docs/2.0/circleci-images/ + resource_class: xlarge + # - image: circleci/mongo:3.4.4 + environment: + - COMMIT_AUTHOR_EMAIL: "yann@ethereum.org" + - COMMIT_AUTHOR: "Circle CI" + - FILES_TO_PACKAGE: "apps/remix-ide/assets apps/remix-ide/background.js apps/remix-ide/build apps/remix-ide/icon.png apps/remix-ide/index.html apps/remix-ide/manifest.json apps/remix-ide/README.md apps/remix-ide/soljson.js apps/remix-ide/package.json" + working_directory: ~/remix-project + + steps: + - checkout + - setup_remote_docker + - run: npm install + - run: npm run build + - run: ./apps/remix-ide/ci/build_and_publish_docker_images.sh + deploy-remix-alpha: docker: # specify the version you desire here @@ -235,6 +258,11 @@ workflows: - remix-ide-run-deploy: requires: - remix-libs + - publish-docker: + requires: + - remix-ide-chrome + - remix-ide-firefox + - remix-ide-run-deploy - deploy-remix-live: requires: - remix-ide-chrome diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..7bae0b70a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM nginx:alpine +WORKDIR / + +COPY ./temp_publish_docker/ /usr/share/nginx/html/ + +EXPOSE 80 diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 000000000..91fe2eab3 --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,28 @@ +# This dockerfile is to build each branch seperately (for dev purposes) +FROM node:10 +# Create Remix user, don't use root! +# RUN yes | adduser --disabled-password remix && mkdir /app +# USER remix + +# #Now do remix stuff +# USER remix +WORKDIR /home/remix + +COPY ./ ./ + +RUN npm ci +RUN npm run build + +FROM nginx:alpine +WORKDIR / + +COPY --from=0 /home/remix/build/ /usr/share/nginx/html/build/ +COPY --from=0 /home/remix/index.html /usr/share/nginx/html/index.html +COPY --from=0 /home/remix/nginx.conf /etc/nginx/nginx.conf +COPY --from=0 /home/remix/assets/ /usr/share/nginx/html/assets/ +COPY --from=0 /home/remix/icon.png /usr/share/nginx/html/icon.png +COPY --from=0 /home/remix/background.js /usr/share/nginx/html/background.js +COPY --from=0 /home/remix/soljson.js /usr/share/nginx/html/soljson.js +COPY --from=0 /home/remix/package.json /usr/share/nginx/html/package.json + +EXPOSE 80 diff --git a/apps/remix-ide/assets/img/icon.png b/apps/remix-ide/assets/img/icon.png new file mode 100644 index 000000000..1d6bcd035 Binary files /dev/null and b/apps/remix-ide/assets/img/icon.png differ diff --git a/apps/remix-ide/ci/build_and_publish_docker_images.sh b/apps/remix-ide/ci/build_and_publish_docker_images.sh index c866d2b98..9124c5eec 100755 --- a/apps/remix-ide/ci/build_and_publish_docker_images.sh +++ b/apps/remix-ide/ci/build_and_publish_docker_images.sh @@ -12,5 +12,5 @@ mkdir temp_publish_docker cp -r $FILES_TO_PACKAGE temp_publish_docker docker login --username $DOCKER_USER --password $DOCKER_PASS -docker-compose -f docker-compose.yaml -f build.yaml build +docker-compose -f ../../../docker-compose.yaml -f ../../../build.yaml build docker push remixproject/remix-ide:$TAG diff --git a/apps/remix-ide/index.html b/apps/remix-ide/index.html index c694a541c..095c829e7 100644 --- a/apps/remix-ide/index.html +++ b/apps/remix-ide/index.html @@ -29,7 +29,7 @@ Remix - Ethereum IDE - + diff --git a/build.yaml b/build.yaml new file mode 100644 index 000000000..599cbfd8f --- /dev/null +++ b/build.yaml @@ -0,0 +1,15 @@ +version: "3.7" +x-project-base: + &project-base + restart: always + networks: + - remixide + +networks: + remixide: + +services: + remixide: + build: + context: . + dockerfile: Dockerfile diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 000000000..f006b5370 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,18 @@ +version: "3.7" +x-project-base: + &project-base + restart: always + networks: + - remixide + +networks: + remixide: + +services: + remixide: + <<: *project-base + image: remixproject/remix-ide:$TAG + container_name: remixide-${TAG} + ports: + - 8080:80 + - 65520:65520 diff --git a/workspace.json b/workspace.json index 4fef2281a..f8e303c7d 100644 --- a/workspace.json +++ b/workspace.json @@ -22,7 +22,7 @@ "styles": [], "scripts": [], "webpackConfig": "apps/remix-ide/webpack.config.js", - "maxWorkers": 6 + "maxWorkers": 2 }, "configurations": { "production": {