Move Linux CI to CircleCI
This commit is contained in:
John Kleinschmidt 2017-08-22 13:20:35 -04:00 коммит произвёл GitHub
Родитель 232717a473
Коммит e77d7b96de
5 изменённых файлов: 277 добавлений и 13 удалений

Просмотреть файл

@ -1,8 +1,242 @@
version: 2.0
jobs:
build:
libchromiumcontent-linux-x64:
docker:
- image: electronbuilds/libchromiumcontent:0.0.1
- image: electronbuilds/libchromiumcontent:0.0.4
environment:
TARGET_ARCH: x64
resource_class: xlarge
steps:
- checkout
- run: script/cibuild
- checkout
- run: script/bootstrap
- run: script/update --clean -t $TARGET_ARCH
- run: script/build -t $TARGET_ARCH -c static_library
- run: script/build -t $TARGET_ARCH -c shared_library
- run: script/build -t $TARGET_ARCH -c ffmpeg
- run: script/create-dist -t $TARGET_ARCH
- run: script/upload -t $TARGET_ARCH
libchromiumcontent-linux-x64-static-build:
docker:
- image: electronbuilds/libchromiumcontent:0.0.4
environment:
TARGET_ARCH: x64
resource_class: xlarge
steps:
- checkout
- run: script/bootstrap
- run: script/update --clean -t $TARGET_ARCH
- run: script/build -t $TARGET_ARCH -c static_library
- run: script/build -t $TARGET_ARCH -c ffmpeg
- run: mkdir -p "/tmp/workspace/out-${TARGET_ARCH}/static_library"
- run: mkdir -p "/tmp/workspace/out-${TARGET_ARCH}/ffmpeg"
- run: cp -r "src/out-${TARGET_ARCH}/static_library" "/tmp/workspace/out-${TARGET_ARCH}"
- run: cp -r "src/out-${TARGET_ARCH}/ffmpeg" "/tmp/workspace/out-${TARGET_ARCH}"
- persist_to_workspace:
root: /tmp/workspace
paths:
- out-x64/static_library
- out-x64/ffmpeg
libchromiumcontent-linux-x64-shared-build:
docker:
- image: electronbuilds/libchromiumcontent:0.0.4
environment:
TARGET_ARCH: x64
resource_class: xlarge
steps:
- checkout
- run: script/bootstrap
- run: script/update --clean -t $TARGET_ARCH
- run: script/build -t $TARGET_ARCH -c shared_library
- run: mkdir -p "/tmp/workspace/out-${TARGET_ARCH}/shared_library"
- run: cp -r "src/out-${TARGET_ARCH}/shared_library" "/tmp/workspace/out-${TARGET_ARCH}"
- persist_to_workspace:
root: /tmp/workspace
paths:
- out-x64/shared_library
libchromiumcontent-linux-x64-upload:
docker:
- image: electronbuilds/libchromiumcontent:0.0.4
environment:
TARGET_ARCH: x64
resource_class: xlarge
steps:
- checkout
- run: script/bootstrap
- attach_workspace:
at: /home/builduser/project/src
- run: script/create-dist -t $TARGET_ARCH
- run: script/upload -t $TARGET_ARCH
libchromiumcontent-linux-ia32:
docker:
- image: electronbuilds/libchromiumcontent:0.0.4
environment:
TARGET_ARCH: ia32
resource_class: xlarge
steps:
- checkout
- run: script/bootstrap
- run: script/update --clean -t $TARGET_ARCH
- run: script/build -t $TARGET_ARCH -c static_library
- run: script/build -t $TARGET_ARCH -c shared_library
- run: script/build -t $TARGET_ARCH -c ffmpeg
- run: script/create-dist -t $TARGET_ARCH
- run: script/upload -t $TARGET_ARCH
libchromiumcontent-linux-ia32-static-build:
docker:
- image: electronbuilds/libchromiumcontent:0.0.4
environment:
TARGET_ARCH: ia32
resource_class: xlarge
steps:
- checkout
- run: script/bootstrap
- run: script/update --clean -t $TARGET_ARCH
- run: script/build -t $TARGET_ARCH -c static_library
- run: script/build -t $TARGET_ARCH -c ffmpeg
- run: mkdir -p "/tmp/workspace/out-${TARGET_ARCH}/static_library"
- run: mkdir -p "/tmp/workspace/out-${TARGET_ARCH}/ffmpeg"
- run: cp -r "src/out-${TARGET_ARCH}/static_library" "/tmp/workspace/out-${TARGET_ARCH}"
- run: cp -r "src/out-${TARGET_ARCH}/ffmpeg" "/tmp/workspace/out-${TARGET_ARCH}"
- persist_to_workspace:
root: /tmp/workspace
paths:
- out-ia32/static_library
- out-ia32/ffmpeg
libchromiumcontent-linux-ia32-shared-build:
docker:
- image: electronbuilds/libchromiumcontent:0.0.4
environment:
TARGET_ARCH: ia32
resource_class: xlarge
steps:
- checkout
- run: script/bootstrap
- run: script/update --clean -t $TARGET_ARCH
- run: script/build -t $TARGET_ARCH -c shared_library
- run: mkdir -p "/tmp/workspace/out-${TARGET_ARCH}/shared_library"
- run: cp -r "src/out-${TARGET_ARCH}/shared_library" "/tmp/workspace/out-${TARGET_ARCH}"
- persist_to_workspace:
root: /tmp/workspace
paths:
- out-ia32/shared_library
libchromiumcontent-linux-ia32-upload:
docker:
- image: electronbuilds/libchromiumcontent:0.0.4
environment:
TARGET_ARCH: ia32
resource_class: xlarge
steps:
- checkout
- run: script/bootstrap
- attach_workspace:
at: /home/builduser/project/src
- run: script/create-dist -t $TARGET_ARCH
- run: script/upload -t $TARGET_ARCH
libchromiumcontent-linux-arm:
docker:
- image: electronbuilds/libchromiumcontent:0.0.4
environment:
TARGET_ARCH: arm
resource_class: xlarge
steps:
- checkout
- run: script/bootstrap
- run: script/update --clean -t $TARGET_ARCH
- run: script/build -t $TARGET_ARCH -c static_library
- run: script/build -t $TARGET_ARCH -c shared_library
- run: script/build -t $TARGET_ARCH -c ffmpeg
- run: script/create-dist -t $TARGET_ARCH
- run: script/upload -t $TARGET_ARCH
libchromiumcontent-linux-arm-static-build:
docker:
- image: electronbuilds/libchromiumcontent:0.0.4
environment:
TARGET_ARCH: arm
resource_class: xlarge
steps:
- checkout
- run: script/bootstrap
- run: script/update --clean -t $TARGET_ARCH
- run: script/build -t $TARGET_ARCH -c static_library
- run: script/build -t $TARGET_ARCH -c ffmpeg
- run: mkdir -p "/tmp/workspace/out-${TARGET_ARCH}/static_library"
- run: mkdir -p "/tmp/workspace/out-${TARGET_ARCH}/ffmpeg"
- run: cp -r "src/out-${TARGET_ARCH}/static_library" "/tmp/workspace/out-${TARGET_ARCH}"
- run: cp -r "src/out-${TARGET_ARCH}/ffmpeg" "/tmp/workspace/out-${TARGET_ARCH}"
- persist_to_workspace:
root: /tmp/workspace
paths:
- out-arm/static_library
- out-arm/ffmpeg
libchromiumcontent-linux-arm-shared-build:
docker:
- image: electronbuilds/libchromiumcontent:0.0.4
environment:
TARGET_ARCH: arm
resource_class: xlarge
steps:
- checkout
- run: script/bootstrap
- run: script/update --clean -t $TARGET_ARCH
- run: script/build -t $TARGET_ARCH -c shared_library
- run: mkdir -p "/tmp/workspace/out-${TARGET_ARCH}/shared_library"
- run: cp -r "src/out-${TARGET_ARCH}/shared_library" "/tmp/workspace/out-${TARGET_ARCH}"
- persist_to_workspace:
root: /tmp/workspace
paths:
- out-arm/shared_library
libchromiumcontent-linux-arm-upload:
docker:
- image: electronbuilds/libchromiumcontent:0.0.4
environment:
TARGET_ARCH: arm
resource_class: xlarge
steps:
- checkout
- run: script/bootstrap
- attach_workspace:
at: /home/builduser/project/src
- run: script/create-dist -t $TARGET_ARCH
- run: script/upload -t $TARGET_ARCH
libchromiumcontent-linux-arm64:
docker:
- image: electronbuilds/libchromiumcontent:0.0.4
environment:
TARGET_ARCH: arm64
resource_class: xlarge
steps:
- checkout
- run: script/bootstrap
- run: script/update --clean -t $TARGET_ARCH
- run: script/build -t $TARGET_ARCH -c static_library
- run: script/build -t $TARGET_ARCH -c shared_library
- run: script/build -t $TARGET_ARCH -c ffmpeg
- run: script/create-dist -t $TARGET_ARCH
- run: script/upload -t $TARGET_ARCH
workflows:
version: 2
build-x64:
jobs:
- libchromiumcontent-linux-x64
build-ia32:
jobs:
- libchromiumcontent-linux-ia32
build-arm:
jobs:
- libchromiumcontent-linux-arm
build-arm64:
jobs:
- libchromiumcontent-linux-arm64

