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

Add CircleCI config and GitHub workflow to redirect to CircleCI #90

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Use the latest 2.1 version of CircleCI pipeline process engine.
# See: https://circleci.com/docs/2.0/configuration-reference
version: 2.1

# Orbs are reusable packages of CircleCI configuration that you may share across projects, enabling you to create encapsulated, parameterized commands, jobs, and executors that can be used across multiple projects.
# See: https://circleci.com/docs/2.0/orb-intro/
orbs:
# The python orb contains a set of prepackaged CircleCI configuration you can use repeatedly in your configuration files
# Orb commands and jobs help you with common scripting around a language/tool
# so you dont have to copy and paste it everywhere.
# See the orb documentation here: https://circleci.com/developer/orbs/orb/circleci/python
python: circleci/[email protected]

# Define a job to be invoked later in a workflow.
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
jobs:
build-docs: # This is the name of the job, feel free to change it to better match what you're trying to do!
# These next lines defines a Docker executors: https://circleci.com/docs/2.0/executor-types/
# You can specify an image from Dockerhub or use one of the convenience images from CircleCI's Developer Hub
# A list of available CircleCI Docker convenience images are available here: https://circleci.com/developer/images/image/cimg/python
# The executor is the environment in which the steps below will be executed - below will use a python 3.10.2 container
# Change the version below to your required version of python
docker:
- image: cimg/python:3.10.13
# Checkout the code as the first step. This is a dedicated CircleCI step.
# The python orb's install-packages step will install the dependencies from a Pipfile via Pipenv by default.
# Here we're making sure we use just use the system-wide pip. By default it uses the project root's requirements.txt.
# Then run your tests!
# CircleCI will report the results back to your VCS provider.
steps:
- checkout
- run:
name: Build docs
command: |
poetry install
python -m pip install sphinx pydata-sphinx-theme
cd docs; make html
Comment on lines +35 to +37
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this can be simplified with poetry. Poetry has the concept of dependency groups meaning we can install the doc dependencies by running poetry install --with doc. I think we will be required to change the makefile to work with poetry if we do go down that route though.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am trying but even with the right dependencies in the docs group of the pyproject.toml file, when I do "poetry install --with docs" nothing is installed. To be fair none of the other groups work for me either and "poetry install --with test" or "poetry install --with bench" also don't do anything. I'm really not familiar with poetry so I wonder if I'm missing a step somewhere...

Copy link
Member

@Kai-Striega Kai-Striega Dec 9, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The argument should be docs, not doc (note the extra s) - that's on me, I got it wrong in the above comment. It might be that you have installed all the dependencies already in your local environment, which is why it's not installing anything else.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I figured the doc vs docs thing looking at

[tool.poetry.group.docs.dependencies]

Still, it doesn't work:

➜  numpy-financial git:(setup-circle) poetry install --with docs
Installing dependencies from lock file

No dependencies to install or update

Installing the current project: numpy-financial (1.1.0.dev0)
➜  numpy-financial git:(setup-circle) cd doc
➜  doc git:(setup-circle) make html
/bin/sh: linha 1: sphinx-build: comando não encontrado  # "command not found"
make: *** [Makefile:20: html] Error 127

- store_artifacts:
path: docs/_build/html/

# Invoke jobs via workflows
# See: https://circleci.com/docs/2.0/configuration-reference/#workflows
workflows:
docs: # This is the name of the workflow, feel free to change it to better match your workflow.
# Inside the workflow, you define the jobs you want to run.
jobs:
- build-docs
19 changes: 19 additions & 0 deletions .github/workflows/circleci_redirect.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: CircleCI artifact redirector

on: [status]
jobs:
circleci_artifacts_redirector_job:
runs-on: ubuntu-latest
if: "github.event.context == 'ci/circleci: build-docs'"
permissions:
statuses: write
name: Run CircleCI artifacts redirector
steps:
- name: GitHub Action step
uses: larsoner/circleci-artifacts-redirector-action@master
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
api-token: ${{ secrets.CIRCLECI_TOKEN }}
artifact-path: 0/docs/_build/html/index.html
circleci-jobs: build-docs
job-title: Check the rendered docs here!