diff --git a/.circleci/config.yml b/.circleci/config.yml index bacd853..d06e1c7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,6 +1,31 @@ version: 2.1 +commands: + build-glibc: + description: Compiles GNU C library against a given architecture. + steps: + - run: + command: mkdir -p artefacts + name: Create directory for storing artefacts + - run: + command: docker build . --tag sgerrand/glibc-builder:$CIRCLE_SHA1 + name: Create Docker image + - run: + command: docker run --rm --env GLIBC_VERSION --env STDOUT=1 sgerrand/glibc-builder:$CIRCLE_SHA1 > artefacts/glibc-bin-$GLIBC_VERSION-0-$(uname -m).tar.gz + name: Build glibc package + - persist_to_workspace: + root: . + paths: artefacts + - store_artifacts: + path: artefacts executors: - builder: + builder-arm: + docker: + - image: docker:git + environment: + GLIBC_VERSION: 2.39 + resource_class: arm.large + working_directory: ~/docker-glibc-builder + builder-x86: docker: - image: docker:git environment: @@ -13,25 +38,18 @@ executors: resource_class: small working_directory: ~/docker-glibc-builder jobs: - build: - executor: builder + build-aarch64: + executor: builder-arm steps: - checkout - setup_remote_docker - - run: - command: mkdir -p artefacts - name: Create directory for storing artefacts - - run: - command: docker build . --tag sgerrand/glibc-builder:$CIRCLE_SHA1 - name: Create Docker image - - run: - command: docker run --rm --env GLIBC_VERSION --env STDOUT=1 sgerrand/glibc-builder:$CIRCLE_SHA1 > artefacts/glibc-bin-$GLIBC_VERSION-0-$(uname -m).tar.gz - name: Build glibc package - - persist_to_workspace: - root: . - paths: artefacts - - store_artifacts: - path: artefacts + - build-glibc + build-x86_64: + executor: builder-x86 + steps: + - checkout + - setup_remote_docker + - build-glibc upload-main: executor: artefact-uploader steps: @@ -49,7 +67,8 @@ jobs: workflows: build-compile-upload: jobs: - - build + - build-aarch64 + - build-x86_64 - upload-main: filters: branches: @@ -57,4 +76,5 @@ workflows: tags: ignore: /.*/ requires: - - build + - build-aarch64 + - build-x86_64