Просмотреть файл

@ -1,14 +1,35 @@
FROM ubuntu:16.04
RUN groupadd --gid 1000 builduser \
&& useradd --uid 1000 --gid builduser --shell /bin/bash --create-home builduser
# Set up TEMP directory
ENV TEMP=/tmp
RUN chmod a+rwx /tmp
# Set up HOME directory
ENV HOME=/home
RUN chmod a+rwx /home
# Install Linux packages
ADD script/docker-install-build-deps.sh /setup/install-build-deps.sh
RUN apt-get update && apt-get -y --force-yes install lsb-release locales
RUN /setup/install-build-deps.sh --syms --no-prompt --no-chromeos-fonts
RUN apt-get install -y python-setuptools
RUN easy_install -U pip
RUN pip install -U crcmod
RUN mkdir /tmp/workspace
RUN chown builduser:builduser /tmp/workspace
USER builduser
WORKDIR /home/builduser
# Prime the LIBCHROMIUMCONTENT_GIT_CACHE and src dirs
RUN mkdir /tmp/libcc_cache
RUN chown builduser:builduser /tmp/libcc_cache
RUN git clone https://github.com/electron/libchromiumcontent.git project
WORKDIR /home/builduser/project
RUN git checkout circleci_test
RUN script/bootstrap
RUN export LIBCHROMIUMCONTENT_GIT_CACHE=/tmp/libcc_cache
RUN script/update --source_only
WORKDIR /home/builduser

