forked from pyodide/pyodide
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Co-authored-by: Roman Yurchak <rth.yurchak@gmail.com>
- Loading branch information
Showing
4 changed files
with
28 additions
and
58 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,29 @@ | ||
FROM circleci/python:3.8.2-buster | ||
|
||
RUN sudo apt-get update \ | ||
# bzip2 and libgconf-2-4 are necessary for extracting firefox and running chrome, respectively | ||
&& sudo apt-get install bzip2 libgconf-2-4 node-less cmake build-essential clang-format-6.0 \ | ||
uglifyjs chromium ccache libncurses6 gfortran f2c swig g++-8 libtinfo5 \ | ||
&& sudo apt-get clean \ | ||
&& sudo apt-get autoremove \ | ||
FROM python:3.8.2-buster | ||
|
||
RUN apt-get update \ | ||
&& apt-get install -y --no-install-recommends \ | ||
# building packages | ||
bzip2 ccache clang-format-6.0 cmake f2c g++ gfortran libtinfo5 node-less swig uglifyjs \ | ||
# testing packages: libgconf-2-4 is necessary for running chromium | ||
libgconf-2-4 chromium \ | ||
&& rm -rf /var/lib/apt/lists/* \ | ||
&& test "Comment: Hardcode nodejs path for uglifyjs, so it doesn't conflict with emcc's nodejs" \ | ||
&& test $(which node) = /usr/bin/node && test $(which uglifyjs) = /usr/bin/uglifyjs \ | ||
&& echo '#!/bin/sh -e\nexec /usr/bin/node /usr/bin/uglifyjs "$@"' >/tmp/uglifyjs \ | ||
&& chmod a+x /tmp/uglifyjs && sudo mv -t /usr/local/bin /tmp/uglifyjs | ||
&& chmod a+x /tmp/uglifyjs && mv -t /usr/local/bin /tmp/uglifyjs | ||
|
||
RUN sudo pip install pytest pytest-xdist pytest-instafail pytest-rerunfailures selenium PyYAML flake8 \ | ||
&& sudo rm -rf /root/.cache/pip | ||
RUN pip3 --no-cache-dir install pytest pytest-xdist pytest-instafail pytest-rerunfailures pytest-httpserver selenium PyYAML flake8 | ||
|
||
# Get recent version of Firefox and geckodriver | ||
RUN sudo wget --quiet -O firefox.tar.bz2 https://ftp.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/en-US/firefox-70.0.1.tar.bz2 \ | ||
&& sudo tar jxf firefox.tar.bz2 \ | ||
&& sudo rm -f /usr/local/bin/firefox \ | ||
&& sudo ln -s $PWD/firefox/firefox /usr/local/bin/firefox \ | ||
&& sudo wget --quiet https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz \ | ||
&& sudo tar zxf geckodriver-v0.26.0-linux64.tar.gz -C /usr/local/bin \ | ||
&& sudo rm -f firefox.tar.bz2 geckodriver-v0.26.0-linux64.tar.gz | ||
# Get firefox 70.0.1 and geckodriver | ||
RUN wget -qO- https://ftp.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/en-US/firefox-70.0.1.tar.bz2 | tar jx \ | ||
&& ln -s $PWD/firefox/firefox /usr/local/bin/firefox \ | ||
&& wget -qO- https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz | tar zxC /usr/local/bin/ | ||
|
||
# Get recent version of chromedriver | ||
RUN sudo wget --quiet https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip \ | ||
&& sudo unzip chromedriver_linux64.zip \ | ||
&& sudo mv $PWD/chromedriver /usr/local/bin \ | ||
&& sudo rm -f chromedriver_linux64.zip | ||
|
||
|
||
# start xvfb automatically to avoid needing to express in circle.yml | ||
ENV DISPLAY :99 | ||
RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ | ||
&& chmod +x /tmp/entrypoint \ | ||
&& sudo mv /tmp/entrypoint /docker-entrypoint.sh | ||
|
||
# ensure that the build agent doesn't override the entrypoint | ||
LABEL com.circleci.preserve-entrypoint=true | ||
RUN wget --quiet https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip \ | ||
&& unzip chromedriver_linux64.zip \ | ||
&& mv $PWD/chromedriver /usr/local/bin \ | ||
&& rm -f chromedriver_linux64.zip | ||
|
||
ENTRYPOINT ["/docker-entrypoint.sh"] | ||
CMD ["/bin/sh"] | ||
WORKDIR /src |
This file contains 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
This file contains 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