File tree Expand file tree Collapse file tree 4 files changed +118
-0
lines changed Expand file tree Collapse file tree 4 files changed +118
-0
lines changed Original file line number Diff line number Diff line change 1+ ARG swift_version=5.2
2+ ARG ubuntu_version=bionic
3+ ARG base_image=swift:$swift_version-$ubuntu_version
4+ FROM $base_image
5+ # needed to do again after FROM due to docker limitation
6+ ARG swift_version
7+ ARG ubuntu_version
8+
9+ # set as UTF-8
10+ RUN apt-get update && apt-get install -y locales locales-all
11+ ENV LC_ALL en_US.UTF-8
12+ ENV LANG en_US.UTF-8
13+ ENV LANGUAGE en_US.UTF-8
14+
15+ # dependencies
16+ RUN apt-get update && apt-get install -y wget
17+ RUN apt-get update && apt-get install -y lsof dnsutils netcat-openbsd net-tools curl jq # used by integration tests
18+
19+ # ruby and jazzy for docs generation
20+ RUN apt-get update && apt-get install -y ruby ruby-dev libsqlite3-dev
21+ # jazzy no longer works on xenial as ruby is too old.
22+ RUN if [ "${ubuntu_version}" != "xenial" ] ; then gem install jazzy --no-ri --no-rdoc ; fi
23+
24+ # tools
25+ RUN mkdir -p $HOME/.tools
26+ RUN echo 'export PATH="$HOME/.tools:$PATH"' >> $HOME/.profile
27+
28+ # swiftformat (until part of the toolchain)
29+
30+ ARG swiftformat_version=0.40.12
31+ RUN git clone --branch $swiftformat_version --depth 1 https://github.com/nicklockwood/SwiftFormat $HOME/.tools/swift-format
32+ RUN cd $HOME/.tools/swift-format && swift build -c release
33+ RUN ln -s $HOME/.tools/swift-format/.build/release/swiftformat $HOME/.tools/swiftformat
Original file line number Diff line number Diff line change 1+ version : " 3"
2+
3+ services :
4+
5+ runtime-setup :
6+ image : swift-http-structured-headers:16.04-5.2
7+ build :
8+ args :
9+ ubuntu_version : " xenial"
10+ swift_version : " 5.2"
11+
12+ unit-tests :
13+ image : swift-http-structured-headers:16.04-5.2
14+
15+ test :
16+ image : swift-http-structured-headers:16.04-5.2
17+ environment :
18+ - SANITIZER_ARG=--sanitize=thread
19+
20+ shell :
21+ image : swift-http-structured-headers:16.04-5.2
Original file line number Diff line number Diff line change 1+ version : " 3"
2+
3+ services :
4+
5+ runtime-setup :
6+ image : swift-http-structured-headers:18.04-5.3
7+ build :
8+ args :
9+ ubuntu_version : " bionic"
10+ swift_version : " 5.3"
11+
12+ unit-tests :
13+ image : swift-http-structured-headers:18.04-5.3
14+
15+ test :
16+ image : swift-http-structured-headers:18.04-5.3
17+ environment :
18+ - SANITIZER_ARG=--sanitize=thread
19+
20+ shell :
21+ image : swift-http-structured-headers:18.04-5.3
22+
Original file line number Diff line number Diff line change 1+ # this file is not designed to be run directly
2+ # instead, use the docker-compose.<os>.<swift> files
3+ # eg docker-compose -f docker/docker-compose.yaml -f docker/docker-compose.1604.41.yaml run test
4+ version : " 3"
5+
6+ services :
7+
8+ runtime-setup :
9+ image : swift-http-structured-headers:default
10+ build :
11+ context : .
12+ dockerfile : Dockerfile
13+
14+ common : &common
15+ image : swift-http-structured-headers:default
16+ depends_on : [runtime-setup]
17+ volumes :
18+ - ~/.ssh:/root/.ssh
19+ - ..:/code:z
20+ working_dir : /code
21+ cap_drop :
22+ - CAP_NET_RAW
23+ - CAP_NET_BIND_SERVICE
24+
25+ sanity :
26+ << : *common
27+ command : /bin/bash -xcl "./scripts/sanity.sh"
28+
29+ unit-tests :
30+ << : *common
31+ command : /bin/bash -xcl "swift test --enable-test-discovery -Xswiftc -warnings-as-errors"
32+
33+ test :
34+ << : *common
35+ command : /bin/bash -xcl "swift test --enable-test-discovery -Xswiftc -warnings-as-errors $${SANITIZER_ARG-}"
36+
37+
38+ # util
39+
40+ shell :
41+ << : *common
42+ entrypoint : /bin/bash
You can’t perform that action at this time.
0 commit comments