Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: add .circleci/config.yml #7239

Merged
merged 2 commits into from Jun 11, 2021
Merged

CI: add .circleci/config.yml #7239

merged 2 commits into from Jun 11, 2021

Conversation

@bagder
Copy link
Member

@bagder bagder commented Jun 11, 2021

First take

@bagder bagder added the CI label Jun 11, 2021
@bagder

This comment has been hidden.

@zmarkan
Copy link

@zmarkan zmarkan commented Jun 11, 2021

We got the basic build working here - https://app.circleci.com/pipelines/github/zmarkan/curl/5/workflows/19000ec0-2f9e-4122-bc5a-b4143420213e/jobs/5

Still tweaking and optimising some things but in a nutshell this is a start ;)

@gmemstr
Copy link

@gmemstr gmemstr commented Jun 11, 2021

Snagging the config from the POC for better visibility - as Zan said, still some tweaks and optimisations to apply.

# Use the latest 2.1 version of CircleCI pipeline process engine. See: https://circleci.com/docs/2.0/configuration-reference
version: 2.1

commands:
  configure:
    steps:
      - run: 
          command: |
            ./buildconf
            ./configure --enable-warnings --enable-werror --with-openssl

  build:
    steps:
      - run: make

  test:
    steps:
      - run: make test-nonflaky

executors:
  ubuntu:
    machine:
      image: ubuntu-2004:202010-01

jobs:
  basic:
    executor: ubuntu
    steps:
      - checkout
      - configure
      - build
      - test

workflows:
  all:
    jobs:
      - basic
@bagder
Copy link
Member Author

@bagder bagder commented Jun 11, 2021

Nice, thanks! This is great start.

And if we want to limit these to only run for PRs and for the master branch?

bagder added a commit that referenced this pull request Jun 11, 2021
Assisted-by: Gabriel Simmer

Closes #7239
@bagder bagder force-pushed the circleci-project-setup branch from 842f122 to afeda77 Jun 11, 2021
@bagder

This comment has been hidden.

bagder added a commit that referenced this pull request Jun 11, 2021
Assisted-by: Gabriel Simmer

Closes #7239
@bagder bagder force-pushed the circleci-project-setup branch from b5fe06c to 174b8a4 Jun 11, 2021
@zmarkan
Copy link

@zmarkan zmarkan commented Jun 11, 2021

@bagder these checks indicators should show up for every single job and workflow combination - more jobs being run -> more checks

@bagder
Copy link
Member Author

@bagder bagder commented Jun 11, 2021

thanks, I figured it out just after I asked. Sorry for the noise.

@zmarkan
Copy link

@zmarkan zmarkan commented Jun 11, 2021

We also did some more hackery and managed to split the tests for a bit of a performance improvement - https://app.circleci.com/pipelines/github/zmarkan/curl/13/workflows/1d972043-a268-4101-9ed3-c30bb1c04b6d/jobs/19/steps

Relevant config:

# Use the latest 2.1 version of CircleCI pipeline process engine. See: https://circleci.com/docs/2.0/configuration-reference
version: 2.1

commands:
  configure:
    steps:
      - run: 
          command: |
            ./buildconf
            ./configure --enable-warnings --enable-werror --with-openssl

  build:
    steps:
      - run: make

  test:
    steps:
      - run: 
          command: TFLAGS="-l" make test-nonflaky  | pcregrep -o1 "test (\d+)\.\.\." | circleci tests split > tests.txt
          name: split tests
      - run:
          command: TFLAGS="$(cat tests.txt | tr '\n' ' ')" make test-nonflaky
    
executors:
  ubuntu:
    machine:
      image: ubuntu-2004:202010-01
  docker:
    docker:
      - image: cimg/base:2021.05

jobs:
  basic:
    executor: ubuntu
    steps:
      - checkout
      - configure
      - build
      - test
    parallelism: 5

  basic-docker:
    executor: docker
    steps:
      - checkout
      - run: 
          command: | 
            sudo apt-get update
            sudo apt-get install libtool autoconf automake pkg-config libssl-dev pcregrep
          name: install prereqs
      - configure
      - build
      - test
    parallelism: 5



workflows:
  all:
    jobs:
      - basic
      - basic-docker