Просмотреть файл

@ -15,9 +15,13 @@ S3_CREDENTIALS_FILE = os.path.join(JENKINS_ROOT, 'config', 's3credentials')
def main():
if not os.path.isfile(S3_CREDENTIALS_FILE):
return 'Error: Can\'t find {0}'.format(S3_CREDENTIALS_FILE)
copy_to_environment(S3_CREDENTIALS_FILE)
if (not 'LIBCHROMIUMCONTENT_S3_ACCESS_KEY' in os.environ and
not 'LIBCHROMIUMCONTENT_S3_BUCKET' in os.environ and
not 'LIBCHROMIUMCONTENT_S3_SECRET_KEY' in os.environ):
if not os.path.isfile(S3_CREDENTIALS_FILE):
return 'Error: Can\'t find {0}'.format(S3_CREDENTIALS_FILE)
copy_to_environment(S3_CREDENTIALS_FILE)
# Use by gclient to distinguish bot builds
os.environ['CHROME_HEADLESS'] = '1'

Просмотреть файл

@ -57,7 +57,10 @@ def main():
# More information: https://stackoverflow.com/a/9935126
git_cache = args.git_cache or os.getenv('LIBCHROMIUMCONTENT_GIT_CACHE', '')
if not args.skip_gclient:
gclient_sync(chromium_version(), args.clean, git_cache)
if (args.source_only):
return gclient_sync(chromium_version(), args.clean, git_cache)
else:
gclient_sync(chromium_version(), args.clean, git_cache)
if sys.platform == 'linux2':
install_sysroot()
@ -89,6 +92,8 @@ def parse_args():
help='Skips syncing repo, easier to build locally')
parser.add_argument('--skip_depot_tools_update', action='store_true',
help='Skips update depot tools on windows, easier to build locally')
parser.add_argument('--source_only', action='store_true',
help='Only sync the chromium source code')
return parser.parse_args()

2
vendor/depot_tools поставляемый

@ -1 +1 @@
Subproject commit 4b73b02b36238fe6c8e71b647b0e1367c9ead9cc
Subproject commit c55eecf76bdb96b904aaaee93fe4c67bbbb102d9