From 1527a4b81178a4851fc10a2d721f22da1947a6ca Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 12:33:14 -0800 Subject: [PATCH 01/49] squashed commit --- .github/ISSUE_TEMPLATE/1-bug.yml | 77 +++++++++++++++ .github/ISSUE_TEMPLATE/2-feature.yml | 41 ++++++++ .github/ISSUE_TEMPLATE/3-documentation.yml | 40 ++++++++ .github/ISSUE_TEMPLATE/4-question.yml | 40 ++++++++ .github/ISSUE_TEMPLATE/bug_report.md | 33 ------- .github/ISSUE_TEMPLATE/config.yml | 1 + .github/ISSUE_TEMPLATE/feature_request.md | 19 ---- .../issue--question---advice-needed.md | 13 --- .vscode/extensions.json | 3 +- .vscode/settings.json | 90 ++++++++++------- README.md | 84 ++++------------ SUPPORT.md | 15 --- docs/Makefile | 20 ---- docs/changelog.md | 25 +++++ docs/code_reference.md | 2 + docs/contribution.md | 65 ++++++++++++ docs/example.md | 29 ++++++ docs/help.md | 21 ++++ docs/index.md | 34 +++++++ docs/make.bat | 35 ------- docs/overrides/main.html | 5 + docs/source/conf.py | 50 ---------- docs/source/index.rst | 16 --- docs/source/modules.rst | 7 -- docs/source/requirements.txt | 4 - docs/stylesheets/extra.css | 94 ++++++++++++++++++ mkdocs.yml | 98 +++++++++++++++++++ pyproject.toml | 42 ++++---- readthedocs.yml | 23 ----- requirements-dev.txt | 5 + src/fabric_cicd/__init__.py | 38 +++---- src/fabric_cicd/fabric_workspace.py | 94 +++++++++--------- src/fabric_cicd/publish.py | 82 +++++++++------- 33 files changed, 785 insertions(+), 460 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/1-bug.yml create mode 100644 .github/ISSUE_TEMPLATE/2-feature.yml create mode 100644 .github/ISSUE_TEMPLATE/3-documentation.yml create mode 100644 .github/ISSUE_TEMPLATE/4-question.yml delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 .github/ISSUE_TEMPLATE/issue--question---advice-needed.md delete mode 100644 SUPPORT.md delete mode 100644 docs/Makefile create mode 100644 docs/changelog.md create mode 100644 docs/code_reference.md create mode 100644 docs/contribution.md create mode 100644 docs/example.md create mode 100644 docs/help.md create mode 100644 docs/index.md delete mode 100644 docs/make.bat create mode 100644 docs/overrides/main.html delete mode 100644 docs/source/conf.py delete mode 100644 docs/source/index.rst delete mode 100644 docs/source/modules.rst delete mode 100644 docs/source/requirements.txt create mode 100644 docs/stylesheets/extra.css create mode 100644 mkdocs.yml delete mode 100644 readthedocs.yml diff --git a/.github/ISSUE_TEMPLATE/1-bug.yml b/.github/ISSUE_TEMPLATE/1-bug.yml new file mode 100644 index 00000000..b55cbbab --- /dev/null +++ b/.github/ISSUE_TEMPLATE/1-bug.yml @@ -0,0 +1,77 @@ +name: Bug Report +description: Report a bug +title: "[Bug]: " +labels: ["bug"] +body: + - type: markdown + attributes: + value: Thanks for reporting a bug! + + - type: input + id: steps-to-reproduce + attributes: + label: Steps to Reproduce + description: What are the steps to reproduce this bug? + placeholder: | + 1. In this environment... + 1. With this config... + 1. Run '...' + 1. See error... + validations: + required: true + + - type: textarea + id: what-happens + attributes: + label: What happens? + description: Describe what happens when you follow the steps. + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: What were you expecting to happen? + description: Describe what you expected to happen instead. + validations: + required: true + + - type: textarea + id: logs + attributes: + label: Any logs, error output, etc? + description: If it is long, please paste to https://gist.github.com/ and insert the link here. Ensure to strip any non public information. + validations: + required: false + + - type: input + id: operating-system + attributes: + label: Operating System + description: What operating system are you using? + validations: + required: true + + - type: input + id: library-version + attributes: + label: Library Version + description: What version of the library are you using? + validations: + required: true + + - type: input + id: authentication-type + attributes: + label: Authentication Type + description: What authentication type were you using? + validations: + required: true + + - type: textarea + id: additional-context + attributes: + label: Additional context + description: Add any other context or screenshots here. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/2-feature.yml b/.github/ISSUE_TEMPLATE/2-feature.yml new file mode 100644 index 00000000..b1690a36 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/2-feature.yml @@ -0,0 +1,41 @@ +name: Feature Request +description: Request a feature +title: "[Feature]: " +labels: ["enhancement"] +body: + - type: markdown + attributes: + value: Thanks for suggesting a feature! + + - type: textarea + id: problem-description + attributes: + label: What is the problem? + description: Describe what the gap is. + placeholder: "I'm always frustrated when [...]" + validations: + required: true + + - type: textarea + id: solution-description + attributes: + label: What is the solution? + description: Describe the solution you'd like + validations: + required: true + + - type: textarea + id: alternatives-considered + attributes: + label: What alternatives have you considered? + description: Describe alternatives you've considered + validations: + required: false + + - type: textarea + id: additional-context + attributes: + label: Additional context + description: Add any other context or screenshots here. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/3-documentation.yml b/.github/ISSUE_TEMPLATE/3-documentation.yml new file mode 100644 index 00000000..e539ea03 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/3-documentation.yml @@ -0,0 +1,40 @@ +name: Documentation Feedback +description: Provide documentation feedback +title: "[Documentation]: " +labels: ["documentation"] +body: + - type: markdown + attributes: + value: Thanks for providing documentation feedback! + + - type: input + id: documentation-location + attributes: + label: Location + description: What part of the documentation does this feedback pertain to? Provide a URL where applicable. + validations: + required: true + + - type: textarea + id: feedback + attributes: + label: Feedback + description: What is your feedback? + validations: + required: true + + - type: textarea + id: improvements + attributes: + label: Suggested Improvements + description: What improvements would you suggest? + validations: + required: true + + - type: textarea + id: additional-context + attributes: + label: Additional context + description: Add any other context or screenshots here. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/4-question.yml b/.github/ISSUE_TEMPLATE/4-question.yml new file mode 100644 index 00000000..c0470299 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/4-question.yml @@ -0,0 +1,40 @@ +name: Question +description: Ask a question +title: "[Question]: " +labels: ["question"] +body: + - type: markdown + attributes: + value: Thanks for asking a question! + + - type: textarea + id: trying-to-achieve + attributes: + label: What are you trying to achieve? + description: Provide a brief background description of the problem you're trying to solve. Include information about the item type, and the type of deployment you're trying to achieve. + validations: + required: true + + - type: textarea + id: tried-so-far + attributes: + label: What have you tried so far? + description: If applicable, describe the steps you have tried so far. For scripting-related questions, show the code that you have written. + validations: + required: true + + - type: textarea + id: specific-question + attributes: + label: What specific question do you have? + description: Clearly state the question you need help with. + validations: + required: true + + - type: textarea + id: additional-context + attributes: + label: Additional context + description: Add any other context or screenshots here. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 75801b9c..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: "" -labels: bug -assignees: "" ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: - -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - -- OS: [e.g. iOS] -- Browser [e.g. chrome, safari] -- Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..3ba13e0c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index d883b8f2..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: "" -labels: enhancement -assignees: "" ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md b/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md deleted file mode 100644 index 257e3ea5..00000000 --- a/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: "Issue: Question / Advice needed" -about: Ask a question about this project -title: "" -labels: question -assignees: "" ---- - -**What are you trying to achieve?** -Provide a brief background description of the problem you're trying to solve. Include information about the item type, and the type of deployment you're trying to achieve - -**What have you tried so far?** -If applicable, describe the steps you have tried so far. For scripting-related questions, show the code that you have written. diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 986fc30d..513bb3b9 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -3,6 +3,7 @@ "ms-python.python", "esbenp.prettier-vscode", "ms-vscode.powershell", - "charliermarsh.ruff" + "charliermarsh.ruff", + "tamasfe.even-better-toml" ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index ae037874..808f58d9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,38 +1,56 @@ { - "editor": { - "tabSize": 4, - "trimAutoWhitespace": false, - "defaultFormatter": "esbenp.prettier-vscode", - "editor.formatOnSave": true - }, - "diffEditor": { - "ignoreTrimWhitespace": false - }, - "files": { - "trimTrailingWhitespace": false, - "trimTrailingWhitespaceInRegexAndStrings": false, - "insertFinalNewline": true, - "autoSave": "off" - }, - "[python]": { - "editor.defaultFormatter": "charliermarsh.ruff", - "editor.codeActionsOnSave": { - "source.fixAll": "explicit" - }, - "editor.formatOnSave": true - }, - "[powershell]": { - "editor.defaultFormatter": "ms-vscode.powershell", - "editor.formatOnSave": true - }, - "git": { - "branchPrefix": "users/", - "enableSmartCommit": true, - "confirmSync": false, - "autofetch": true - }, - "ruff": { - "organizeImports": true, - "fixAll": true - } + "editor": { + "tabSize": 4, + "trimAutoWhitespace": false + }, + "diffEditor": { + "ignoreTrimWhitespace": false + }, + "files": { + "trimTrailingWhitespace": false, + "trimTrailingWhitespaceInRegexAndStrings": false, + "insertFinalNewline": true, + "autoSave": "off" + }, + "[python]": { + "editor.defaultFormatter": "charliermarsh.ruff", + "editor.codeActionsOnSave": { + "source.fixAll": "explicit" + }, + "editor.formatOnSave": true + }, + "[powershell]": { + "editor.defaultFormatter": "ms-vscode.powershell", + "editor.formatOnSave": true + }, + "[toml]": { + "editor.defaultFormatter": "tamasfe.even-better-toml", + "editor.formatOnSave": true + }, + "[json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + }, + "[markdown]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + }, + "[yaml]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + }, + "git": { + "branchPrefix": "users/", + "enableSmartCommit": true, + "confirmSync": false, + "autofetch": true + }, + "ruff": { + "organizeImports": true, + "fixAll": true + }, + "prettier": { + "tabWidth": 4, + "useTabs": false + } } diff --git a/README.md b/README.md index 5fd57985..bead5af4 100644 --- a/README.md +++ b/README.md @@ -1,86 +1,38 @@ # Fabric CICD -[](https://badge.fury.io/py/fabric-cicd) +[](https://www.python.org/) +[](https://test.pypi.org/project/fabric-cicd/) [](https://readthedocs.org/projects/fabric-cicd/) [](https://github.com/charliermarsh/ruff) -[](https://pepy.tech/project/fabric-cicd) + +<!-- [](https://badge.fury.io/py/fabric-cicd) --> +<!-- [](https://pepy.tech/project/fabric-cicd) --> --- -## [Read the documentation on ReadTheDocs!](https://fabric-cicd.readthedocs.io/en/stable/) +## Project Overview Fabric CICD is a Python library designed for use with [Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/) workspaces. This library is intended to support code first CICD integrations to seamlessly integrate Source Controlled workspaces into a deployment framework. The goal of this library is to support the CICD developers that don't want to dig into the weeds of interacting directly with the Microsoft Fabric APIs. -If you encounter any issues, please [raise a bug](https://github.com/microsoft/fabric-cicd/issues/new?assignees=&labels=&projects=&template=bug_report.md&title=). - -If you have ideas for new features/functions, please [request a feature](https://github.com/microsoft/fabric-cicd/issues/new?assignees=&labels=&projects=&template=feature_request.md&title=). - -## Featured Scenarios - -- Deploying Items hosted in a repository -- 100% deployment, does not consider diffs -- Deploys into the tenant of the executing identity +## Documentation -### In Scope Item Types +All documentation is hosted on our [fabric-cicd](https://microsoft.github.io/fabric-cicd/) GitHub Pages -- Notebooks -- Data Pipelines -- Environments +- [Getting Started](https://microsoft.github.io/fabric-cicd/) +- [Examples](https://microsoft.github.io/fabric-cicd/example/) +- [Code Reference](https://microsoft.github.io/fabric-cicd/code_reference/) +- [Contribution](https://microsoft.github.io/fabric-cicd/contribution/) +- [Changelog](https://microsoft.github.io/fabric-cicd/changelog/) +- [Help](https://microsoft.github.io/fabric-cicd/help) -### Limitations +## Installation -- Notebooks Limitations - - Attached lakehouses are not changed during the deployment - - Attached resources are not included in the deployment -- Data Pipelines - - Connections are not changed during the deployment -- Environments - - Custom and Public Libraries are not included in the deployment -- Folders - - Sub folders are not included in the deployment +To install fabric-cicd, run: -## How to Use - -```shell +```bash pip install fabric-cicd ``` -```python -from fabric_cicd import FabricWorkspace, publish_all_items, unpublish_all_orphan_items - -# Initialize the FabricWorkspace object with the required parameters -target_workspace = FabricWorkspace( - workspace_id='', - environment='', - repository_directory=r'', - item_type_in_scope=[] -) - -# Publish all items defined in item_type_in_scope -publish_all_items(target_workspace) - -# Unpublish all items defined in item_type_in_scope not found in repository -unpublish_all_orphan_items(target_workspace) -``` - -## Contributing - -This project welcomes contributions and suggestions. Most contributions require you to agree to a -Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us -the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com. - -When you submit a pull request, a CLA bot will automatically determine whether you need to provide -a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions -provided by the bot. You will only need to do this once across all repos using our CLA. - -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or -contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - ## Trademarks -This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft -trademarks or logos is subject to and must follow -[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). -Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. -Any use of third-party trademarks or logos are subject to those third-party's policies. +This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies. diff --git a/SUPPORT.md b/SUPPORT.md deleted file mode 100644 index 0ea9eb43..00000000 --- a/SUPPORT.md +++ /dev/null @@ -1,15 +0,0 @@ -# Support - -## How to file issues and get help - -This project uses GitHub Issues to track bugs and feature requests. Please search the existing -issues before filing new issues to avoid duplicates. For new issues, file your bug or -feature request as a new Issue. - -For help and questions about using this project, please **REPO MAINTAINER: INSERT INSTRUCTIONS HERE -FOR HOW TO ENGAGE REPO OWNERS OR COMMUNITY FOR HELP. COULD BE A STACK OVERFLOW TAG OR OTHER -CHANNEL. WHERE WILL YOU HELP PEOPLE?**. - -## Microsoft Support Policy - -Support for this **PROJECT or PRODUCT** is limited to the resources listed above. diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index 92dd33a1..00000000 --- a/docs/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = source -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 00000000..5a38621b --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,25 @@ +# Changelog + +The following contains all major, minor, and patch version release notes. Additionally, we will document high-level plans for the library as they evolve. The planned features list is not exhaustive but highlights the most important items. + +## Planned Features + +- Support for additional item types + - Dataflow G2 + - Semantic Model + - Report +- Support for Workspace Folders +- Enhancements for existing item types + - Notebook - Support for attached resources + - Data Pipeline - Support for all connections w/in activities + - Environment - Support for attached public libraries - Support for attached custom libraries + +## Version 0.1.0 + +<span class="md-h2-subheader">Release Date: 2025-01-15</span> + +- Initial public preview release +- Supports Notebook, Pipeline, and Environment deployments +- Supports User and System Identity authentication +- Released to PyPi +- Onboarded to ReadTheDocs diff --git a/docs/code_reference.md b/docs/code_reference.md new file mode 100644 index 00000000..5f65fe78 --- /dev/null +++ b/docs/code_reference.md @@ -0,0 +1,2 @@ +# Code Reference +::: fabric_cicd diff --git a/docs/contribution.md b/docs/contribution.md new file mode 100644 index 00000000..977a2c75 --- /dev/null +++ b/docs/contribution.md @@ -0,0 +1,65 @@ +# Contribution + +This project welcomes contributions and suggestions. Most contributions require you to agree to a +Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us +the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com. + +When you submit a pull request, a CLA bot will automatically determine whether you need to provide +a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions +provided by the bot. You will only need to do this once across all repos using our CLA. + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). + +## Prerequisites + +Before you begin, ensure you have the following installed: + +- [Python](https://www.python.org/downloads/) (version 3.10 or higher) +- [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell) +- [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-windows) or [Az.Accounts PowerShell module](https://www.powershellgallery.com/packages/Az.Accounts/2.2.3) +- [Visual Studio Code (VS Code)](https://code.visualstudio.com/) + +## Initial Configuration + +1. Clone the repository: + + ```sh + git clone https://github.com/microsoft/fabric-cicd.git /your/target/directory + cd /your/target/directory + ``` + +1. Create a virtual environment: + + ```sh + python -m venv venv + ``` + +1. Activate the virtual environment: + + - On Windows: + + ```sh + .\venv\Scripts\activate + ``` + + - On macOS and Linux: + + ```sh + source venv/bin/activate + ``` + +1. Install the dependencies: + + ```sh + pip install -r requirements.txt + ``` + +1. Open the project in VS Code and ensure the virtual environment is selected: + + - Open the Command Palette (Ctrl+Shift+P) and select `Python: Select Interpreter`. + - Choose the interpreter from the venv directory. + +1. Ensure all VS Code extensions are installed: + + - Open the Command Palette (Ctrl+Shift+P) and select `Extensions: Show Recommended Extensions`. + - Install all extensions recommended for the workspace diff --git a/docs/example.md b/docs/example.md new file mode 100644 index 00000000..ccbe576a --- /dev/null +++ b/docs/example.md @@ -0,0 +1,29 @@ +## Authenticate with Default Credentials + +```python +{% include "../sample/auth_default_credential.py" %} +``` + +## Authenticate with SPN Credentials + +```python +{% include "../sample/auth_spn_secret.py" %} +``` + +## Setting Variables within Azure DevOps Release + +```python +{% include "../sample/set_vars_from_ado_build.py" %} +``` + +## Setting Variables within Local GIT Branch + +```python +{% include "../sample/set_vars_from_git_branch.py" %} +``` + +## Using Optional Parameters + +```python +{% include "../sample/optional_parameters.py" %} +``` diff --git a/docs/help.md b/docs/help.md new file mode 100644 index 00000000..629db606 --- /dev/null +++ b/docs/help.md @@ -0,0 +1,21 @@ +# Help + +## Support + +This project uses [GitHub Issues](https://github.com/microsoft/fabric-cicd/issues) to track bugs, feature requests, and questions. Please search the existing issues before filing new issues to avoid duplicates. For new issues, file your [bug](https://github.com/microsoft/fabric-cicd/issues/new?template=1-bug.yml.md), [feature request](https://github.com/microsoft/fabric-cicd/issues/new?template=2-feature.yml), or [question](https://github.com/microsoft/fabric-cicd/issues/new?template=4-question.yml) as a new Issue. + +### Microsoft Support Policy + +Support for this **PROJECT or PRODUCT** is limited to the resources listed above. + +## Security + +{% + include-markdown "../SECURITY.md" + start="## Security" + heading-offset=1 +%} + +## License + +{% include "../LICENSE" %} diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..e05e7183 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,34 @@ +# Getting Started + +Fabric CICD is a Python library designed for use with [Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/) workspaces. This library is intended to support code-first CICD integrations to seamlessly integrate Source Controlled workspaces into a deployment framework. The goal of this library is to support the CICD developers that don't want to dig into the weeds of interacting directly with the Microsoft Fabric APIs. + +## Base Expectations + +- Full deployment every time, does not consider commit diffs +- Deploys into the tenant of the executing identity + +## Supported Item Types + +The following Item Types are supported by the library: + +- Notebooks +- Data Pipelines +- Environments + +## Authentication + +- You can optionally provide your own credential object that aligns with the `TokenCredential` class. For more details, see the [TokenCredential](https://learn.microsoft.com/en-us/dotnet/api/azure.core.tokencredential). +- If you do not provide a `token_credential` parameter, the library will use the Azure SDK's `DefaultAzureCredential` for authentication. + + - Refer to the [Azure SDK](https://learn.microsoft.com/en-us/azure/developer/python/sdk/authentication/credential-chains?tabs=dac#defaultazurecredential-overview) documentation for the order in which credential types are attempted. + - For local development with a User Principal Name (UPN), install either the [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-windows) or the [Az.Accounts](https://www.powershellgallery.com/packages/Az.Accounts/2.2.3) PowerShell module. + + - Note: When no credential is provided, the `DefaultAzureCredential` may select an unexpected identity. For example, if you log in to the Azure CLI with a Service Principal Name (SPN) but log in to Az.Accounts with a UPN, the `DefaultAzureCredential` will prioritize the CLI authentication. + +## Installation + +To install fabric-cicd, run: + +```bash +pip install fabric-cicd +``` diff --git a/docs/make.bat b/docs/make.bat deleted file mode 100644 index b344c6a0..00000000 --- a/docs/make.bat +++ /dev/null @@ -1,35 +0,0 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=source -set BUILDDIR=_build - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.https://www.sphinx-doc.org/ - exit /b 1 -) - -if "%1" == "" goto help - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd diff --git a/docs/overrides/main.html b/docs/overrides/main.html new file mode 100644 index 00000000..700c6ec7 --- /dev/null +++ b/docs/overrides/main.html @@ -0,0 +1,5 @@ +{% extends "base.html" %} + +{% block announce %} + <p style="text-align: center;">⚠️ This library is in limited Public Preview - features and functionality may change.</p> +{% endblock %} diff --git a/docs/source/conf.py b/docs/source/conf.py deleted file mode 100644 index 975ee875..00000000 --- a/docs/source/conf.py +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. - -import sys -from pathlib import Path - -sys.path.insert(0, Path("../../src/").resolve()) - -# Configuration file for the Sphinx documentation builder. -# -# For the full list of built-in configuration values, see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -# -- Project information ----------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information - -project = "fabric-cicd" -copyright = "Microsoft Corporation" # noqa A001 -author = "Microsoft Corporation" -release = "0.1.3" - -# -- General configuration --------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration - -extensions = [ - "sphinx.ext.autodoc", - "sphinx.ext.napoleon", - "sphinx.ext.intersphinx", -] - -intersphinx_mapping = { - "python": ("http://docs.python.org/", None), - "numpy": ("https://numpy.org/doc/stable/", None), - "pandas": ("http://pandas.pydata.org/pandas-docs/dev", None), -} - -templates_path = ["_templates"] -exclude_patterns = [] - - -# -- Options for HTML output ------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output - -html_theme = "sphinx_rtd_theme" -html_static_path = ["_static"] - -# List of packages we don't want to install in the environment -autodoc_mock_imports = [] - -napoleon_numpy_docstring = True diff --git a/docs/source/index.rst b/docs/source/index.rst deleted file mode 100644 index 8d86e253..00000000 --- a/docs/source/index.rst +++ /dev/null @@ -1,16 +0,0 @@ -fabric-cicd documentation - -============================================== - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - modules - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/source/modules.rst b/docs/source/modules.rst deleted file mode 100644 index 227a8e13..00000000 --- a/docs/source/modules.rst +++ /dev/null @@ -1,7 +0,0 @@ -fabric_cicd -========== - -.. toctree:: - :maxdepth: 4 - - fabric_cicd diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt deleted file mode 100644 index 544a3d52..00000000 --- a/docs/source/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -sphinx_rtd_theme -requests -pyyaml -azure-identity diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css new file mode 100644 index 00000000..651aa469 --- /dev/null +++ b/docs/stylesheets/extra.css @@ -0,0 +1,94 @@ +[data-md-color-scheme="fabric"] { + --md-primary-fg-color: #117865; + --md-primary-fg-color--light: #e3f7ef; + --md-primary-fg-color--dark: #012826; + --md-typeset-a-color: #012826; + --md-accent-fg-color: #012826; + --md-default-fg-color--light: #333333; + --md-typeset-a-color: #117865; + --md-primary-bg-color: #ffffff; +} + +/* Remove opaqueness to top nav */ +.md-tabs__link, +.md-tabs__link:hover, +.md-tabs__item--active { + opacity: 1; +} + +/* Add line under active top nav item */ +.md-tabs__item--active { + opacity: 1; + box-shadow: inset 0 -6px 0 0 var(--md-primary-fg-color), + inset 0 -8px 0 0 var(--md-primary-bg-color); +} + +/* Add underline to links */ +.md-content a { + text-decoration: underline; + color: var(--md-primary-fg-color); +} + +/* Keep underline on hover */ +.md-content a:hover { + text-decoration: underline; + color: var(--md-primary-fg-color--dark); +} + +/*Code inside of tables are of white background*/ +.md-typeset table code { + background-color: var(--md-primary-bg-color); +} + +/*Code inside of tables are colored when hovered*/ +.md-typeset table tr:hover code { + background-color: inherit; +} + +/*Default header color*/ +.md-content h1, +.md-content h2, +.md-content h3 { + color: var(--md-accent-fg-color); + font-weight: 500; /* Slight bold */ + margin: 0 0 1em; +} + +/*Add a border line to all H2*/ +.md-content h2 { + padding-top: 1em; + border-top: 1px solid #ddd; +} + +/*Custom class for subheaders under h2*/ +.md-h2-subheader { + font-size: smaller; + color: inherit; +} + +/*Remove all margins from the <p> element containing .md-h2-subheader*/ +p:has(.md-h2-subheader) { + margin: 0; +} + +/*Remove bottom margin from h2 so it's closer to subheader*/ +.md-content h2:has(+ p .md-h2-subheader) { + margin-bottom: 0; +} + +/* Override default font size for typeset */ +.md-typeset { + font-size: .64rem; +} + +.md-typeset h1 { + font-size: 1.25rem; +} + +.md-typeset h2 { + font-size: 1rem; +} + +.md-nav--lifted .md-nav__item { + font-size: .7rem; +} diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..51f6e368 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,98 @@ +site_name: fabric_cicd + +repo_name: microsoft/fabric-cicd +repo_url: https://github.com/microsoft/fabric-cicd + +nav: + - Getting Started: index.md + - Code Reference: code_reference.md + - Examples: example.md + - Contribution: contribution.md + - Changelog: changelog.md + - Help: help.md + +theme: + name: material + custom_dir: docs/overrides + icon: + logo: fontawesome/solid/code + font: + text: Roboto + code: Roboto Mono + + features: + - content.code.copy + - content.tooltips + - navigation.expand + - navigation.indexes + - navigation.sections + - navigation.tabs + - navigation.tabs.sticky + - navigation.top + - search.highlight + - search.suggest + - toc.follow + - toc.integrate + language: en + palette: + scheme: fabric + +extra_css: + - stylesheets/extra.css + +plugins: + - search: + separator: '[\s\u200b\-_,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])' + - minify: + minify_html: true + - include-markdown + - mkdocstrings: + handlers: + python: + paths: ["src"] + options: + docstring_style: numpy + docstring_options: + ignore_init_summary: true + summary: + modules: false + functions: true + classes: true + show_source: false + show_root_full_path: false + separate_signature: true + show_signature_annotations: true + signature_crossrefs: true + filters: ["!^_", "^__init__$"] + merge_init_into_class: true + show_symbol_type_heading: true + show_symbol_type_toc: true + +extra: + social: + - icon: fontawesome/brands/github + link: https://github.com/microsoft/fabric-cicd + generator: false + analytics: + feedback: + title: Was this page helpful? + ratings: + - icon: material/thumb-up-outline + name: This page was helpful + data: 1 + note: Thanks for your feedback! + - icon: material/thumb-down-outline + name: This page could be improved + data: 0 + note: >- + Thanks for your feedback! Help us improve this page by using our + <a href="https://github.com/microsoft/fabric-cicd/issues/new?template=bug_report.md&documentation-location={url}" target="_blank" rel="noopener">feedback form</a>. + +markdown_extensions: + - abbr + - md_in_html + - toc: + permalink: true + - admonition + +copyright: Copyright © Microsoft Corporation diff --git a/pyproject.toml b/pyproject.toml index df47c2de..9ed655cb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,9 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "fabric-cicd" -authors = [ - { name = "Microsoft Corporation" } -] +authors = [{ name = "Microsoft Corporation" }] dynamic = ["version", "dependencies", "optional-dependencies"] description = "Microsoft Fabric CI/CD" @@ -14,14 +12,14 @@ readme = "README.md" requires-python = ">=3.9" classifiers = [ "Development Status :: 3 - Alpha", - "Programming Language :: Python :: 3" + "Programming Language :: Python :: 3", ] license = { text = "MIT License" } [tool.setuptools.dynamic] -version = {file = "VERSION"} -dependencies = {file = "requirements.txt"} -optional-dependencies.dev = {file = "requirements-dev.txt"} +version = { file = "VERSION" } +dependencies = { file = "requirements.txt" } +optional-dependencies.dev = { file = "requirements-dev.txt" } [tool.setuptools.packages.find] where = ["src"] @@ -36,21 +34,21 @@ exclude = ["sample/*"] [tool.ruff.lint] # https://docs.astral.sh/ruff/rules/ select = [ - "A", # flake8-builtins + "A", # flake8-builtins "ARG", # flake8-unused-arguments - "B", # flake8-bugbear - "D", # pydocstyle - "EM", # flake8-errmsg - "F", # Pyflakes - "I", # isort + "B", # flake8-bugbear + "D", # pydocstyle + "EM", # flake8-errmsg + "F", # Pyflakes + "I", # isort "INP", # flake8-no-pep420 - "N", # pep8-naming - "PT", # flake8-pytest-style + "N", # pep8-naming + "PT", # flake8-pytest-style "PTH", # flake8-use-pathlib "RET", # flake8-return "RUF", # Ruff-specific rules "SIM", # flake8-simplify - "UP", # pyupgrade + "UP", # pyupgrade ] ignore = [ "D203", # No blank lines between a section header and its content @@ -62,10 +60,12 @@ ignore = [ ] [tool.ruff.lint.per-file-ignores] -"{devtools,docs}/*" = [ - "D100", # Missing docstring in public module - "D104", # Missing docstring in public package - "INP001" # Missing __init__ in package +"{devtools,.readthedocs}/*" = [ + "D100", # Missing docstring in public module + "D104", # Missing docstring in public package + "INP001", # Missing __init__ in package ] [tool.ruff.format] -preview=true +preview = true +docstring-code-format = false +docstring-code-line-length = "dynamic" diff --git a/readthedocs.yml b/readthedocs.yml deleted file mode 100644 index 6c63e285..00000000 --- a/readthedocs.yml +++ /dev/null @@ -1,23 +0,0 @@ -# Read the Docs configuration file for Sphinx projects -# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details - -# Required -version: 2 - -# Set the OS, Python version and other tools you might need -build: - os: ubuntu-22.04 - tools: - python: "3.10" - jobs: - pre_build: - - sphinx-apidoc -f -o docs/source src/fabric_cicd/ - -# Build documentation in the "docs/" directory with Sphinx -sphinx: - configuration: docs/source/conf.py - -# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html -python: - install: - - requirements: docs/source/requirements.txt diff --git a/requirements-dev.txt b/requirements-dev.txt index b622cb39..9bbc5584 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -2,3 +2,8 @@ ruff gitpython build twine +mkdocs-material +mkdocstring-python +include-markdown +mkdocs-minify-plugin +mike diff --git a/src/fabric_cicd/__init__.py b/src/fabric_cicd/__init__.py index 04d86d73..e44a2636 100644 --- a/src/fabric_cicd/__init__.py +++ b/src/fabric_cicd/__init__.py @@ -15,25 +15,25 @@ def change_log_level(level: str = "DEBUG") -> None: """ - Sets the log level for all loggers within the fabric_cicd package. Currently only supports DEBUG. - - This function configures the logging level for all loggers in the fabric_cicd package to DEBUG, - which is useful for development and debugging purposes. - - :param level: The logging level to set (e.g., DEBUG). - :type level: str - - Examples: - Basic usage: - >>> from fabric_cicd import FabricWorkspace, publish_all_items, unpublish_all_orphan_items, change_log_level - >>> change_log_level("DEBUG") - >>> workspace = FabricWorkspace( - ... workspace_id="your-workspace-id", - ... repository_directory="/path/to/repo", - ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"] - ... ) - >>> publish_all_items(workspace) - >>> unpublish_orphaned_items(workspace) + Sets the log level for all loggers within the fabric_cicd package. Currently only supports DEBUG. + + Parameters + ---------- + level : str + The logging level to set (e.g., DEBUG). + + Examples + -------- + Basic usage + >>> from fabric_cicd import FabricWorkspace, publish_all_items, unpublish_all_orphan_items, change_log_level + >>> change_log_level("DEBUG") + >>> workspace = FabricWorkspace( + ... workspace_id="your-workspace-id", + ... repository_directory="/path/to/repo", + ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"] + ... ) + >>> publish_all_items(workspace) + >>> unpublish_orphaned_items(workspace) """ if level.upper() == "DEBUG": diff --git a/src/fabric_cicd/fabric_workspace.py b/src/fabric_cicd/fabric_workspace.py index 501927c1..4731bc78 100644 --- a/src/fabric_cicd/fabric_workspace.py +++ b/src/fabric_cicd/fabric_workspace.py @@ -34,50 +34,56 @@ def __init__( """ Initializes the FabricWorkspace instance. - :param workspace_id: The ID of the workspace to interact with. - :type workspace_id: str - :param repository_directory: Directory path where repository items are located. - :type repository_directory: str - :param item_type_in_scope: Item types that should be deployed for given workspace. - :type item_type_in_scope: list - :param base_api_url: Base URL for the Fabric API. Defaults to the Fabric API endpoint. - :type base_api_url: str, optional - :param environment: The environment to be used for parameterization. - :type environment: str, optional - :param token_credential: The token credential to use for API requests. - :type token_credential: str, optional - - Examples: - Basic usage: - >>> workspace = FabricWorkspace( - ... workspace_id="your-workspace-id", - ... repository_directory="/path/to/repo", - ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"] - ... ) - - With optional parameters: - >>> workspace = FabricWorkspace( - ... workspace_id="your-workspace-id", - ... repository_directory="/your/path/to/repo", - ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"], - ... base_api_url="https://orgapi.fabric.microsoft.com", - ... environment="your-target-environment" - ... ) - - With token credential: - >>> from azure.identity import ClientSecretCredential - >>> client_id = "your-client-id" - >>> client_secret = "your-client-secret" - >>> tenant_id = "your-tenant-id" - >>> token_credential = ClientSecretCredential( - ... client_id=client_id, client_secret=client_secret, tenant_id=tenant_id - ... ) - >>> workspace = FabricWorkspace( - ... workspace_id="your-workspace-id", - ... repository_directory="/your/path/to/repo", - ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"], - ... token_credential=token_credential - ... ) + Parameters + ---------- + workspace_id : str + The ID of the workspace to interact with. + repository_directory : str + Directory path where repository items are located. + item_type_in_scope : list + Item types that should be deployed for given workspace. + base_api_url : str, optional + Base URL for the Fabric API. Defaults to the Fabric API endpoint. + environment : str, optional + The environment to be used for parameterization. + token_credential : str, optional + The token credential to use for API requests. + + Examples + -------- + Basic usage + >>> from fabric_cicd import FabricWorkspace + >>> workspace = FabricWorkspace( + ... workspace_id="your-workspace-id", + ... repository_directory="/path/to/repo", + ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"] + ... ) + + With optional parameters + >>> from fabric_cicd import FabricWorkspace + >>> workspace = FabricWorkspace( + ... workspace_id="your-workspace-id", + ... repository_directory="/your/path/to/repo", + ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"], + ... base_api_url="https://orgapi.fabric.microsoft.com", + ... environment="your-target-environment" + ... ) + + With token credential + >>> from fabric_cicd import FabricWorkspace + >>> from azure.identity import ClientSecretCredential + >>> client_id = "your-client-id" + >>> client_secret = "your-client-secret" + >>> tenant_id = "your-tenant-id" + >>> token_credential = ClientSecretCredential( + ... client_id=client_id, client_secret=client_secret, tenant_id=tenant_id + ... ) + >>> workspace = FabricWorkspace( + ... workspace_id="your-workspace-id", + ... repository_directory="/your/path/to/repo", + ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"], + ... token_credential=token_credential + ... ) """ from fabric_cicd._common._validate_input import ( diff --git a/src/fabric_cicd/publish.py b/src/fabric_cicd/publish.py index 934790a1..fd478140 100644 --- a/src/fabric_cicd/publish.py +++ b/src/fabric_cicd/publish.py @@ -25,18 +25,21 @@ def publish_all_items(fabric_workspace_obj: FabricWorkspace) -> None: """ Publishes all items defined in the `item_type_in_scope` list of the given FabricWorkspace object. - :param fabric_workspace_obj: The FabricWorkspace object containing the items to be published. - :type fabric_workspace_obj: FabricWorkspace - - Examples: - Basic usage: - >>> from fabric_cicd import FabricWorkspace, publish_all_items - >>> workspace = FabricWorkspace( - ... workspace_id="your-workspace-id", - ... repository_directory="/path/to/repo", - ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"] - ... ) - >>> publish_all_items(workspace) + Parameters + ---------- + fabric_workspace_obj : FabricWorkspace + The FabricWorkspace object containing the items to be published. + + Examples + -------- + Basic usage + >>> from fabric_cicd import FabricWorkspace, publish_all_items + >>> workspace = FabricWorkspace( + ... workspace_id="your-workspace-id", + ... repository_directory="/path/to/repo", + ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"] + ... ) + >>> publish_all_items(workspace) """ fabric_workspace_obj = validate_fabric_workspace_obj(fabric_workspace_obj) @@ -56,32 +59,35 @@ def unpublish_all_orphan_items(fabric_workspace_obj: FabricWorkspace, item_name_ """ Unpublishes all orphaned items not present in the repository except for those matching the exclude regex. - :param fabric_workspace_obj: The FabricWorkspace object containing the items to be published. - :type fabric_workspace_obj: FabricWorkspace - :param item_name_exclude_regex: Regex pattern to exclude specific items from being unpublished. - :type item_name_exclude_regex: str - - Examples: - Basic usage: - >>> from fabric_cicd import FabricWorkspace, publish_all_items, unpublish_all_orphan_items - >>> workspace = FabricWorkspace( - ... workspace_id="your-workspace-id", - ... repository_directory="/path/to/repo", - ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"] - ... ) - >>> publish_all_items(workspace) - >>> unpublish_orphaned_items(workspace) - - With regex name exclusion: - >>> from fabric_cicd import FabricWorkspace, publish_all_items, unpublish_all_orphan_items - >>> workspace = FabricWorkspace( - ... workspace_id="your-workspace-id", - ... repository_directory="/path/to/repo", - ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"] - ... ) - >>> publish_all_items(workspace) - >>> exclude_regex = ".*_do_not_delete" - >>> unpublish_orphaned_items(workspace, exclude_regex) + Parameters + ---------- + fabric_workspace_obj : FabricWorkspace + The FabricWorkspace object containing the items to be published. + item_name_exclude_regex : str + Regex pattern to exclude specific items from being unpublished. Default is '^$' which will exclude nothing. + + Examples + -------- + Basic usage + >>> from fabric_cicd import FabricWorkspace, publish_all_items, unpublish_all_orphan_items + >>> workspace = FabricWorkspace( + ... workspace_id="your-workspace-id", + ... repository_directory="/path/to/repo", + ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"] + ... ) + >>> publish_all_items(workspace) + >>> unpublish_orphaned_items(workspace) + + With regex name exclusion + >>> from fabric_cicd import FabricWorkspace, publish_all_items, unpublish_all_orphan_items + >>> workspace = FabricWorkspace( + ... workspace_id="your-workspace-id", + ... repository_directory="/path/to/repo", + ... item_type_in_scope=["Environment", "Notebook", "DataPipeline"] + ... ) + >>> publish_all_items(workspace) + >>> exclude_regex = ".*_do_not_delete" + >>> unpublish_orphaned_items(workspace, exclude_regex) """ fabric_workspace_obj = validate_fabric_workspace_obj(fabric_workspace_obj) From 358d3745068bf7a53f5195b5a9d2555609218734 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 15:00:50 -0800 Subject: [PATCH 02/49] commit --- VERSION | 2 +- mkdocs.yml | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/VERSION b/VERSION index c946ee61..8acdd82b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.6 +0.0.1 diff --git a/mkdocs.yml b/mkdocs.yml index 51f6e368..09ef996e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,6 +2,9 @@ site_name: fabric_cicd repo_name: microsoft/fabric-cicd repo_url: https://github.com/microsoft/fabric-cicd +site_url: https://microsoft.github.io/fabric-cicd/ +remote_branch: gh-pages +remote_name: origin nav: - Getting Started: index.md @@ -69,6 +72,10 @@ plugins: show_symbol_type_toc: true extra: + version: + provider: mike + default: latest + alias: true social: - icon: fontawesome/brands/github link: https://github.com/microsoft/fabric-cicd From cd65dcfe4e206603e130288a72d369891d687647 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 15:24:17 -0800 Subject: [PATCH 03/49] commit --- .github/workflows/gh-pages.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/gh-pages.yml diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml new file mode 100644 index 00000000..e93ad485 --- /dev/null +++ b/.github/workflows/gh-pages.yml @@ -0,0 +1,29 @@ +name: Github Pages +on: + push: + branches: + - users/JacobKnightley/documentation +permissions: + contents: write +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Configure Git Credentials + run: | + git config user.name github-actions[bot] + git config user.email github-actions[bot]@users.noreply.github.com + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + - uses: actions/cache@v4 + with: + key: mkdocs-material-${{ env.cache_id }} + path: .cache + restore-keys: | + mkdocs-material- + - run: pip install -r requirements.txt + - run: pip install -r requirements-dev.txt + - run: mkdocs gh-deploy --force From 733df0d1c738a15cc99baa7e5faa7af31e536be7 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 15:25:14 -0800 Subject: [PATCH 04/49] commit --- requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 9bbc5584..d78f3ebd 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -3,7 +3,7 @@ gitpython build twine mkdocs-material -mkdocstring-python +mkdocstrings-python include-markdown mkdocs-minify-plugin mike From 14d3158ba6749c72265010352c99e5e219a4fbd2 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 15:26:07 -0800 Subject: [PATCH 05/49] commit --- requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index d78f3ebd..38401c89 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -4,6 +4,6 @@ build twine mkdocs-material mkdocstrings-python -include-markdown +markdown-include mkdocs-minify-plugin mike From a4b1c741c68e7296938f91b9d1dddeaf6f17c10e Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 15:27:36 -0800 Subject: [PATCH 06/49] commit --- requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 38401c89..c646e579 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -4,6 +4,6 @@ build twine mkdocs-material mkdocstrings-python -markdown-include +mkdocs-include-markdown-plugin mkdocs-minify-plugin mike From 71ed257430799ace97317aaf829ee112031f5d1b Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 15:30:22 -0800 Subject: [PATCH 07/49] commit --- .github/workflows/gh-pages.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index e93ad485..f77d24f2 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -26,4 +26,5 @@ jobs: mkdocs-material- - run: pip install -r requirements.txt - run: pip install -r requirements-dev.txt - - run: mkdocs gh-deploy --force + - run: mike delete --all + - run: mike deploy 0.0.1 latest --update-aliases From e2e847e0189335f01438ed1093d8d2630a3b04fd Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 15:34:37 -0800 Subject: [PATCH 08/49] commit --- .github/workflows/gh-pages.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index f77d24f2..eda1779e 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -26,5 +26,4 @@ jobs: mkdocs-material- - run: pip install -r requirements.txt - run: pip install -r requirements-dev.txt - - run: mike delete --all - run: mike deploy 0.0.1 latest --update-aliases From 48ace9d52504f0d29eeadfb1b4e499594fb91ce2 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 15:43:59 -0800 Subject: [PATCH 09/49] commit --- .github/workflows/gh-pages.yml | 5 ++--- requirements-dev.txt | 5 ----- requirements-doc.txt | 5 +++++ 3 files changed, 7 insertions(+), 8 deletions(-) create mode 100644 requirements-doc.txt diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index eda1779e..9cffe7d0 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -24,6 +24,5 @@ jobs: path: .cache restore-keys: | mkdocs-material- - - run: pip install -r requirements.txt - - run: pip install -r requirements-dev.txt - - run: mike deploy 0.0.1 latest --update-aliases + - run: pip install -r requirements-doc.txt + - run: mike deploy --push 0.0.1 latest --update-aliases diff --git a/requirements-dev.txt b/requirements-dev.txt index c646e579..b622cb39 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -2,8 +2,3 @@ ruff gitpython build twine -mkdocs-material -mkdocstrings-python -mkdocs-include-markdown-plugin -mkdocs-minify-plugin -mike diff --git a/requirements-doc.txt b/requirements-doc.txt new file mode 100644 index 00000000..6c964d18 --- /dev/null +++ b/requirements-doc.txt @@ -0,0 +1,5 @@ +mkdocs-material +mkdocstrings-python +mkdocs-include-markdown-plugin +mkdocs-minify-plugin +mike From ce3c78d1e015d08680f703a3e5f712fde6249ff2 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 15:49:02 -0800 Subject: [PATCH 10/49] commit --- .github/workflows/gh-pages.yml | 48 ++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 9cffe7d0..710f6303 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -1,28 +1,42 @@ +# Workflow inspiration and adaptation came from Andruino-Cli +# https://github.com/arduino/arduino-cli/blob/master/.github/workflows/deploy-cobra-mkdocs-versioned-poetry.yml + name: Github Pages on: push: branches: - users/JacobKnightley/documentation -permissions: - contents: write + + create: + jobs: - deploy: + publish: runs-on: ubuntu-latest + steps: - - uses: actions/checkout@v4 - - name: Configure Git Credentials + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install Python + uses: actions/setup-python@v5 + with: + python-version: "3.9" + + - name: Install Requirements + run: | + python -m pip install --upgrade pip + python -m pip install -r requirements-docs.txt + + - name: Deploy run: | + # Publishing implies creating a git commit on the production branch, + # We will need to create a user for this at some point git config user.name github-actions[bot] git config user.email github-actions[bot]@users.noreply.github.com - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - - uses: actions/cache@v4 - with: - key: mkdocs-material-${{ env.cache_id }} - path: .cache - restore-keys: | - mkdocs-material- - - run: pip install -r requirements-doc.txt - - run: mike deploy --push 0.0.1 latest --update-aliases + git fetch --no-tags --prune --depth=1 origin +refs/heads/production:refs/remotes/origin/production + mike deploy \ + --update-aliases \ + --branch gh-pages \ + --push \ + 0.0.1 \ + latest From 419340c0c5f18c7a4ef9df57d410783ea2f4dd33 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 15:49:58 -0800 Subject: [PATCH 11/49] commit --- .github/workflows/gh-pages.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 710f6303..2d108e4d 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -1,6 +1,5 @@ # Workflow inspiration and adaptation came from Andruino-Cli -# https://github.com/arduino/arduino-cli/blob/master/.github/workflows/deploy-cobra-mkdocs-versioned-poetry.yml - +# https://github.com/squidfunk/mkdocs-material/discussions/6546 name: Github Pages on: push: @@ -25,7 +24,7 @@ jobs: - name: Install Requirements run: | python -m pip install --upgrade pip - python -m pip install -r requirements-docs.txt + python -m pip install -r requirements-doc.txt - name: Deploy run: | From 7cb78b25e892dc2bdfa855fd14adf10a5c59116f Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 15:51:01 -0800 Subject: [PATCH 12/49] commit --- .github/workflows/gh-pages.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 2d108e4d..acbf276f 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -28,11 +28,9 @@ jobs: - name: Deploy run: | - # Publishing implies creating a git commit on the production branch, - # We will need to create a user for this at some point git config user.name github-actions[bot] git config user.email github-actions[bot]@users.noreply.github.com - git fetch --no-tags --prune --depth=1 origin +refs/heads/production:refs/remotes/origin/production + git fetch --no-tags --prune --depth=1 origin +refs/heads/gh-pages:refs/remotes/origin/gh-pages mike deploy \ --update-aliases \ --branch gh-pages \ From b9b46d54cc52f3a1be33e2229d0a43c4c95acb75 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 15:59:16 -0800 Subject: [PATCH 13/49] commit --- .github/workflows/gh-pages.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index acbf276f..a40f3c73 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -27,6 +27,8 @@ jobs: python -m pip install -r requirements-doc.txt - name: Deploy + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git config user.name github-actions[bot] git config user.email github-actions[bot]@users.noreply.github.com From 26ff3d89579eea33530e20723f2bcac61573f432 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 16:20:12 -0800 Subject: [PATCH 14/49] commit --- .github/workflows/gh-pages.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index a40f3c73..19cb5073 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -6,8 +6,10 @@ on: branches: - users/JacobKnightley/documentation - create: - +permissions: + contents: write + actions: write + jobs: publish: runs-on: ubuntu-latest From c954be21b5476a4581cd3b05631e0de6208631fc Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 16:27:39 -0800 Subject: [PATCH 15/49] commit --- .github/workflows/gh-pages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 19cb5073..0429d34e 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -35,6 +35,7 @@ jobs: git config user.name github-actions[bot] git config user.email github-actions[bot]@users.noreply.github.com git fetch --no-tags --prune --depth=1 origin +refs/heads/gh-pages:refs/remotes/origin/gh-pages + mike set-default latest mike deploy \ --update-aliases \ --branch gh-pages \ From 9fb81e32d727569e01d45b668b0f3da6e29dca7f Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 16:31:13 -0800 Subject: [PATCH 16/49] commit --- .github/workflows/gh-pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 0429d34e..68014db6 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -35,10 +35,10 @@ jobs: git config user.name github-actions[bot] git config user.email github-actions[bot]@users.noreply.github.com git fetch --no-tags --prune --depth=1 origin +refs/heads/gh-pages:refs/remotes/origin/gh-pages - mike set-default latest mike deploy \ --update-aliases \ --branch gh-pages \ --push \ 0.0.1 \ latest + mike set-default latest From 1c5bf49a94a40b72a9af7776e6c6295385112a69 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Fri, 10 Jan 2025 16:33:01 -0800 Subject: [PATCH 17/49] commit --- .github/workflows/gh-pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 68014db6..44ba01c6 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -41,4 +41,4 @@ jobs: --push \ 0.0.1 \ latest - mike set-default latest + mike set-default --push latest From 6ddac86f1581c42aba4feec749b429b82e849a7d Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 10:07:20 -0800 Subject: [PATCH 18/49] commit --- mkdocs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/mkdocs.yml b/mkdocs.yml index 09ef996e..2a790730 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -101,5 +101,6 @@ markdown_extensions: - toc: permalink: true - admonition + - pymdownx.highlight copyright: Copyright © Microsoft Corporation From 0f03ab2ddac42f49a587d5a784a6695a79b92fc1 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 13:33:59 -0800 Subject: [PATCH 19/49] commit --- docs/contribution.md | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/docs/contribution.md b/docs/contribution.md index 977a2c75..1360c1c0 100644 --- a/docs/contribution.md +++ b/docs/contribution.md @@ -21,20 +21,29 @@ Before you begin, ensure you have the following installed: ## Initial Configuration -1. Clone the repository: +1. **Fork the Repository on GitHub**: + + - Go to the repository (fabric-cicd)[https://github.com/microsoft/fabric-cicd] on GitHub. + - In the top right corner, click on the **Fork** button. + - This will create a copy of the repository in your own GitHub account. + +2. **Clone Your Forked Repository**: + + - Once the fork is complete, go to your GitHub account and open the forked repository. + - Click on the **Code** button, then copy the URL (HTTPS or SSH). + - Open your terminal and run the following command to clone your forked repository: ```sh - git clone https://github.com/microsoft/fabric-cicd.git /your/target/directory - cd /your/target/directory + git clone <URL-of-your-forked-repository> ``` -1. Create a virtual environment: +3. **Create a Virtual Environment**: ```sh python -m venv venv ``` -1. Activate the virtual environment: +4. **Activate the Virtual Environment**: - On Windows: @@ -48,18 +57,18 @@ Before you begin, ensure you have the following installed: source venv/bin/activate ``` -1. Install the dependencies: +5. **Install the Dependencies**: ```sh pip install -r requirements.txt ``` -1. Open the project in VS Code and ensure the virtual environment is selected: +6. **Open the Project in VS Code and Ensure the Virtual Environment is Selected**: - Open the Command Palette (Ctrl+Shift+P) and select `Python: Select Interpreter`. - - Choose the interpreter from the venv directory. + - Choose the interpreter from the `venv` directory. -1. Ensure all VS Code extensions are installed: +7. **Ensure All VS Code Extensions Are Installed**: - Open the Command Palette (Ctrl+Shift+P) and select `Extensions: Show Recommended Extensions`. - - Install all extensions recommended for the workspace + - Install all extensions recommended for the workspace. From 053448f482475682977a71ada4577b4c3dc04f4f Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 13:49:12 -0800 Subject: [PATCH 20/49] commit --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bead5af4..4cc8e376 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,9 @@ All documentation is hosted on our [fabric-cicd](https://microsoft.github.io/fab - [Code Reference](https://microsoft.github.io/fabric-cicd/code_reference/) - [Contribution](https://microsoft.github.io/fabric-cicd/contribution/) - [Changelog](https://microsoft.github.io/fabric-cicd/changelog/) -- [Help](https://microsoft.github.io/fabric-cicd/help) +- [Support](https://microsoft.github.io/fabric-cicd/help/#support) +- [Security](https://microsoft.github.io/fabric-cicd/help/#security) +- [License](https://microsoft.github.io/fabric-cicd/help/#license) ## Installation From dda432b76ea9886651b29bfe79cab4bbb93bb6b1 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 14:07:22 -0800 Subject: [PATCH 21/49] commit --- docs/contribution.md | 2 +- mkdocs.yml | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/contribution.md b/docs/contribution.md index 1360c1c0..e6156e27 100644 --- a/docs/contribution.md +++ b/docs/contribution.md @@ -23,7 +23,7 @@ Before you begin, ensure you have the following installed: 1. **Fork the Repository on GitHub**: - - Go to the repository (fabric-cicd)[https://github.com/microsoft/fabric-cicd] on GitHub. + - Go to the repository [fabric-cicd](https://github.com/microsoft/fabric-cicd) on GitHub. - In the top right corner, click on the **Fork** button. - This will create a copy of the repository in your own GitHub account. diff --git a/mkdocs.yml b/mkdocs.yml index 2a790730..872fcd68 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -101,6 +101,12 @@ markdown_extensions: - toc: permalink: true - admonition - - pymdownx.highlight + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.superfences copyright: Copyright © Microsoft Corporation From eeb86071faa2ffd1831b085480b9987669db6a76 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 14:14:37 -0800 Subject: [PATCH 22/49] commit --- docs/.config/assets/favicon.ico | Bin 0 -> 15086 bytes docs/{ => .config}/overrides/main.html | 0 docs/{ => .config}/stylesheets/extra.css | 0 mkdocs.yml | 5 +++-- 4 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 docs/.config/assets/favicon.ico rename docs/{ => .config}/overrides/main.html (100%) rename docs/{ => .config}/stylesheets/extra.css (100%) diff --git a/docs/.config/assets/favicon.ico b/docs/.config/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8d343b76382cc0bc2d82950c56fec566bccede15 GIT binary patch literal 15086 zcmeHO&2Jk;6kh~?KndlHkq9Kfp%REQh(oyo;?9Mn9B66kpr&wW)x>cHQiDK5NVpd& z5%oe9j>(~j(gYAG^i<``PMe4T2ghmb1l8U!Keuo7c0P7zy&I>7UCEl++4u2#Z{NI` zof$jML(ap_p+k-+GtNY}<GkcJP9}5z{($2wi?#!z#PcJMI8IIw^avWk;=C<>Xg6K& zoP2aQ{iQxgV<3%zGzRuJ28KU-rT*c^FVs8nJ<Km(tMA^wrml|P?IauePIkG3oytza z53KT)A3xktakNmH_2LJ%T$#PlQTV_9cEE?fS}Qj?DTa=o$u#5`I(p{G2hN7~PCwD; zA3Esje7jXG`)s&)`Gj>0^`AQELbgtB5^a4$kL@n4{NlyP`LAAAbX}P(c+c@J7E3=_ z;Xhw^!?PPY`i8m^oznw*Y4tZx2e7UGwV+_je{tA{A9OapTmO5}$5*<2y^)j+I_$tT zUz}0!1FL-H$6wRZal00TESWC}8%)@D{;9gzT(1&8z|=|}g)GQS(gqXu?VT+ncHmd@ z=!Vu#?tj#?xn~<YLUs~1n6ck+PmJ^g;?d>NW0rX|o9k(8@7#%Hg9&?WdsAS4CJ;OM zbW4m~+>cT6D0IZJ0sV&SM!j0AxC6saTVaO{Y99SLv=5W*D50yiT~XdcQDEbAa(%4u zmXZgAFWuv3p9<uY<zVh6`#`1%yNAwdZ9}nPtnjAM7h@MR_^W02{fPL1O}@@q<WX)D z@WXeqoFM$*m&Ymai`Z`r40lI*2N-*~?(ZYaM-e}WS<a6-Vw>BjtE2y}tp2X_0rcMi z%l-?w=(AkEh=owy;6wj~F3#J;F2;Xg(_xm|Og11dgym0?g}JAUAuNwVwl?=fz)t$j zHUy7f#E%l+0NjR)m$SychcOsqBd3q*cdi?ClMVOg55eOY`0)+K@hq0~dDJw2Kpfk~ zjEtS`1;4wpruK*V;x(f$i5GJ>jvsY;#!KD&EeY(T<DLySe6gULKNCGKW&FB4D$k#j z#7<aXL-E$Ho<GC#F!3Q~xDC2I`Y9WCmW7VEF+;j_<+0P5I==OE&vb3*vmC!EkM^H> zd{4h0b=Yj$kTW@c)Wh<qjofz9z~|hCpgh`6T(-Ip^Blh^kJ`#>Hyv^g$B%luF~rrU z;_tG~0daLF!9V@umv_kqthFa0v)wX2`sBs>$mg$iB=&auD%H2YdvU4%Q~&=TV!(7R zC~a?#2XIa+BYrQ7UwTd}%{l*-oO5&OhvqlK;OKK!>yAm=O>^aq&GmhmZ<2nLN!w;4 zZ)WZr@0%?<(%W_)U@ew>Ff%u?r}}Blzj%Ajr-$?hy@S%~^`@V~_I6A@C*7or)0HcK zcs}6myiR;5ZT1H^udG|{YlVp;UJMj2z3cN0$pKF*7-Ze1b$yZ@)DN+KOmry2{GjSK z?`v|oWV5csz6Yl@VVIoGdp-qy*xnvupX9<$oo;G7ezx0(VRC9zd1v2EpY!C|=;!@# zcJ7iQk94DiErb>2<WycuFYix<?agwTTpzD1{ug^T{JC70F__{He26{5Aj`o$_Yvq2 zUphLuO~x=N&LGG%xJTb3{c=B4`k&Y{(aA8it*rU?6-;!bzg$`O$)|Rdu*bw7)J_<L z-?Z@pUVd>|LTA%Ax7KbLc{zQnb;Lel2<wNf>ImW+%=LQu!}?*6oH)<Oew1<Kw8~rA z{L}M6t1{y7eK7ibGr!$jy1J*a76)U>n|=f8Vn8ep?CXVf3h@`S=2}H3u2bN@6*|A# zwjpQ6Ia3dQT(<f^NAq0N>1-|Mhdk3fm3aABC+o+VNu3PHM7un%Lz}#J2^zHX?<dkN zpShwlRon*Rm+hdr6~_-gT*QxOxQ9M!<0Z{YcpK>H3<c^@=RDxS#brjR(_U&69+~z* K-b0I<r2Yl!tQw90 literal 0 HcmV?d00001 diff --git a/docs/overrides/main.html b/docs/.config/overrides/main.html similarity index 100% rename from docs/overrides/main.html rename to docs/.config/overrides/main.html diff --git a/docs/stylesheets/extra.css b/docs/.config/stylesheets/extra.css similarity index 100% rename from docs/stylesheets/extra.css rename to docs/.config/stylesheets/extra.css diff --git a/mkdocs.yml b/mkdocs.yml index 872fcd68..475274c7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -16,9 +16,10 @@ nav: theme: name: material - custom_dir: docs/overrides + custom_dir: docs/.config/overrides icon: logo: fontawesome/solid/code + favicon: .config/assets/favicon.ico font: text: Roboto code: Roboto Mono @@ -41,7 +42,7 @@ theme: scheme: fabric extra_css: - - stylesheets/extra.css + - .config/stylesheets/extra.css plugins: - search: From 9b803476a18b7383707623dae20a16de87a59271 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 14:17:42 -0800 Subject: [PATCH 23/49] commit --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 475274c7..bcf5e1a8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -19,7 +19,7 @@ theme: custom_dir: docs/.config/overrides icon: logo: fontawesome/solid/code - favicon: .config/assets/favicon.ico + favicon: docs/.config/assets/favicon.ico font: text: Roboto code: Roboto Mono From 63aaf56ebbdb85a753124d2f290712321752d75f Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 14:24:19 -0800 Subject: [PATCH 24/49] commit --- docs/{.config => config}/assets/favicon.ico | Bin docs/{.config => config}/overrides/main.html | 0 docs/{.config => config}/stylesheets/extra.css | 0 mkdocs.yml | 6 +++--- 4 files changed, 3 insertions(+), 3 deletions(-) rename docs/{.config => config}/assets/favicon.ico (100%) rename docs/{.config => config}/overrides/main.html (100%) rename docs/{.config => config}/stylesheets/extra.css (100%) diff --git a/docs/.config/assets/favicon.ico b/docs/config/assets/favicon.ico similarity index 100% rename from docs/.config/assets/favicon.ico rename to docs/config/assets/favicon.ico diff --git a/docs/.config/overrides/main.html b/docs/config/overrides/main.html similarity index 100% rename from docs/.config/overrides/main.html rename to docs/config/overrides/main.html diff --git a/docs/.config/stylesheets/extra.css b/docs/config/stylesheets/extra.css similarity index 100% rename from docs/.config/stylesheets/extra.css rename to docs/config/stylesheets/extra.css diff --git a/mkdocs.yml b/mkdocs.yml index bcf5e1a8..fdb61546 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -16,10 +16,10 @@ nav: theme: name: material - custom_dir: docs/.config/overrides + custom_dir: docs/config/overrides icon: logo: fontawesome/solid/code - favicon: docs/.config/assets/favicon.ico + favicon: config/assets/favicon.ico font: text: Roboto code: Roboto Mono @@ -42,7 +42,7 @@ theme: scheme: fabric extra_css: - - .config/stylesheets/extra.css + - config/stylesheets/extra.css plugins: - search: From 4379f27568c7429ccc9abefbc3dec276874b59ce Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 14:27:22 -0800 Subject: [PATCH 25/49] commit --- mkdocs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/mkdocs.yml b/mkdocs.yml index fdb61546..6c0d740c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -37,6 +37,7 @@ theme: - search.suggest - toc.follow - toc.integrate + - announce.dismiss language: en palette: scheme: fabric From 7bc78204898987698be5475d96873d60903f34a5 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 16:11:55 -0800 Subject: [PATCH 26/49] commit --- docs/example.md | 6 ++++ docs/index.md | 53 +++++++++++++++++++++++++++++++--- sample/workspace/parameter.yml | 18 ++++++------ 3 files changed, 64 insertions(+), 13 deletions(-) diff --git a/docs/example.md b/docs/example.md index ccbe576a..dc636a62 100644 --- a/docs/example.md +++ b/docs/example.md @@ -27,3 +27,9 @@ ```python {% include "../sample/optional_parameters.py" %} ``` + +## Parameter.yml File + +```yaml +{ % include "../sample/workspace/parameter.yml" % } +``` diff --git a/docs/index.md b/docs/index.md index e05e7183..a3521e6d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,15 +1,15 @@ # Getting Started -Fabric CICD is a Python library designed for use with [Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/) workspaces. This library is intended to support code-first CICD integrations to seamlessly integrate Source Controlled workspaces into a deployment framework. The goal of this library is to support the CICD developers that don't want to dig into the weeds of interacting directly with the Microsoft Fabric APIs. +Fabric CICD is a Python library designed for use with [Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/) workspaces. This library supports code-first CICD integrations to seamlessly integrate Source Controlled workspaces into a deployment framework. The goal is to assist CICD developers who prefer not to interact directly with the Microsoft Fabric APIs. ## Base Expectations -- Full deployment every time, does not consider commit diffs +- Full deployment every time, without considering commit diffs - Deploys into the tenant of the executing identity ## Supported Item Types -The following Item Types are supported by the library: +The following item types are supported by the library: - Notebooks - Data Pipelines @@ -17,7 +17,7 @@ The following Item Types are supported by the library: ## Authentication -- You can optionally provide your own credential object that aligns with the `TokenCredential` class. For more details, see the [TokenCredential](https://learn.microsoft.com/en-us/dotnet/api/azure.core.tokencredential). +- You can optionally provide your own credential object that aligns with the `TokenCredential` class. For more details, see the [TokenCredential](https://learn.microsoft.com/en-us/dotnet/api/azure.core.tokencredential) documentation. - If you do not provide a `token_credential` parameter, the library will use the Azure SDK's `DefaultAzureCredential` for authentication. - Refer to the [Azure SDK](https://learn.microsoft.com/en-us/azure/developer/python/sdk/authentication/credential-chains?tabs=dac#defaultazurecredential-overview) documentation for the order in which credential types are attempted. @@ -32,3 +32,48 @@ To install fabric-cicd, run: ```bash pip install fabric-cicd ``` + +## Directory Structure + +This library deploys from a directory containing files and directories committed via the Fabric Source Control UI. Ensure the `repository_directory` includes only these committed items, with the exception of the `parameter.yml` file. + +``` +/<your-directory> + /<item-name>.<item-type>/ + /<item-name>.<item-type>/... + /<item-name>.<item-type>/ + /<item-name>.<item-type>/... + `/parameter.yml +``` + +## Changing Environment Specific Values + +To handle environment-specific values committed to git, use a `parameter.yml` file. This file supports programmatically changing values based on the `environment` field in the `FabricWorkspace` class. If the environment value is not found in the `parameter.yml` file, any dependent replacements will be skipped. + +Raise a [feature request](https://github.com/microsoft/fabric-cicd/issues/new?template=2-feature.yml) for additional parameterization capabilities. + +### find_replace + +For generic find-and-replace operations. This will replace every instance of a specified string in every file. Specify the `find` value as the key and the `replace` value for each environment. See the [Example](example.md) page for a complete yaml file. + +Note: A common use case for this function is to replace connection strings. I.e. find connection guid db52be81-c2b2-4261-84fa-840c67f4bbd0 and replace with 81bbb339-8d0b-46e8-bfa6-289a159c0733. + +```yaml +find_replace: + <find-this-value>: + <environment-1>: <replace-with-this-value> + <environment-2>: <replace-with-this-value> +``` + +### spark_pool + +Environments attached to custom spark pools need to be parameterized because the `instance-pool-id` in the `Sparkcompute.yml` file isn't supported in the create/update environment APIs. Provide the `instance-pool-id` as the key, and the pool type and name as the values. + +Environment parameterization(PPE/PROD) is not supported. If needed, raise a [feature request](https://github.com/microsoft/fabric-cicd/issues/new?template=2-feature.yml). + +```yaml +spark_pool: + <instance-pool-id>: + type: <Capacity-or-Workspace> + name: <pool-name> +``` diff --git a/sample/workspace/parameter.yml b/sample/workspace/parameter.yml index 34230b1e..5a2b0255 100644 --- a/sample/workspace/parameter.yml +++ b/sample/workspace/parameter.yml @@ -1,12 +1,12 @@ find_replace: - # SQL Connection Guid - db52be81-c2b2-4261-84fa-840c67f4bbd0: - dev: 81bbb339-8d0b-46e8-bfa6-289a159c0733 #dev01 - test: b1eb660d-541c-4f39-b085-f9842600a579 #test01 - prod: 5d6a1b16-447f-464a-b959-45d0fed35ca0 #prod01 + # SQL Connection Guid + db52be81-c2b2-4261-84fa-840c67f4bbd0: + dev: 81bbb339-8d0b-46e8-bfa6-289a159c0733 + test: b1eb660d-541c-4f39-b085-f9842600a579 + prod: 5d6a1b16-447f-464a-b959-45d0fed35ca0 spark_pool: - # CapacityPool_Large_Static - 72c68dbc-0775-4d59-909d-a47896f4573b: - type: "Capacity" - name: "CapacityPool_Large_Static" + # CapacityPool_Large_Static + 72c68dbc-0775-4d59-909d-a47896f4573b: + type: "Capacity" + name: "CapacityPool_Large_Static" From b3513d6ed259f00f8e6ab5b248807fe8ea978f87 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 16:18:56 -0800 Subject: [PATCH 27/49] commit --- docs/example.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/example.md b/docs/example.md index dc636a62..717f170b 100644 --- a/docs/example.md +++ b/docs/example.md @@ -30,6 +30,7 @@ ## Parameter.yml File -```yaml -{ % include "../sample/workspace/parameter.yml" % } +<!--prettier-ignore--> +```yml +{% include "../sample/workspace/parameter.yml" %} ``` From 7dc5ab9a94d85a4b27eeee033c252133675910ce Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 16:22:24 -0800 Subject: [PATCH 28/49] commit --- mkdocs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/mkdocs.yml b/mkdocs.yml index 6c0d740c..cbc60fe4 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -72,6 +72,7 @@ plugins: merge_init_into_class: true show_symbol_type_heading: true show_symbol_type_toc: true + line_length: 80 extra: version: From 55f5ad5777b6e2a4cda56e72a9e794dbc74fb419 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 16:26:30 -0800 Subject: [PATCH 29/49] commit --- requirements-doc.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements-doc.txt b/requirements-doc.txt index 6c964d18..f9ad79f1 100644 --- a/requirements-doc.txt +++ b/requirements-doc.txt @@ -3,3 +3,4 @@ mkdocstrings-python mkdocs-include-markdown-plugin mkdocs-minify-plugin mike +ruff From e9a4221338b2db5f90944bb3818e4a22f743e832 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 16:33:50 -0800 Subject: [PATCH 30/49] commit --- docs/index.md | 2 +- sample/set_vars_from_ado_build.py | 11 ++++------- sample/set_vars_from_git_branch.py | 11 ++++------- sample/workspace/parameter.yml | 13 ++++++++----- 4 files changed, 17 insertions(+), 20 deletions(-) diff --git a/docs/index.md b/docs/index.md index a3521e6d..2cbd8266 100644 --- a/docs/index.md +++ b/docs/index.md @@ -56,7 +56,7 @@ Raise a [feature request](https://github.com/microsoft/fabric-cicd/issues/new?te For generic find-and-replace operations. This will replace every instance of a specified string in every file. Specify the `find` value as the key and the `replace` value for each environment. See the [Example](example.md) page for a complete yaml file. -Note: A common use case for this function is to replace connection strings. I.e. find connection guid db52be81-c2b2-4261-84fa-840c67f4bbd0 and replace with 81bbb339-8d0b-46e8-bfa6-289a159c0733. +Note: A common use case for this function is to replace connection strings. I.e. find and replaced a connection guid referenced in data pipeline. ```yaml find_replace: diff --git a/sample/set_vars_from_ado_build.py b/sample/set_vars_from_ado_build.py index 579d24b4..9c94211c 100644 --- a/sample/set_vars_from_ado_build.py +++ b/sample/set_vars_from_ado_build.py @@ -14,15 +14,12 @@ branch = os.getenv("BUILD_SOURCEBRANCHNAME") # The defined environment values should match the names found in the parameter.yml file -if branch == "Develop": +if branch == "ppe": workspace_id = "a2745610-0253-4cf3-9e47-0b5cf8aa00f0" - environment = "dev" -elif branch == "Test": - workspace_id = "b33ecfe9-a9ad-4aca-ad9c-72c0a728f2c0" - environment = "test" -elif branch == "Main": + environment = "PPE" +elif branch == "main": workspace_id = "9010397b-7c0f-4d93-8620-90e51816e9e9" - environment = "main" + environment = "PROD" else: raise ValueError("Invalid branch to deploy from") diff --git a/sample/set_vars_from_git_branch.py b/sample/set_vars_from_git_branch.py index f4020155..182bc9b5 100644 --- a/sample/set_vars_from_git_branch.py +++ b/sample/set_vars_from_git_branch.py @@ -19,15 +19,12 @@ branch = repo.active_branch.name # The defined environment values should match the names found in the parameter.yml file -if branch == "Develop": +if branch == "ppe": workspace_id = "a2745610-0253-4cf3-9e47-0b5cf8aa00f0" - environment = "dev" -elif branch == "Test": - workspace_id = "b33ecfe9-a9ad-4aca-ad9c-72c0a728f2c0" - environment = "test" -elif branch == "Main": + environment = "PPE" +elif branch == "main": workspace_id = "9010397b-7c0f-4d93-8620-90e51816e9e9" - environment = "main" + environment = "PROD" else: raise ValueError("Invalid branch to deploy from") diff --git a/sample/workspace/parameter.yml b/sample/workspace/parameter.yml index 5a2b0255..b81d6e9d 100644 --- a/sample/workspace/parameter.yml +++ b/sample/workspace/parameter.yml @@ -1,12 +1,15 @@ find_replace: # SQL Connection Guid db52be81-c2b2-4261-84fa-840c67f4bbd0: - dev: 81bbb339-8d0b-46e8-bfa6-289a159c0733 - test: b1eb660d-541c-4f39-b085-f9842600a579 - prod: 5d6a1b16-447f-464a-b959-45d0fed35ca0 + PPE: 81bbb339-8d0b-46e8-bfa6-289a159c0733 + PROD: 5d6a1b16-447f-464a-b959-45d0fed35ca0 spark_pool: - # CapacityPool_Large_Static + # CapacityPool_Large 72c68dbc-0775-4d59-909d-a47896f4573b: type: "Capacity" - name: "CapacityPool_Large_Static" + name: "CapacityPool_Large" + # CapacityPool_Medium + e7b8f1c4-4a6e-4b8b-9b2e-8f1e5d6a9c3d: + type: "Workspace" + name: "WorkspacePool_Medium" From e64245df6b56127e7b62deb3743d2a01be1d310e Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 16:36:15 -0800 Subject: [PATCH 31/49] commit --- docs/index.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/index.md b/docs/index.md index 2cbd8266..d7d9d5ec 100644 --- a/docs/index.md +++ b/docs/index.md @@ -40,10 +40,15 @@ This library deploys from a directory containing files and directories committed ``` /<your-directory> /<item-name>.<item-type>/ - /<item-name>.<item-type>/... + ... /<item-name>.<item-type>/ - /<item-name>.<item-type>/... - `/parameter.yml + ... + /<workspace-subfolder>/ + /<item-name>.<item-type>/ + ... + /<item-name>.<item-type>/ + ... + /parameter.yml ``` ## Changing Environment Specific Values From 4fce451d51feb67045bd6a4bcb84c7db88bff52f Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 16:36:46 -0800 Subject: [PATCH 32/49] commit --- docs/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/index.md b/docs/index.md index d7d9d5ec..74c5ee5d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -39,14 +39,14 @@ This library deploys from a directory containing files and directories committed ``` /<your-directory> - /<item-name>.<item-type>/ + /<item-name>.<item-type> ... - /<item-name>.<item-type>/ + /<item-name>.<item-type> ... - /<workspace-subfolder>/ - /<item-name>.<item-type>/ + /<workspace-subfolder> + /<item-name>.<item-type> ... - /<item-name>.<item-type>/ + /<item-name>.<item-type> ... /parameter.yml ``` From bd99fe15e52424df2dc81683892ebd0b1aed44da Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 16:47:25 -0800 Subject: [PATCH 33/49] commit --- docs/{ => how_to}/example.md | 12 +++---- docs/how_to/getting_started.md | 37 ++++++++++++++++++++ docs/how_to/parameterization.md | 31 +++++++++++++++++ docs/index.md | 62 --------------------------------- mkdocs.yml | 7 ++-- 5 files changed, 79 insertions(+), 70 deletions(-) rename docs/{ => how_to}/example.md (51%) create mode 100644 docs/how_to/getting_started.md create mode 100644 docs/how_to/parameterization.md diff --git a/docs/example.md b/docs/how_to/example.md similarity index 51% rename from docs/example.md rename to docs/how_to/example.md index 717f170b..61956d37 100644 --- a/docs/example.md +++ b/docs/how_to/example.md @@ -1,36 +1,36 @@ ## Authenticate with Default Credentials ```python -{% include "../sample/auth_default_credential.py" %} +{% include "../../sample/auth_default_credential.py" %} ``` ## Authenticate with SPN Credentials ```python -{% include "../sample/auth_spn_secret.py" %} +{% include "../../sample/auth_spn_secret.py" %} ``` ## Setting Variables within Azure DevOps Release ```python -{% include "../sample/set_vars_from_ado_build.py" %} +{% include "../../sample/set_vars_from_ado_build.py" %} ``` ## Setting Variables within Local GIT Branch ```python -{% include "../sample/set_vars_from_git_branch.py" %} +{% include "../../sample/set_vars_from_git_branch.py" %} ``` ## Using Optional Parameters ```python -{% include "../sample/optional_parameters.py" %} +{% include "../../sample/optional_parameters.py" %} ``` ## Parameter.yml File <!--prettier-ignore--> ```yml -{% include "../sample/workspace/parameter.yml" %} +{% include "../../sample/workspace/parameter.yml" %} ``` diff --git a/docs/how_to/getting_started.md b/docs/how_to/getting_started.md new file mode 100644 index 00000000..9f3d95ca --- /dev/null +++ b/docs/how_to/getting_started.md @@ -0,0 +1,37 @@ +# Getting Started + +## Installation + +To install fabric-cicd, run: + +```bash +pip install fabric-cicd +``` + +## Authentication + +- You can optionally provide your own credential object that aligns with the `TokenCredential` class. For more details, see the [TokenCredential](https://learn.microsoft.com/en-us/dotnet/api/azure.core.tokencredential) documentation. +- If you do not provide a `token_credential` parameter, the library will use the Azure SDK's `DefaultAzureCredential` for authentication. + + - Refer to the [Azure SDK](https://learn.microsoft.com/en-us/azure/developer/python/sdk/authentication/credential-chains?tabs=dac#defaultazurecredential-overview) documentation for the order in which credential types are attempted. + - For local development with a User Principal Name (UPN), install either the [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-windows) or the [Az.Accounts](https://www.powershellgallery.com/packages/Az.Accounts/2.2.3) PowerShell module. + + - Note: When no credential is provided, the `DefaultAzureCredential` may select an unexpected identity. For example, if you log in to the Azure CLI with a Service Principal Name (SPN) but log in to Az.Accounts with a UPN, the `DefaultAzureCredential` will prioritize the CLI authentication. + +## Directory Structure + +This library deploys from a directory containing files and directories committed via the Fabric Source Control UI. Ensure the `repository_directory` includes only these committed items, with the exception of the `parameter.yml` file. + +``` +/<your-directory> + /<item-name>.<item-type> + ... + /<item-name>.<item-type> + ... + /<workspace-subfolder> + /<item-name>.<item-type> + ... + /<item-name>.<item-type> + ... + /parameter.yml +``` diff --git a/docs/how_to/parameterization.md b/docs/how_to/parameterization.md new file mode 100644 index 00000000..90052dbe --- /dev/null +++ b/docs/how_to/parameterization.md @@ -0,0 +1,31 @@ +# Parameterization + +To handle environment-specific values committed to git, use a `parameter.yml` file. This file supports programmatically changing values based on the `environment` field in the `FabricWorkspace` class. If the environment value is not found in the `parameter.yml` file, any dependent replacements will be skipped. + +Raise a [feature request](https://github.com/microsoft/fabric-cicd/issues/new?template=2-feature.yml) for additional parameterization capabilities. + +## find_replace + +For generic find-and-replace operations. This will replace every instance of a specified string in every file. Specify the `find` value as the key and the `replace` value for each environment. See the [Example](../example.md) page for a complete yaml file. + +Note: A common use case for this function is to replace connection strings. I.e. find and replaced a connection guid referenced in data pipeline. + +```yaml +find_replace: + <find-this-value>: + <environment-1>: <replace-with-this-value> + <environment-2>: <replace-with-this-value> +``` + +## spark_pool + +Environments attached to custom spark pools need to be parameterized because the `instance-pool-id` in the `Sparkcompute.yml` file isn't supported in the create/update environment APIs. Provide the `instance-pool-id` as the key, and the pool type and name as the values. + +Environment parameterization(PPE/PROD) is not supported. If needed, raise a [feature request](https://github.com/microsoft/fabric-cicd/issues/new?template=2-feature.yml). + +```yaml +spark_pool: + <instance-pool-id>: + type: <Capacity-or-Workspace> + name: <pool-name> +``` diff --git a/docs/index.md b/docs/index.md index 74c5ee5d..dd6419db 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,3 @@ -# Getting Started - Fabric CICD is a Python library designed for use with [Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/) workspaces. This library supports code-first CICD integrations to seamlessly integrate Source Controlled workspaces into a deployment framework. The goal is to assist CICD developers who prefer not to interact directly with the Microsoft Fabric APIs. ## Base Expectations @@ -15,16 +13,6 @@ The following item types are supported by the library: - Data Pipelines - Environments -## Authentication - -- You can optionally provide your own credential object that aligns with the `TokenCredential` class. For more details, see the [TokenCredential](https://learn.microsoft.com/en-us/dotnet/api/azure.core.tokencredential) documentation. -- If you do not provide a `token_credential` parameter, the library will use the Azure SDK's `DefaultAzureCredential` for authentication. - - - Refer to the [Azure SDK](https://learn.microsoft.com/en-us/azure/developer/python/sdk/authentication/credential-chains?tabs=dac#defaultazurecredential-overview) documentation for the order in which credential types are attempted. - - For local development with a User Principal Name (UPN), install either the [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-windows) or the [Az.Accounts](https://www.powershellgallery.com/packages/Az.Accounts/2.2.3) PowerShell module. - - - Note: When no credential is provided, the `DefaultAzureCredential` may select an unexpected identity. For example, if you log in to the Azure CLI with a Service Principal Name (SPN) but log in to Az.Accounts with a UPN, the `DefaultAzureCredential` will prioritize the CLI authentication. - ## Installation To install fabric-cicd, run: @@ -32,53 +20,3 @@ To install fabric-cicd, run: ```bash pip install fabric-cicd ``` - -## Directory Structure - -This library deploys from a directory containing files and directories committed via the Fabric Source Control UI. Ensure the `repository_directory` includes only these committed items, with the exception of the `parameter.yml` file. - -``` -/<your-directory> - /<item-name>.<item-type> - ... - /<item-name>.<item-type> - ... - /<workspace-subfolder> - /<item-name>.<item-type> - ... - /<item-name>.<item-type> - ... - /parameter.yml -``` - -## Changing Environment Specific Values - -To handle environment-specific values committed to git, use a `parameter.yml` file. This file supports programmatically changing values based on the `environment` field in the `FabricWorkspace` class. If the environment value is not found in the `parameter.yml` file, any dependent replacements will be skipped. - -Raise a [feature request](https://github.com/microsoft/fabric-cicd/issues/new?template=2-feature.yml) for additional parameterization capabilities. - -### find_replace - -For generic find-and-replace operations. This will replace every instance of a specified string in every file. Specify the `find` value as the key and the `replace` value for each environment. See the [Example](example.md) page for a complete yaml file. - -Note: A common use case for this function is to replace connection strings. I.e. find and replaced a connection guid referenced in data pipeline. - -```yaml -find_replace: - <find-this-value>: - <environment-1>: <replace-with-this-value> - <environment-2>: <replace-with-this-value> -``` - -### spark_pool - -Environments attached to custom spark pools need to be parameterized because the `instance-pool-id` in the `Sparkcompute.yml` file isn't supported in the create/update environment APIs. Provide the `instance-pool-id` as the key, and the pool type and name as the values. - -Environment parameterization(PPE/PROD) is not supported. If needed, raise a [feature request](https://github.com/microsoft/fabric-cicd/issues/new?template=2-feature.yml). - -```yaml -spark_pool: - <instance-pool-id>: - type: <Capacity-or-Workspace> - name: <pool-name> -``` diff --git a/mkdocs.yml b/mkdocs.yml index cbc60fe4..e96aefe8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -7,9 +7,12 @@ remote_branch: gh-pages remote_name: origin nav: - - Getting Started: index.md + - Home: index.md - Code Reference: code_reference.md - - Examples: example.md + - How To: + - Getting Started: how_to/getting_started.md + - Parameterization: how_to/parameterization.md + - Examples: how_to/example.md - Contribution: contribution.md - Changelog: changelog.md - Help: help.md From 5c7fab871f9b407069ec3d4d5af35911bb781084 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 16:50:29 -0800 Subject: [PATCH 34/49] commit --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index e96aefe8..db048461 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -8,11 +8,11 @@ remote_name: origin nav: - Home: index.md - - Code Reference: code_reference.md - How To: - Getting Started: how_to/getting_started.md - Parameterization: how_to/parameterization.md - Examples: how_to/example.md + - Code Reference: code_reference.md - Contribution: contribution.md - Changelog: changelog.md - Help: help.md From 925b3057e231c2c5d36b0a0d996e457de1fb537c Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 18:33:23 -0800 Subject: [PATCH 35/49] commit --- docs/config/assets/git_flow.png | Bin 0 -> 82702 bytes docs/how_to/getting_started.md | 11 +++++++++++ 2 files changed, 11 insertions(+) create mode 100644 docs/config/assets/git_flow.png diff --git a/docs/config/assets/git_flow.png b/docs/config/assets/git_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..c9a05e73626e4b252f25f174892ad004aca48448 GIT binary patch literal 82702 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%0D@`x+zYUEX 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	cTHITCrhsIbpZN{O| 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 JrT(4B{{Sxhk~aVV literal 0 HcmV?d00001 diff --git a/docs/how_to/getting_started.md b/docs/how_to/getting_started.md index 9f3d95ca..6db145f1 100644 --- a/docs/how_to/getting_started.md +++ b/docs/how_to/getting_started.md @@ -35,3 +35,14 @@ This library deploys from a directory containing files and directories committed ... /parameter.yml ``` + +## GIT Flow + +The flow pictured below is the hero scenario for this library and is the recommendation if you're just starting out. This library is also only designed to support a full deployment (not a partial diff deployment) to ensure that the _Deployed_ or _Non-Feature_ workspaces contain the expected code. Full deployments guarantee consistency and are key to achieving full CICD. + +- _Deployed_ or _Non-Feature_ branches are not connected to workspaces via [GIT Sync](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#connect-a-workspace-to-a-git-repo) +- _Feature_ or _User_ branches are connected to workspaces via [GIT Sync](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#connect-a-workspace-to-a-git-repo) +- _Deployed_ or _Non-Feature_ workspaces are only updated through script-based deployments, such as through the fabric-cicd library +- Feature branches are created from the default branch, merged back into the default branch, and cherry picked into the upper branches + +  From 5feffa60bf6b58e1a8387ffd9690b49d339cb8e7 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 18:38:00 -0800 Subject: [PATCH 36/49] commit --- docs/how_to/getting_started.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/how_to/getting_started.md b/docs/how_to/getting_started.md index 6db145f1..e3c799dd 100644 --- a/docs/how_to/getting_started.md +++ b/docs/how_to/getting_started.md @@ -38,11 +38,12 @@ This library deploys from a directory containing files and directories committed ## GIT Flow -The flow pictured below is the hero scenario for this library and is the recommendation if you're just starting out. This library is also only designed to support a full deployment (not a partial diff deployment) to ensure that the _Deployed_ or _Non-Feature_ workspaces contain the expected code. Full deployments guarantee consistency and are key to achieving full CICD. +The flow pictured below is the hero scenario for this library and is the recommendation if you're just starting out. - _Deployed_ or _Non-Feature_ branches are not connected to workspaces via [GIT Sync](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#connect-a-workspace-to-a-git-repo) - _Feature_ or _User_ branches are connected to workspaces via [GIT Sync](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#connect-a-workspace-to-a-git-repo) - _Deployed_ or _Non-Feature_ workspaces are only updated through script-based deployments, such as through the fabric-cicd library - Feature branches are created from the default branch, merged back into the default branch, and cherry picked into the upper branches +- Each deployment is a full deployment and does not consider commit diffs -  + From ba4ea7be9a41352d59f084b00df26e509de2e7eb Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 18:40:45 -0800 Subject: [PATCH 37/49] commit --- docs/how_to/getting_started.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/how_to/getting_started.md b/docs/how_to/getting_started.md index e3c799dd..01406797 100644 --- a/docs/how_to/getting_started.md +++ b/docs/how_to/getting_started.md @@ -40,10 +40,12 @@ This library deploys from a directory containing files and directories committed The flow pictured below is the hero scenario for this library and is the recommendation if you're just starting out. -- _Deployed_ or _Non-Feature_ branches are not connected to workspaces via [GIT Sync](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#connect-a-workspace-to-a-git-repo) -- _Feature_ or _User_ branches are connected to workspaces via [GIT Sync](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#connect-a-workspace-to-a-git-repo) -- _Deployed_ or _Non-Feature_ workspaces are only updated through script-based deployments, such as through the fabric-cicd library -- Feature branches are created from the default branch, merged back into the default branch, and cherry picked into the upper branches +- `Deployed` branches are not connected to workspaces via [GIT Sync](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#connect-a-workspace-to-a-git-repo) +- `Feature` branches are connected to workspaces via [GIT Sync](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#connect-a-workspace-to-a-git-repo) +- `Deployed` workspaces are only updated through script-based deployments, such as through the fabric-cicd library +- `Feature` branches are created from the default branch, merged back into the default `Deployed` branch, and cherry picked into the upper `Deployed` branches - Each deployment is a full deployment and does not consider commit diffs  + +<img src="../config/assets/git_flow.png" alt="GIT Flow" width="600"/> From 05df19fb4de92269e02aec0ff0c57e377c322d65 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 18:42:28 -0800 Subject: [PATCH 38/49] commit --- docs/how_to/getting_started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/how_to/getting_started.md b/docs/how_to/getting_started.md index 01406797..05885a2f 100644 --- a/docs/how_to/getting_started.md +++ b/docs/how_to/getting_started.md @@ -48,4 +48,4 @@ The flow pictured below is the hero scenario for this library and is the recomme  -<img src="../config/assets/git_flow.png" alt="GIT Flow" width="600"/> +<img src="../config/assets/git_flow.png" alt="GIT Flow" width="40rem"/> From b9722b35fc4dea5d94d7ac3b54ca09c5d652f257 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 18:50:23 -0800 Subject: [PATCH 39/49] commit --- docs/config/stylesheets/extra.css | 6 ++++++ docs/how_to/getting_started.md | 2 -- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/config/stylesheets/extra.css b/docs/config/stylesheets/extra.css index 651aa469..30b43383 100644 --- a/docs/config/stylesheets/extra.css +++ b/docs/config/stylesheets/extra.css @@ -92,3 +92,9 @@ p:has(.md-h2-subheader) { .md-nav--lifted .md-nav__item { font-size: .7rem; } + +/* Markdown image resizing */ +.md-typeset img { + max-width: 40rem; + height: auto; /* Maintain aspect ratio */ +} diff --git a/docs/how_to/getting_started.md b/docs/how_to/getting_started.md index 05885a2f..558389a3 100644 --- a/docs/how_to/getting_started.md +++ b/docs/how_to/getting_started.md @@ -47,5 +47,3 @@ The flow pictured below is the hero scenario for this library and is the recomme - Each deployment is a full deployment and does not consider commit diffs  - -<img src="../config/assets/git_flow.png" alt="GIT Flow" width="40rem"/> From c895baaa918eaa90f5a9e7940aca3d24a6d85973 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 18:59:04 -0800 Subject: [PATCH 40/49] commit --- docs/config/stylesheets/extra.css | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/config/stylesheets/extra.css b/docs/config/stylesheets/extra.css index 30b43383..633bf666 100644 --- a/docs/config/stylesheets/extra.css +++ b/docs/config/stylesheets/extra.css @@ -96,5 +96,6 @@ p:has(.md-h2-subheader) { /* Markdown image resizing */ .md-typeset img { max-width: 40rem; + width: 100%; height: auto; /* Maintain aspect ratio */ } From ab0987836ea10c782f36e6fe27549a395b24b785 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 19:06:08 -0800 Subject: [PATCH 41/49] commit --- docs/config/stylesheets/extra.css | 2 +- docs/how_to/parameterization.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/config/stylesheets/extra.css b/docs/config/stylesheets/extra.css index 633bf666..3a200e5d 100644 --- a/docs/config/stylesheets/extra.css +++ b/docs/config/stylesheets/extra.css @@ -94,7 +94,7 @@ p:has(.md-h2-subheader) { } /* Markdown image resizing */ -.md-typeset img { +.md-content .md-typeset img { max-width: 40rem; width: 100%; height: auto; /* Maintain aspect ratio */ diff --git a/docs/how_to/parameterization.md b/docs/how_to/parameterization.md index 90052dbe..5f0cfe97 100644 --- a/docs/how_to/parameterization.md +++ b/docs/how_to/parameterization.md @@ -6,7 +6,7 @@ Raise a [feature request](https://github.com/microsoft/fabric-cicd/issues/new?te ## find_replace -For generic find-and-replace operations. This will replace every instance of a specified string in every file. Specify the `find` value as the key and the `replace` value for each environment. See the [Example](../example.md) page for a complete yaml file. +For generic find-and-replace operations. This will replace every instance of a specified string in every file. Specify the `find` value as the key and the `replace` value for each environment. See the [Example](example.md) page for a complete yaml file. Note: A common use case for this function is to replace connection strings. I.e. find and replaced a connection guid referenced in data pipeline. From 926628a7c85adf487898756fa5b8be3f4d91635c Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Sun, 12 Jan 2025 19:09:59 -0800 Subject: [PATCH 42/49] commit --- sample/workspace/parameter.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sample/workspace/parameter.yml b/sample/workspace/parameter.yml index b81d6e9d..86627878 100644 --- a/sample/workspace/parameter.yml +++ b/sample/workspace/parameter.yml @@ -1,15 +1,15 @@ find_replace: # SQL Connection Guid - db52be81-c2b2-4261-84fa-840c67f4bbd0: + "db52be81-c2b2-4261-84fa-840c67f4bbd0": PPE: 81bbb339-8d0b-46e8-bfa6-289a159c0733 PROD: 5d6a1b16-447f-464a-b959-45d0fed35ca0 spark_pool: # CapacityPool_Large - 72c68dbc-0775-4d59-909d-a47896f4573b: + "72c68dbc-0775-4d59-909d-a47896f4573b": type: "Capacity" name: "CapacityPool_Large" # CapacityPool_Medium - e7b8f1c4-4a6e-4b8b-9b2e-8f1e5d6a9c3d: + "e7b8f1c4-4a6e-4b8b-9b2e-8f1e5d6a9c3d": type: "Workspace" name: "WorkspacePool_Medium" From 632b496b4b022d0ebb406a30ff5bfeb2b757d1d2 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Mon, 13 Jan 2025 09:32:21 -0800 Subject: [PATCH 43/49] commit --- docs/index.md | 2 +- mkdocs.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.md b/docs/index.md index dd6419db..2bdbb421 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,4 @@ -Fabric CICD is a Python library designed for use with [Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/) workspaces. This library supports code-first CICD integrations to seamlessly integrate Source Controlled workspaces into a deployment framework. The goal is to assist CICD developers who prefer not to interact directly with the Microsoft Fabric APIs. +fabric-cicd is a Python library designed for use with [Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/) workspaces. This library supports code-first CI/CD (Conintuous Integration / Continuous Deployment) integrations to seamlessly integrate Source Controlled workspaces into a deployment framework. The goal is to assist CI/CD developers who prefer not to interact directly with the Microsoft Fabric APIs. ## Base Expectations diff --git a/mkdocs.yml b/mkdocs.yml index db048461..3423b0af 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,4 +1,4 @@ -site_name: fabric_cicd +site_name: fabric-cicd repo_name: microsoft/fabric-cicd repo_url: https://github.com/microsoft/fabric-cicd From 911fc0a787a1a7a62c8598ffac4fe7db7dd1c73f Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Mon, 13 Jan 2025 09:33:01 -0800 Subject: [PATCH 44/49] commit --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 2bdbb421..2561593d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,4 @@ -fabric-cicd is a Python library designed for use with [Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/) workspaces. This library supports code-first CI/CD (Conintuous Integration / Continuous Deployment) integrations to seamlessly integrate Source Controlled workspaces into a deployment framework. The goal is to assist CI/CD developers who prefer not to interact directly with the Microsoft Fabric APIs. +fabric-cicd is a Python library designed for use with [Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/) workspaces. This library supports code-first Conintuous Integration / Continuous Deployment (CI/CD) automations to seamlessly integrate Source Controlled workspaces into a deployment framework. The goal is to assist CI/CD developers who prefer not to interact directly with the Microsoft Fabric APIs. ## Base Expectations From 58fd77e8b4aca45420a13394fca226b3f94c42f2 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Mon, 13 Jan 2025 10:04:57 -0800 Subject: [PATCH 45/49] commit --- .github/workflows/gh-pages.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 44ba01c6..bc1585d8 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -4,6 +4,7 @@ name: Github Pages on: push: branches: + - main - users/JacobKnightley/documentation permissions: @@ -27,6 +28,12 @@ jobs: run: | python -m pip install --upgrade pip python -m pip install -r requirements-doc.txt + + - name: Read version from file + id: get_version + run: | + VERSION=$(cat VERSION) + echo "VERSION=$VERSION" >> $GITHUB_ENV - name: Deploy env: @@ -39,6 +46,6 @@ jobs: --update-aliases \ --branch gh-pages \ --push \ - 0.0.1 \ + ${{ env.VERSION }} \ latest mike set-default --push latest From d6d1f04ed014b4751cc1d4a7e23d86b4b26d05d4 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Mon, 13 Jan 2025 10:15:15 -0800 Subject: [PATCH 46/49] commit --- docs/config/assets/git_flow.png | Bin 82702 -> 83643 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/config/assets/git_flow.png b/docs/config/assets/git_flow.png index c9a05e73626e4b252f25f174892ad004aca48448..9af9d71847b4b5a25c5b5c48e9180bde0e4cc879 100644 GIT binary patch literal 83643 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 J%J|By{{TY7gYN(U literal 82702 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%0D@`x+zYUEX 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	cTHITCrhsIbpZN{O| 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 JrT(4B{{Sxhk~aVV From 511d882142391c20ea6a9d429cf968fa8dd4881f Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Mon, 13 Jan 2025 10:28:14 -0800 Subject: [PATCH 47/49] commit --- .github/workflows/gh-pages.yml | 51 ---------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 .github/workflows/gh-pages.yml diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml deleted file mode 100644 index bc1585d8..00000000 --- a/.github/workflows/gh-pages.yml +++ /dev/null @@ -1,51 +0,0 @@ -# Workflow inspiration and adaptation came from Andruino-Cli -# https://github.com/squidfunk/mkdocs-material/discussions/6546 -name: Github Pages -on: - push: - branches: - - main - - users/JacobKnightley/documentation - -permissions: - contents: write - actions: write - -jobs: - publish: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Install Python - uses: actions/setup-python@v5 - with: - python-version: "3.9" - - - name: Install Requirements - run: | - python -m pip install --upgrade pip - python -m pip install -r requirements-doc.txt - - - name: Read version from file - id: get_version - run: | - VERSION=$(cat VERSION) - echo "VERSION=$VERSION" >> $GITHUB_ENV - - - name: Deploy - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - git config user.name github-actions[bot] - git config user.email github-actions[bot]@users.noreply.github.com - git fetch --no-tags --prune --depth=1 origin +refs/heads/gh-pages:refs/remotes/origin/gh-pages - mike deploy \ - --update-aliases \ - --branch gh-pages \ - --push \ - ${{ env.VERSION }} \ - latest - mike set-default --push latest From 62658343b6b3631f7151aad66be840eedb9da021 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Mon, 13 Jan 2025 10:41:55 -0800 Subject: [PATCH 48/49] commit --- docs/changelog.md | 2 +- docs/how_to/parameterization.md | 2 +- docs/index.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index 5a38621b..bd43e603 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -11,7 +11,7 @@ The following contains all major, minor, and patch version release notes. Additi - Support for Workspace Folders - Enhancements for existing item types - Notebook - Support for attached resources - - Data Pipeline - Support for all connections w/in activities + - Data Pipeline - Support for all connections within activities - Environment - Support for attached public libraries - Support for attached custom libraries ## Version 0.1.0 diff --git a/docs/how_to/parameterization.md b/docs/how_to/parameterization.md index 5f0cfe97..432eebbb 100644 --- a/docs/how_to/parameterization.md +++ b/docs/how_to/parameterization.md @@ -8,7 +8,7 @@ Raise a [feature request](https://github.com/microsoft/fabric-cicd/issues/new?te For generic find-and-replace operations. This will replace every instance of a specified string in every file. Specify the `find` value as the key and the `replace` value for each environment. See the [Example](example.md) page for a complete yaml file. -Note: A common use case for this function is to replace connection strings. I.e. find and replaced a connection guid referenced in data pipeline. +Note: A common use case for this function is to replace connection strings. I.e. find and replace a connection guid referenced in data pipeline. ```yaml find_replace: diff --git a/docs/index.md b/docs/index.md index 2561593d..50fa0c53 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,4 @@ -fabric-cicd is a Python library designed for use with [Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/) workspaces. This library supports code-first Conintuous Integration / Continuous Deployment (CI/CD) automations to seamlessly integrate Source Controlled workspaces into a deployment framework. The goal is to assist CI/CD developers who prefer not to interact directly with the Microsoft Fabric APIs. +fabric-cicd is a Python library designed for use with [Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/) workspaces. This library supports code-first Continuous Integration / Continuous Deployment (CI/CD) automations to seamlessly integrate Source Controlled workspaces into a deployment framework. The goal is to assist CI/CD developers who prefer not to interact directly with the Microsoft Fabric APIs. ## Base Expectations From 87d16ca249ab26e6ac7c776c4135d0fe394f26e5 Mon Sep 17 00:00:00 2001 From: Jacob Knightley <Jacob.Knightley@microsoft.com> Date: Mon, 13 Jan 2025 10:55:16 -0800 Subject: [PATCH 49/49] commit --- docs/changelog.md | 2 +- docs/config/overrides/main.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index bd43e603..841f162a 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -16,7 +16,7 @@ The following contains all major, minor, and patch version release notes. Additi ## Version 0.1.0 -<span class="md-h2-subheader">Release Date: 2025-01-15</span> +<span class="md-h2-subheader">Release Date: TBD</span> - Initial public preview release - Supports Notebook, Pipeline, and Environment deployments diff --git a/docs/config/overrides/main.html b/docs/config/overrides/main.html index 700c6ec7..703acbf0 100644 --- a/docs/config/overrides/main.html +++ b/docs/config/overrides/main.html @@ -1,5 +1,5 @@ {% extends "base.html" %} {% block announce %} - <p style="text-align: center;">⚠️ This library is in limited Public Preview - features and functionality may change.</p> + <p style="text-align: center;">⚠️ This library is in limited Private Preview - the library is not hosted on PyPi yet. </p> {% endblock %}