(note that basic job doesn't run atm because of missing pcregrep but the basic-docker does.

bagder added 2 commits Jun 11, 2021
Assisted-by: Gabriel Simmer

Closes #7239
We do it on circle CI instead
@bagder bagder force-pushed the circleci-project-setup branch 2 times, most recently from 0a86f2f to 53c26de Jun 11, 2021
@bagder bagder marked this pull request as ready for review Jun 11, 2021
@bagder
Copy link
Member Author

@bagder bagder commented Jun 11, 2021

Let's merge this simple two-job config as a start. It only removes a single job from travis, but we should be able to add more. Assistance in doing this will be appreciated!

@jerdog
Copy link

@jerdog jerdog commented Jun 11, 2021

Sounds good @bagder - feel free to join our Discord at https://discord.gg/eppPRyBn which is a good place to interact directly with some of our engineers and DevRel team.

@bagder bagder closed this in 45c5d9d Jun 11, 2021
@bagder bagder merged commit 53c26de into master Jun 11, 2021
49 of 55 checks passed
49 of 55 checks passed
@github-actions
fuzzing
Details
@github-actions
hyper
Details
@github-actions
codeql
Details
@github-actions
normal
Details
@github-actions
debug
Details
@github-actions
libssh2
Details
@github-actions
c-ares
Details
@github-actions
HTTP only
Details
@github-actions
SecureTransport http2
Details
@github-actions
OpenSSL http2
Details
@github-actions
LibreSSL http2
Details
@github-actions
torture torture
Details
@github-actions
torture-ftp
Details
@github-actions
macOS 10.15
Details
@github-actions
cmake clang OpenSSL
Details
@github-actions
cmake clang LibreSSL
Details
@github-actions
cmake clang libssh2
Details
@github-actions
cmake gcc-9 OpenSSL
Details
@github-actions
cmake gcc-9 LibreSSL
Details
@github-actions
cmake gcc-9 libssh2
Details
@appveyor
continuous-integration/appveyor/pr AppVeyor build failed
Details
@azure-pipelines
curl.curl Build #20210611.29 had test failures
Details
@azure-pipelines
curl.curl (windows windows msys1_mingw64_debug) windows windows msys1_mingw64_debug failed
Details
@azure-pipelines
curl.curl (windows windows msys1_mingw_debug) windows windows msys1_mingw_debug failed
Details
@azure-pipelines
curl.curl (windows windows msys1_mingw_debug_schannel) windows windows msys1_mingw_debug_schannel failed
Details
@github-code-scanning
CodeQL 1 analysis not found
Details
@lgtm-com
LGTM analysis: C/C++ No code changes detected
Details
@lgtm-com
LGTM analysis: Python No code changes detected
Details
@cirrus-ci
FreeBSD 11.4 Task Summary
Details
@cirrus-ci
FreeBSD 12.2 Task Summary
Details
@cirrus-ci
Windows 32-bit shared/release Schannel/SSPI/WinIDN/libssh2 Task Summary
Details
@cirrus-ci
Windows 32-bit static/release Schannel/SSPI/WinIDN/libssh2 Task Summary
Details
@cirrus-ci
Windows 64-bit shared/release Schannel/SSPI/WinIDN/libssh2 Task Summary
Details
@cirrus-ci
Windows 64-bit static/release Schannel/SSPI/WinIDN/libssh2 Task Summary
Details
@circleci-checks
arm-openssl Workflow: arm-openssl
Details
@mback2k
buildbot/curl_winssl_cross_x64 Build done.
Details
@mback2k
buildbot/curl_winssl_cross_x64_dbg Build done.
Details
@mback2k
buildbot/curl_winssl_cross_x86 Build done.
Details
@mback2k
buildbot/curl_winssl_cross_x86_dbg Build done.
Details
@azure-pipelines
curl.curl (linux ubuntu default) linux ubuntu default succeeded
Details
@azure-pipelines
curl.curl (linux ubuntu disable_http_smtp_imap) linux ubuntu disable_http_smtp_imap succeeded
Details
@azure-pipelines
curl.curl (linux ubuntu disable_ipv6) linux ubuntu disable_ipv6 succeeded
Details
@azure-pipelines
curl.curl (linux ubuntu disable_thredres) linux ubuntu disable_thredres succeeded
Details
@azure-pipelines
curl.curl (linux ubuntu https_only) linux ubuntu https_only succeeded
Details
@azure-pipelines
curl.curl (linux ubuntu torture) linux ubuntu torture succeeded
Details
@azure-pipelines
curl.curl (windows windows msys1_mingw32_debug) windows windows msys1_mingw32_debug succeeded
Details
@azure-pipelines
curl.curl (windows windows msys1_mingw32_debug_schannel) windows windows msys1_mingw32_debug_schannel succeeded
Details
@azure-pipelines
curl.curl (windows windows msys1_mingw64_debug_schannel) windows windows msys1_mingw64_debug_schannel succeeded
Details
@azure-pipelines
curl.curl (windows windows msys2_mingw32_debug_openssl) windows windows msys2_mingw32_debug_openssl succeeded
Details
@azure-pipelines
curl.curl (windows windows msys2_mingw32_debug_schannel) windows windows msys2_mingw32_debug_schannel succeeded
Details
@azure-pipelines
curl.curl (windows windows msys2_mingw64_debug_openssl) windows windows msys2_mingw64_debug_openssl succeeded
Details
@azure-pipelines
curl.curl (windows windows msys2_mingw64_debug_schannel) windows windows msys2_mingw64_debug_schannel succeeded
Details
@deepcode-ci-bot
deepcode-ci-bot Well done, no issues found!
Details
@sonatype-lift
musedev Complete (3 min, 6/6 checks) no new bugs found
Details
@circleci-checks
x86-openssl Workflow: x86-openssl
Details
@bagder bagder deleted the circleci-project-setup branch Jun 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

4 participants