From 8b4ca7f155530fb0ff55e0e64142c11a09955814 Mon Sep 17 00:00:00 2001 From: JAMahoney92 <64795193+JAMahoney92@users.noreply.github.com> Date: Mon, 4 May 2020 17:07:51 +0100 Subject: [PATCH 1/2] Added name to graduates and removed number --- .github/workflows/installer_checks.yml | 122 +++++------ .gitignore | 2 +- .gitproperties | 10 +- .vscode/extensions.json | 28 +-- .vscode/settings.json | 8 +- CONTRIBUTING.md | 32 +-- LICENSE | 42 ++-- README.md | 56 ++--- backlog.html | 26 +-- brew.html | 26 +-- choco.html | 26 +-- getting_started_with_spark.md | 186 ++++++++--------- infra_catalog.md | 52 ++--- integrations/README.md | 10 +- integrations/workday.md | 80 ++++---- lab.html | 20 +- labs/cicd-graduates.md | 27 +-- labs/data-lake.md | 122 +++++------ labs/dbt-transforms.md | 162 +++++++-------- labs/extracts-as-code.md | 52 ++--- labs/index.md | 40 ++-- labs/intro.md | 273 ++++++++++++------------- labs/rds-database.md | 92 ++++----- powerbi_themes.md | 76 +++---- setup/brew_install.sh | 6 +- setup/choco_devops.bat | 118 +++++------ setup/choco_min.bat | 102 ++++----- setup/index.html | 44 ++-- setup/mac.md | 156 +++++++------- setup/windows.md | 190 ++++++++--------- 30 files changed, 1093 insertions(+), 1093 deletions(-) diff --git a/.github/workflows/installer_checks.yml b/.github/workflows/installer_checks.yml index b9c4026..4e37e53 100644 --- a/.github/workflows/installer_checks.yml +++ b/.github/workflows/installer_checks.yml @@ -1,61 +1,61 @@ -name: Windows Installer Tests - -on: - push: - paths: - - .github/workflows/*.yml - - "**Dockerfile" - - "**.bat" - -jobs: - test_setup_min: - runs-on: windows-2019 - steps: - - uses: actions/checkout@v1 - - name: Test setup script - run: ./setup/choco_min.bat - - uses: actions/upload-artifact@master - if: always() - with: - name: choco_min.bat.log - path: C:\ProgramData\chocolatey\logs\chocolatey.log - - test_mac_installs: - runs-on: macos-latest - steps: - - uses: actions/checkout@v1 - - name: Test brew script - run: | - chmod 777 ./setup/brew_install.sh - ./setup/brew_install.sh - - name: Test brew installs - run: | - brew install \ - awscli cask docker terraform - - name: Test brew installs (upgrade) - run: | - brew upgrade \ - azure-cli git python3 - - name: Test cask installs - run: | - brew cask install --force \ - anaconda dbeaver-community github google-chrome \ - microsoft-teams r visual-studio-code - - test_setup_full: - runs-on: windows-2019 - steps: - - uses: actions/checkout@v1 - - name: Test setup script - run: ./setup/choco_devops.bat - - uses: actions/upload-artifact@master - if: always() - with: - name: choco_devops.bat.log - path: C:\ProgramData\chocolatey\logs\chocolatey.log - - print_debug_info: - runs-on: windows-2019 - steps: - - name: Print available Windows features - run: Dism /online /Get-Features +name: Windows Installer Tests + +on: + push: + paths: + - .github/workflows/*.yml + - "**Dockerfile" + - "**.bat" + +jobs: + test_setup_min: + runs-on: windows-2019 + steps: + - uses: actions/checkout@v1 + - name: Test setup script + run: ./setup/choco_min.bat + - uses: actions/upload-artifact@master + if: always() + with: + name: choco_min.bat.log + path: C:\ProgramData\chocolatey\logs\chocolatey.log + + test_mac_installs: + runs-on: macos-latest + steps: + - uses: actions/checkout@v1 + - name: Test brew script + run: | + chmod 777 ./setup/brew_install.sh + ./setup/brew_install.sh + - name: Test brew installs + run: | + brew install \ + awscli cask docker terraform + - name: Test brew installs (upgrade) + run: | + brew upgrade \ + azure-cli git python3 + - name: Test cask installs + run: | + brew cask install --force \ + anaconda dbeaver-community github google-chrome \ + microsoft-teams r visual-studio-code + + test_setup_full: + runs-on: windows-2019 + steps: + - uses: actions/checkout@v1 + - name: Test setup script + run: ./setup/choco_devops.bat + - uses: actions/upload-artifact@master + if: always() + with: + name: choco_devops.bat.log + path: C:\ProgramData\chocolatey\logs\chocolatey.log + + print_debug_info: + runs-on: windows-2019 + steps: + - name: Print available Windows features + run: Dism /online /Get-Features diff --git a/.gitignore b/.gitignore index 3c3629e..08b2553 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -node_modules +node_modules diff --git a/.gitproperties b/.gitproperties index 2a3fa04..9efe203 100644 --- a/.gitproperties +++ b/.gitproperties @@ -1,5 +1,5 @@ -# All files except .bat files should use -# unix-style line endings - -* text eol=lf -*.bat text eol=crlf +# All files except .bat files should use +# unix-style line endings + +* text eol=lf +*.bat text eol=crlf diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 3184ac7..a9bc17c 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,15 +1,15 @@ -{ - // See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations. - // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp - - // List of extensions which should be recommended for users of this workspace. - "recommendations": [ - "yzhang.markdown-all-in-one", - "bierner.markdown-preview-github-styles", - "davidanson.vscode-markdownlint", - ], - // List of extensions recommended by VS Code that should not be recommended for users of this workspace. - "unwantedRecommendations": [ - "shd101wyy.markdown-preview-enhanced", - ] +{ + // See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations. + // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp + + // List of extensions which should be recommended for users of this workspace. + "recommendations": [ + "yzhang.markdown-all-in-one", + "bierner.markdown-preview-github-styles", + "davidanson.vscode-markdownlint", + ], + // List of extensions recommended by VS Code that should not be recommended for users of this workspace. + "unwantedRecommendations": [ + "shd101wyy.markdown-preview-enhanced", + ] } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 7f4ea2b..ea39c41 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,5 @@ -{ - "markdown.extension.toc.levels": "2..3", - "markdown.extension.toc.githubCompatibility": true, - "markdown.extension.preview.autoShowPreviewToSide": true +{ + "markdown.extension.toc.levels": "2..3", + "markdown.extension.toc.githubCompatibility": true, + "markdown.extension.preview.autoShowPreviewToSide": true } \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 072f59f..625b318 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,16 +1,16 @@ -# [Docs](./README.md) > Contributing to DataOps Docs - -There are two main options for contributing to this repo: issues and pull requests. - -## Issues - -A GitHub **Issue** is a ticket you create that logs a specific problem, a bug, a feature request, or an inquiry. This issue will be logged centrally and responded to by the site maintainers. - -> _**Issues are ideal when you see something which can be improved but there isn't an obvious fix.**_ - -## Pull Requests - -A GitHub **Pull Request** ("PR") is a request for the site maintainers to _pull in_ changes that have been authored by other users. - -> _**PRs are ideal when you already know how to improve the site and want to propose a set of specific changes.**_ - +# [Docs](./README.md) > Contributing to DataOps Docs + +There are two main options for contributing to this repo: issues and pull requests. + +## Issues + +A GitHub **Issue** is a ticket you create that logs a specific problem, a bug, a feature request, or an inquiry. This issue will be logged centrally and responded to by the site maintainers. + +> _**Issues are ideal when you see something which can be improved but there isn't an obvious fix.**_ + +## Pull Requests + +A GitHub **Pull Request** ("PR") is a request for the site maintainers to _pull in_ changes that have been authored by other users. + +> _**PRs are ideal when you already know how to improve the site and want to propose a set of specific changes.**_ + diff --git a/LICENSE b/LICENSE index b633cfc..7a5514c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,21 @@ -MIT License - -Copyright (c) 2019 slalom-ggp - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +MIT License + +Copyright (c) 2019 slalom-ggp + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 1c87e61..d2bddff 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,28 @@ -# [Slalom GGP - DataOps Docs](https://docs.dataops.tk) - -## Welcome to the `dataops docs` site! - -The tools and documentation provided here are designed to accelerate data and analytics projects for the [Slalom Team](https://www.slalom.com/who-we-are) and our clients. - -## Guides and Documentation - -* **Developer [QuickStart Guides](setup)** - Quickly get started with DevOps tools and best practices for building modern data solutions: - * [Windows QuickStart](setup/windows.md) - * [Mac QuickStart](setup/mac.md) -* [Deploying Tableau Server on AWS](deploying_tableau_server_on_aws.md) - Walkthough of an IAC ("Infrastructure as Code") approach to Tableau Server deployment. -* [Infrastructure Catalog Guide](infra_catalog.md) - Overview of how to get started with the D&A Infrastructure Catalog. -* [Integration Guides](integrations/README.md) - Quickly get started integrating a new data source: - * [Workday](integrations/workday.md) -* [Power BI Themes](powerbi_themes.md) - Guide to formatting Power BI reports using themes. -* [SQL 101](sql101.md) - Quick SQL intro for data and analytics. - -## Labs - -See the [Labs Page](./labs) for all of the **Slalom DataOps Labs**. - -## Other Importand Links - -* [dataops-tools](https://github.com/slalom-ggp/dataops-tools) - The primary DataOps git repo for tools mentioned here in these docs. -* [dataops-docs](https://github.com/slalom-ggp/dataops-docs) - Link to this documentation repo. _(Submit documentation bugs and enhancement request here!)_ -* [dataops-infra](https://github.com/slalom-ggp/dataops-docs) - Link to the Infrastructure Catalog repo. -* [docs.dataops.tk/backlog](https://docs.dataops.tk/backlog) - DataOps backlog and current development status. +# [Slalom GGP - DataOps Docs](https://docs.dataops.tk) + +## Welcome to the `dataops docs` site! + +The tools and documentation provided here are designed to accelerate data and analytics projects for the [Slalom Team](https://www.slalom.com/who-we-are) and our clients. + +## Guides and Documentation + +* **Developer [QuickStart Guides](setup)** - Quickly get started with DevOps tools and best practices for building modern data solutions: + * [Windows QuickStart](setup/windows.md) + * [Mac QuickStart](setup/mac.md) +* [Deploying Tableau Server on AWS](deploying_tableau_server_on_aws.md) - Walkthough of an IAC ("Infrastructure as Code") approach to Tableau Server deployment. +* [Infrastructure Catalog Guide](infra_catalog.md) - Overview of how to get started with the D&A Infrastructure Catalog. +* [Integration Guides](integrations/README.md) - Quickly get started integrating a new data source: + * [Workday](integrations/workday.md) +* [Power BI Themes](powerbi_themes.md) - Guide to formatting Power BI reports using themes. +* [SQL 101](sql101.md) - Quick SQL intro for data and analytics. + +## Labs + +See the [Labs Page](./labs) for all of the **Slalom DataOps Labs**. + +## Other Importand Links + +* [dataops-tools](https://github.com/slalom-ggp/dataops-tools) - The primary DataOps git repo for tools mentioned here in these docs. +* [dataops-docs](https://github.com/slalom-ggp/dataops-docs) - Link to this documentation repo. _(Submit documentation bugs and enhancement request here!)_ +* [dataops-infra](https://github.com/slalom-ggp/dataops-docs) - Link to the Infrastructure Catalog repo. +* [docs.dataops.tk/backlog](https://docs.dataops.tk/backlog) - DataOps backlog and current development status. diff --git a/backlog.html b/backlog.html index db68dbb..92bddf2 100644 --- a/backlog.html +++ b/backlog.html @@ -1,13 +1,13 @@ - - - - - - - - -

- This page will redirect to https://github.com/orgs/slalom-ggp/projects/1 -

- - + + + + + + + + +

+ This page will redirect to https://github.com/orgs/slalom-ggp/projects/1 +

+ + diff --git a/brew.html b/brew.html index 23fe067..2edd6c8 100644 --- a/brew.html +++ b/brew.html @@ -1,13 +1,13 @@ - - - - - - - - -

- The page been moved to https://docs.dataops.tk/setup/mac -

- - + + + + + + + + +

+ The page been moved to https://docs.dataops.tk/setup/mac +

+ + diff --git a/choco.html b/choco.html index 288d311..df6366c 100644 --- a/choco.html +++ b/choco.html @@ -1,13 +1,13 @@ - - - - - - - - -

- The page been moved to https://docs.dataops.tk/setup/windows -

- - + + + + + + + + +

+ The page been moved to https://docs.dataops.tk/setup/windows +

+ + diff --git a/getting_started_with_spark.md b/getting_started_with_spark.md index 649c47e..c788393 100644 --- a/getting_started_with_spark.md +++ b/getting_started_with_spark.md @@ -1,93 +1,93 @@ -# [Docs](./README.md) > Spark "Getting Started" Guide - -_This document will walk you through how to quickly get started with local development using Apache Spark._ - -## Prereqs - -Before you proceed, you will need a few things, specifically: Git, Docker, Python, and VS Code. Please use our [Windows Dev Getting Started Guide](setup/windows.md) or using this script: - -* [https://docs.dataops.tk/setup/choco_devops.bat](setup/choco_devops.bat) - -## Launching Spark on your local machine - -The `slalom.dataops` library makes it quick and easy to launch a new spark server: - -1. Install the python library: - - ```bash - pip install --upgrade slalom.dataops - ``` - -2. Launch the spark server: - - ```bash - s-spark start_server --with_jupyter - ``` - -## Connect to the Spark server - -After launching the server, you can connect spark applications using the following server endpoints: - -* Spark Web GUI: [http://localhost:4040](http://localhost:4040) -* Jupyter Web GUI: [https://localhost:8888](https://localhost:8888) -* SQL queries (JDBC): `localhost:10000` -* Spark applications: `localhost:7077` - -------------------------- - -## Tutorials - -### Tutorial 01: Running SparkSQL as a Virtual Database - -_This quick tutorial shows you how to run Spark as a SQL database and connect and run queries using a GUI JDBC-compliant query tool._ - -1. Download the DBeaver SQL application from Chocolatey by clicking here: [choco://dbeaver](choco://dbeaver). - * If you have not yet installed chocolatey, you can install it now from [https://docs.dataops.tk/setup/choco_min.bat](setup/choco_min.bat) or click [here](setup/windows.md) for more information. -2. After installing the DBeaver app, create a new "Spark" connection and connect to `localhost:10000` with a blank username and password. -3. Open a new query window and try executing the following SQL commands: - - ```sql - CREATE DATABASE mydb; - SHOW DATABASES; - USE mydb; - - CREATE TABLE mytable AS - SELECT 4 AS the_answer, CAST(null as string) AS the_question; - - SELECT * FROM mydb.mytable; - - DESCRIBE TABLE mytable; - SHOW TABLES IN mydb; - ``` - -### Tutorial 02: Play an ML-Based Dungeon Adventure Game, on Jupyter - -_This fun tutorial introduces you to Jupyter notebooks by way of an ML-based text adventure game called [AIDungeon_2](https://www.theverge.com/tldr/2019/12/6/20998993/ai-dungeon-2-choose-your-own-adventure)._ - -1. Follow the instructions above to install the `slalom.dataops` Python library. -2. Open the Jupyter Notebook GUI at [https://localhost:8888?token=qwerty123](https://localhost:8888?token=qwerty123) -3. In the new browser window, navigate to the `Samples` directory and open `AIDungeon.ipynb`. -4. Select `Terminal` > `Run all cells...` from the menu options. -5. Wait for the application to initialize and then start your adventure! - -------------------------- - -## Additional Info and FAQ - - - -------------------------- - -### Q. Can I run Spark without the `slalom.dataops` python library? - -A. Yes. If you do not have the python library installed, or if you want additional control over the local docker container, you can run the following command to manually launch the spark cluster using Docker: - -```bash -docker run -it --rm \ - -p 4040:4040 \ - -p 7077:7077 \ - -p 8888:8888 \ - -p 10000:10000 \ - slalomggp/dataops:latest-dev \ - spark start_server --with_jupyter -``` +# [Docs](./README.md) > Spark "Getting Started" Guide + +_This document will walk you through how to quickly get started with local development using Apache Spark._ + +## Prereqs + +Before you proceed, you will need a few things, specifically: Git, Docker, Python, and VS Code. Please use our [Windows Dev Getting Started Guide](setup/windows.md) or using this script: + +* [https://docs.dataops.tk/setup/choco_devops.bat](setup/choco_devops.bat) + +## Launching Spark on your local machine + +The `slalom.dataops` library makes it quick and easy to launch a new spark server: + +1. Install the python library: + + ```bash + pip install --upgrade slalom.dataops + ``` + +2. Launch the spark server: + + ```bash + s-spark start_server --with_jupyter + ``` + +## Connect to the Spark server + +After launching the server, you can connect spark applications using the following server endpoints: + +* Spark Web GUI: [http://localhost:4040](http://localhost:4040) +* Jupyter Web GUI: [https://localhost:8888](https://localhost:8888) +* SQL queries (JDBC): `localhost:10000` +* Spark applications: `localhost:7077` + +------------------------- + +## Tutorials + +### Tutorial 01: Running SparkSQL as a Virtual Database + +_This quick tutorial shows you how to run Spark as a SQL database and connect and run queries using a GUI JDBC-compliant query tool._ + +1. Download the DBeaver SQL application from Chocolatey by clicking here: [choco://dbeaver](choco://dbeaver). + * If you have not yet installed chocolatey, you can install it now from [https://docs.dataops.tk/setup/choco_min.bat](setup/choco_min.bat) or click [here](setup/windows.md) for more information. +2. After installing the DBeaver app, create a new "Spark" connection and connect to `localhost:10000` with a blank username and password. +3. Open a new query window and try executing the following SQL commands: + + ```sql + CREATE DATABASE mydb; + SHOW DATABASES; + USE mydb; + + CREATE TABLE mytable AS + SELECT 4 AS the_answer, CAST(null as string) AS the_question; + + SELECT * FROM mydb.mytable; + + DESCRIBE TABLE mytable; + SHOW TABLES IN mydb; + ``` + +### Tutorial 02: Play an ML-Based Dungeon Adventure Game, on Jupyter + +_This fun tutorial introduces you to Jupyter notebooks by way of an ML-based text adventure game called [AIDungeon_2](https://www.theverge.com/tldr/2019/12/6/20998993/ai-dungeon-2-choose-your-own-adventure)._ + +1. Follow the instructions above to install the `slalom.dataops` Python library. +2. Open the Jupyter Notebook GUI at [https://localhost:8888?token=qwerty123](https://localhost:8888?token=qwerty123) +3. In the new browser window, navigate to the `Samples` directory and open `AIDungeon.ipynb`. +4. Select `Terminal` > `Run all cells...` from the menu options. +5. Wait for the application to initialize and then start your adventure! + +------------------------- + +## Additional Info and FAQ + + + +------------------------- + +### Q. Can I run Spark without the `slalom.dataops` python library? + +A. Yes. If you do not have the python library installed, or if you want additional control over the local docker container, you can run the following command to manually launch the spark cluster using Docker: + +```bash +docker run -it --rm \ + -p 4040:4040 \ + -p 7077:7077 \ + -p 8888:8888 \ + -p 10000:10000 \ + slalomggp/dataops:latest-dev \ + spark start_server --with_jupyter +``` diff --git a/infra_catalog.md b/infra_catalog.md index 16f7381..2a0dd8e 100644 --- a/infra_catalog.md +++ b/infra_catalog.md @@ -1,26 +1,26 @@ -# [Docs](./README.md) > Infrastructure Catalog Guide - -_**NOTE:** This is an early preview of the D&A Infrastucture catalog. Additional components and capabilities will be released in the coming weeks and months._ - -## Install prereqs - -1. Visit the QuickStart for [Mac](setup/mac.md) or [Windows](setup/windows.md) to get your machine setup with Python, Terraform, and VS Code. -2. Install the Slalom DataOps tools library: `pip install slalom.dataops` - -## Getting started from the project template - -1. Create a new repo from [`dataops-project-template`](https://github.com/slalom-ggp/dataops-project-template). -2. Add the following environment variable secrets in the new GitHub repo's settings: `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` -3. Customize the files in the `infra` folder to meet your needs, optionally deleting or disabling any components you don't need. - -## Getting started from scratch - -1. Create aws prereqs `s-infra install catalog:aws-prereqs --infra_dir=infra/prereqs --deploy=True` - - You will be prompted to create an AWS account and to enter the associated credentials. These credentials will be saved in the file `~/.aws/credentials`, under a new profile called `terraform`. -2. Install AWS starter samples `s-infra install samples:aws --infra_dir=infra`. -3. Navigate to the `infra` folder and run `terraform apply`. - -## Related Links - -- **Infra Catalog**: [slalom-ggp/dataops-infra](https://github.com/slalom-ggp/dataops-infra) -- **Template Project**: [slalom-ggp/dataops-project-template](https://github.com/slalom-ggp/dataops-project-template) +# [Docs](./README.md) > Infrastructure Catalog Guide + +_**NOTE:** This is an early preview of the D&A Infrastucture catalog. Additional components and capabilities will be released in the coming weeks and months._ + +## Install prereqs + +1. Visit the QuickStart for [Mac](setup/mac.md) or [Windows](setup/windows.md) to get your machine setup with Python, Terraform, and VS Code. +2. Install the Slalom DataOps tools library: `pip install slalom.dataops` + +## Getting started from the project template + +1. Create a new repo from [`dataops-project-template`](https://github.com/slalom-ggp/dataops-project-template). +2. Add the following environment variable secrets in the new GitHub repo's settings: `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` +3. Customize the files in the `infra` folder to meet your needs, optionally deleting or disabling any components you don't need. + +## Getting started from scratch + +1. Create aws prereqs `s-infra install catalog:aws-prereqs --infra_dir=infra/prereqs --deploy=True` + - You will be prompted to create an AWS account and to enter the associated credentials. These credentials will be saved in the file `~/.aws/credentials`, under a new profile called `terraform`. +2. Install AWS starter samples `s-infra install samples:aws --infra_dir=infra`. +3. Navigate to the `infra` folder and run `terraform apply`. + +## Related Links + +- **Infra Catalog**: [slalom-ggp/dataops-infra](https://github.com/slalom-ggp/dataops-infra) +- **Template Project**: [slalom-ggp/dataops-project-template](https://github.com/slalom-ggp/dataops-project-template) diff --git a/integrations/README.md b/integrations/README.md index 17efe0d..64e84e2 100644 --- a/integrations/README.md +++ b/integrations/README.md @@ -1,5 +1,5 @@ -# [Docs](../README.md) > Data Integration Guides - -Listed in alphabetical order: - -1. [Workday](workday.md) +# [Docs](../README.md) > Data Integration Guides + +Listed in alphabetical order: + +1. [Workday](workday.md) diff --git a/integrations/workday.md b/integrations/workday.md index 5b6c75d..2b8dbff 100644 --- a/integrations/workday.md +++ b/integrations/workday.md @@ -1,40 +1,40 @@ -# [Docs](../README.md) > [Integrations](./README.md) > Workday Data Integration Guide - -This guide will explain the various options for securely extracting data from Workday. - -## Platform Overview - -1. Workday supports two primary methods of data extraction: "Report-as-a-Service" or "RaaS" (recommended) and "Core Integrations". The Core Integrations are more generally more technical and may require additional admin permissions on Workday. RaaS integrations are easy to setup and do not necessarily require admin permissions. -2. To create a RaaS, simply create a report as usual and check the checkbox to enable that report as a RaaS. -3. Workday includes a module called "Enterprise Integration Builder" or "EIB". The EIB tool makes it easy to push data from a RaaS report into one of a small number of integration targets, including: FTP, SFTP, and S3. -4. The Workday EIB tool allows you to easily protect data using PGP encryption before pushing it to the specified target location. The encryption option is configurable by stepping through the EIB wizard, and it applies to all of the EIB options described below. -5. As a general best practice, you may optionally want to change the owner of the Workday report and/or the EIB process to a systems integration account, rather than running under a personal user account. - -## Export Options - -**_Note:_** - -* _EIB is generally preferred over API access, since direct pulls from the API require significant coding effort. Pulling from APIs requires direct permissions into the Workday system._ - -### Option A - EIB Push to SFTP (Recommended for Azure Environments) - -The recommended option for Azure environments is to push data into an SFTP site. Files can optionally be secured with PGP encryption prior to sending. - -### Option B - EIB Push to S3 (Recommended for AWS Environments) - -The recommended option for AWS environments is to push data into an S3 bucket.This file can optionally be secured with PGP encryption prior to sending. - -### Option C - Pull via Workday API - -After registering a report as a RaaS endpoint, you can then pull from that report using custom code which connects to the REST or SOAP APIs. - -## Additional Info - -### Standard Disclaimer - -_**Note:** Any "recommended" options are recommended solely by the author and come with no guarantees. If you know a better way, or if you have a suggestion to improve this page, please [create a pull request](/CONTRIBUTING.md)."_ - -### Additional Links - -* [Using Workday RaaS to Extract Data](https://community.snaplogic.com/t/using-workday-raas-to-extract-data/176) -* [AWS Hosted SFTP Service](https://aws.amazon.com/sftp/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc) +# [Docs](../README.md) > [Integrations](./README.md) > Workday Data Integration Guide + +This guide will explain the various options for securely extracting data from Workday. + +## Platform Overview + +1. Workday supports two primary methods of data extraction: "Report-as-a-Service" or "RaaS" (recommended) and "Core Integrations". The Core Integrations are more generally more technical and may require additional admin permissions on Workday. RaaS integrations are easy to setup and do not necessarily require admin permissions. +2. To create a RaaS, simply create a report as usual and check the checkbox to enable that report as a RaaS. +3. Workday includes a module called "Enterprise Integration Builder" or "EIB". The EIB tool makes it easy to push data from a RaaS report into one of a small number of integration targets, including: FTP, SFTP, and S3. +4. The Workday EIB tool allows you to easily protect data using PGP encryption before pushing it to the specified target location. The encryption option is configurable by stepping through the EIB wizard, and it applies to all of the EIB options described below. +5. As a general best practice, you may optionally want to change the owner of the Workday report and/or the EIB process to a systems integration account, rather than running under a personal user account. + +## Export Options + +**_Note:_** + +* _EIB is generally preferred over API access, since direct pulls from the API require significant coding effort. Pulling from APIs requires direct permissions into the Workday system._ + +### Option A - EIB Push to SFTP (Recommended for Azure Environments) + +The recommended option for Azure environments is to push data into an SFTP site. Files can optionally be secured with PGP encryption prior to sending. + +### Option B - EIB Push to S3 (Recommended for AWS Environments) + +The recommended option for AWS environments is to push data into an S3 bucket.This file can optionally be secured with PGP encryption prior to sending. + +### Option C - Pull via Workday API + +After registering a report as a RaaS endpoint, you can then pull from that report using custom code which connects to the REST or SOAP APIs. + +## Additional Info + +### Standard Disclaimer + +_**Note:** Any "recommended" options are recommended solely by the author and come with no guarantees. If you know a better way, or if you have a suggestion to improve this page, please [create a pull request](/CONTRIBUTING.md)."_ + +### Additional Links + +* [Using Workday RaaS to Extract Data](https://community.snaplogic.com/t/using-workday-raas-to-extract-data/176) +* [AWS Hosted SFTP Service](https://aws.amazon.com/sftp/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc) diff --git a/lab.html b/lab.html index addc229..2abf54e 100644 --- a/lab.html +++ b/lab.html @@ -1,11 +1,11 @@ - - - - - + + + + + \ No newline at end of file diff --git a/labs/cicd-graduates.md b/labs/cicd-graduates.md index 4e75308..52de61a 100644 --- a/labs/cicd-graduates.md +++ b/labs/cicd-graduates.md @@ -1,13 +1,14 @@ -# `Into to CI/CD` - Lab Graduates - -The GitHub users below ***killed it*** on their [CI/CD lab](intro.md)! 😎 - -[//]: # (Add your username below, in alphabetical order to prevent conflicts and duplication.) - -- @aaronsteers - -## Commence the celebration! - -[//]: # (Psst - feel free to add more art or GIFs here if you are so inclined!) - -![gif](resources/congrats01.gif) +# `Into to CI/CD` - Lab Graduates + +The GitHub users below ***killed it*** on their [CI/CD lab](intro.md)! 😎 + +[//]: # (Add your username below, in alphabetical order to prevent conflicts and duplication.) + +- @aaronsteers +- Jo Mahoney +TK +## Commence the celebration! + +[//]: # (Psst - feel free to add more art or GIFs here if you are so inclined!) + +![gif](resources/congrats01.gif) diff --git a/labs/data-lake.md b/labs/data-lake.md index 0f96bf3..b5d9fc3 100644 --- a/labs/data-lake.md +++ b/labs/data-lake.md @@ -1,61 +1,61 @@ -# [Docs](../README.md) > [Labs](./index.md) > **IAC Intro - Deploying a Data Lake on AWS** - -`A Slalom DataOps Lab` - -> _**WARNING: Lab Still Under Construction**_ - -## Lab Objectives - -- Create a new repository from a sample template repo which already exists. -- Clone and open the new repository on your local workstation. -- Customize the infrastructure and add credentials as needed. -- Use `terraform apply` to deploy the data lake data lake, the VPC, and public/private subnets - -## Setup - -- one-time setup: - - Installed software: - - `choco install vscode python3 docker awscli github-desktop` - - `choco install git.install --params "/GitOnlyOnPath /SChannel /NoAutoCrlf /WindowsTerminal"` -- environment setup (each time): - - Open browser tabs: - - the lab checklist (this page) - - [linux academy](https://app.linuxacademy.com/dashboard) - - [slalom-ggp/dataops-project-template](https://github.com/slalom-ggp/dataops-project-template) - -## Lab Steps - -### Step 1: Create Repo and AWS Account - -- [ ] Create new repo from the [Slalom DataOps Template](https://github.com/slalom-ggp/dataops-project-template), clone repo locally and open in VS Code (60s) -- [ ] Get AWS credentials from Linux Academy (30s) -- [ ] Use the linux-academy link to log in to AWS in the web browser (30s) - -### Step 2: Configure Creds - -- [ ] In the `.secrets` folder, rename `credentials.template` to `.secrets/credentials`, copy-paste credentials into file (30s) -- [ ] In the `.secrets` folder, rename `aws-secrets-manager-secrets.yml.template` to `aws-secrets-manager-secrets.yml` (no addl. secrets needed in this exercise) (30s) - -### Step 3: Configure Project - -- [ ] Rename `infra-config-template.yml` to `infra-config.yml` - update email address and project shortname (30s) - -### Step 4: Configure and Deploy Terraform - -- [ ] Open the `infra` folder, review each file (90s) - - [ ] Delete the `data-build-tool.tf` file and the `singer-taps.tf` file. -- [ ] Run `terraform init` and `terraform apply`, type 'yes' (30s) -- [ ] Wait for `terraform apply` to complete (2m) - - [ ] Switch to the `git` tab, review code changes while apply is running - -### Step 5: Confirm resource creation - -- [ ] Copy-paste and run the provided `AWS User Switch` command so aws-cli can locate our AWS credentials (30s) -- [ ] Upload infra-config.yml to the data bucket: `aws s3 cp ../infra-config.yml s3://...` (30s) -- [ ] List the bucket contents with `aws s3 ls s3://...` (30s) -- [ ] In the web browser, browse to the bucket and confirm the file has landed. (30s) -- [ ] Stop the time once the transfer is successfully confirmed. _**(DONE!)**_ - -## See Also - -- [Original Lab Text](https://github.com/slalom-ggp/dataops-infra/issues/85) +# [Docs](../README.md) > [Labs](./index.md) > **IAC Intro - Deploying a Data Lake on AWS** + +`A Slalom DataOps Lab` + +> _**WARNING: Lab Still Under Construction**_ + +## Lab Objectives + +- Create a new repository from a sample template repo which already exists. +- Clone and open the new repository on your local workstation. +- Customize the infrastructure and add credentials as needed. +- Use `terraform apply` to deploy the data lake data lake, the VPC, and public/private subnets + +## Setup + +- one-time setup: + - Installed software: + - `choco install vscode python3 docker awscli github-desktop` + - `choco install git.install --params "/GitOnlyOnPath /SChannel /NoAutoCrlf /WindowsTerminal"` +- environment setup (each time): + - Open browser tabs: + - the lab checklist (this page) + - [linux academy](https://app.linuxacademy.com/dashboard) + - [slalom-ggp/dataops-project-template](https://github.com/slalom-ggp/dataops-project-template) + +## Lab Steps + +### Step 1: Create Repo and AWS Account + +- [ ] Create new repo from the [Slalom DataOps Template](https://github.com/slalom-ggp/dataops-project-template), clone repo locally and open in VS Code (60s) +- [ ] Get AWS credentials from Linux Academy (30s) +- [ ] Use the linux-academy link to log in to AWS in the web browser (30s) + +### Step 2: Configure Creds + +- [ ] In the `.secrets` folder, rename `credentials.template` to `.secrets/credentials`, copy-paste credentials into file (30s) +- [ ] In the `.secrets` folder, rename `aws-secrets-manager-secrets.yml.template` to `aws-secrets-manager-secrets.yml` (no addl. secrets needed in this exercise) (30s) + +### Step 3: Configure Project + +- [ ] Rename `infra-config-template.yml` to `infra-config.yml` - update email address and project shortname (30s) + +### Step 4: Configure and Deploy Terraform + +- [ ] Open the `infra` folder, review each file (90s) + - [ ] Delete the `data-build-tool.tf` file and the `singer-taps.tf` file. +- [ ] Run `terraform init` and `terraform apply`, type 'yes' (30s) +- [ ] Wait for `terraform apply` to complete (2m) + - [ ] Switch to the `git` tab, review code changes while apply is running + +### Step 5: Confirm resource creation + +- [ ] Copy-paste and run the provided `AWS User Switch` command so aws-cli can locate our AWS credentials (30s) +- [ ] Upload infra-config.yml to the data bucket: `aws s3 cp ../infra-config.yml s3://...` (30s) +- [ ] List the bucket contents with `aws s3 ls s3://...` (30s) +- [ ] In the web browser, browse to the bucket and confirm the file has landed. (30s) +- [ ] Stop the time once the transfer is successfully confirmed. _**(DONE!)**_ + +## See Also + +- [Original Lab Text](https://github.com/slalom-ggp/dataops-infra/issues/85) diff --git a/labs/dbt-transforms.md b/labs/dbt-transforms.md index 5978483..8ff90bd 100644 --- a/labs/dbt-transforms.md +++ b/labs/dbt-transforms.md @@ -1,81 +1,81 @@ -# [Docs](../README.md) > [Labs](./index.md) > **Use CI/CD and DBT to Deploy a Transformation Pipeline** - -`A Slalom DataOps Lab` - -> _**WARNING: Lab Still Under Construction**_ - -## Prep and Prereqs - -* **Prep:** For this lab, you'll need: - 1. [Installed DevOps Tools](../setup/index.html): - * VS Code, Python, Docker, and Terraform - 2. [A GitHub account](./intro.md) -* **Prereqs:** - * This module starts off where the previous module ended. To get caught up, go to the - [previous lab](rds-database.md) or go back to the [main labs page](./index.md). - -## Lab Steps - -### Step 1: Add DBT infrastructure config - -From the [DBT Module Sample](https://github.com/slalom-ggp/dataops-infra/blob/master/samples/dbt-and-singer-on-aws/03_data-build-tool.tf): - -```tf -module "dbt_on_aws" { - # BOILERPLATE HEADER (NO NEED TO CHANGE): - source = "git::https://github.com/slalom-ggp/dataops-infra.git//catalog/aws/dbt?ref=master" - name_prefix = local.name_prefix - environment = module.env.environment - resource_tags = local.resource_tags - - # ADD OR MODIFY CONFIGURATION HERE: - - container_image = "slalomggp/dataops:test-project-latest-dev" - dbt_run_command = "./gradlew dbtSeed dbtCompile dbtRun" - scheduled_timezone = "PST" - scheduled_refresh_times = ["0300", "1200", "1800"] - environment_vars = {} - - /* OPTIONALLY, COPY-PASTE ADDITIONAL SETTINGS FROM BELOW: - - scheduled_refresh_interval = "1 minute" - - */ -} - -# BOILERPLATE OUTPUT (NO NEED TO CHANGE): -output "dbt_summary" { value = module.dbt_on_aws.summary } -``` - -### Step 2: Add some transforms - -Create a new file with the SQL Transform logic: - -`data/transforms/my-project/new_table.sql`: - -```sql -SELECT - cast(1 as int) AS ColA - , cast('A' as varchar (20)) AS ColB -UNION ALL -SELECT - cast(2 as int) AS ColA - , cast('B' as varchar (20)) AS ColB -UNION ALL -SELECT - cast(3 as int) AS ColA - , cast('C' as varchar (20)) AS ColB -``` - -### Step 3: Run the transform pipeline - -1. Run `terraform output` in a terminal window. -2. Copy-Paste and run the DBT run command. - -### Step 4: Configure and Test CI/CD - -1. Rename all files at `.github/workflows/*.template`, removing the `.template` suffix. -2. Commit and push your code. -3. Navigate to your project in GitHub and click the "Actions" tab. -4. Monitor each CI/CD task, noting which are successful and which have errors. -5. Open and debug any errors you see in the Actions CI/CD log. +# [Docs](../README.md) > [Labs](./index.md) > **Use CI/CD and DBT to Deploy a Transformation Pipeline** + +`A Slalom DataOps Lab` + +> _**WARNING: Lab Still Under Construction**_ + +## Prep and Prereqs + +* **Prep:** For this lab, you'll need: + 1. [Installed DevOps Tools](../setup/index.html): + * VS Code, Python, Docker, and Terraform + 2. [A GitHub account](./intro.md) +* **Prereqs:** + * This module starts off where the previous module ended. To get caught up, go to the + [previous lab](rds-database.md) or go back to the [main labs page](./index.md). + +## Lab Steps + +### Step 1: Add DBT infrastructure config + +From the [DBT Module Sample](https://github.com/slalom-ggp/dataops-infra/blob/master/samples/dbt-and-singer-on-aws/03_data-build-tool.tf): + +```tf +module "dbt_on_aws" { + # BOILERPLATE HEADER (NO NEED TO CHANGE): + source = "git::https://github.com/slalom-ggp/dataops-infra.git//catalog/aws/dbt?ref=master" + name_prefix = local.name_prefix + environment = module.env.environment + resource_tags = local.resource_tags + + # ADD OR MODIFY CONFIGURATION HERE: + + container_image = "slalomggp/dataops:test-project-latest-dev" + dbt_run_command = "./gradlew dbtSeed dbtCompile dbtRun" + scheduled_timezone = "PST" + scheduled_refresh_times = ["0300", "1200", "1800"] + environment_vars = {} + + /* OPTIONALLY, COPY-PASTE ADDITIONAL SETTINGS FROM BELOW: + + scheduled_refresh_interval = "1 minute" + + */ +} + +# BOILERPLATE OUTPUT (NO NEED TO CHANGE): +output "dbt_summary" { value = module.dbt_on_aws.summary } +``` + +### Step 2: Add some transforms + +Create a new file with the SQL Transform logic: + +`data/transforms/my-project/new_table.sql`: + +```sql +SELECT + cast(1 as int) AS ColA + , cast('A' as varchar (20)) AS ColB +UNION ALL +SELECT + cast(2 as int) AS ColA + , cast('B' as varchar (20)) AS ColB +UNION ALL +SELECT + cast(3 as int) AS ColA + , cast('C' as varchar (20)) AS ColB +``` + +### Step 3: Run the transform pipeline + +1. Run `terraform output` in a terminal window. +2. Copy-Paste and run the DBT run command. + +### Step 4: Configure and Test CI/CD + +1. Rename all files at `.github/workflows/*.template`, removing the `.template` suffix. +2. Commit and push your code. +3. Navigate to your project in GitHub and click the "Actions" tab. +4. Monitor each CI/CD task, noting which are successful and which have errors. +5. Open and debug any errors you see in the Actions CI/CD log. diff --git a/labs/extracts-as-code.md b/labs/extracts-as-code.md index bd4d7e0..352c5f2 100644 --- a/labs/extracts-as-code.md +++ b/labs/extracts-as-code.md @@ -1,26 +1,26 @@ -# [Docs](../README.md) > [Labs](./index.md) > **Extracts-as-Code - Populate the data Lake with an open source pipeline** - -`A Slalom DataOps Lab` - -> _**WARNING: Lab Still Under Construction**_ - -## Step 1: Configure Extracts - -- [ ] Copy Pardot credentials file (`tap-pardot-config.json`) to the `data/taps/.secrets` folder (15s) -- [ ] Open `data/taps/data.select`, delete Salesforce refs, update rules to include all columns on Pardot `accounts` and `opportunities` (45s) -- [ ] Install dataops tools: `pip3 install slalom.dataops` (15s) -- [ ] Run `s-tap plan pardot` to update Pardot extract plan (15s) -- [ ] Review the updated plan file (30s) - -## Step 2: Run a Sync Test - -- [ ] Switch to `git` tab, browse through all changes (30s) -- [ ] Copy-paste and run the provided `AWS User Switch` command so aws-cli can locate our credentials (15s) -- [ ] Copy-paste and run the provided `Sync command` to execute the Pardot sync in ECS (60s) -- [ ] Click on the provided `Logging URL` link to open Cloudwatch logs in a browser (15s) -- [ ] Wait for the ECS task to start (1-2m) -- [ ] Stop the timer once rows are extracted _**(DONE!)**_ - -## See Also - -- [Original Lab Text](https://github.com/slalom-ggp/dataops-infra/issues/86) +# [Docs](../README.md) > [Labs](./index.md) > **Extracts-as-Code - Populate the data Lake with an open source pipeline** + +`A Slalom DataOps Lab` + +> _**WARNING: Lab Still Under Construction**_ + +## Step 1: Configure Extracts + +- [ ] Copy Pardot credentials file (`tap-pardot-config.json`) to the `data/taps/.secrets` folder (15s) +- [ ] Open `data/taps/data.select`, delete Salesforce refs, update rules to include all columns on Pardot `accounts` and `opportunities` (45s) +- [ ] Install dataops tools: `pip3 install slalom.dataops` (15s) +- [ ] Run `s-tap plan pardot` to update Pardot extract plan (15s) +- [ ] Review the updated plan file (30s) + +## Step 2: Run a Sync Test + +- [ ] Switch to `git` tab, browse through all changes (30s) +- [ ] Copy-paste and run the provided `AWS User Switch` command so aws-cli can locate our credentials (15s) +- [ ] Copy-paste and run the provided `Sync command` to execute the Pardot sync in ECS (60s) +- [ ] Click on the provided `Logging URL` link to open Cloudwatch logs in a browser (15s) +- [ ] Wait for the ECS task to start (1-2m) +- [ ] Stop the timer once rows are extracted _**(DONE!)**_ + +## See Also + +- [Original Lab Text](https://github.com/slalom-ggp/dataops-infra/issues/86) diff --git a/labs/index.md b/labs/index.md index f21c641..49746bd 100644 --- a/labs/index.md +++ b/labs/index.md @@ -1,20 +1,20 @@ -# [Docs](../README.md) > Slalom DataOps Labs - -1. [DataOps Tools QuickStart](../setup/index.html) - * **Duration:** _30m_ - * **Description:** _Quickly configure your local workstation with all the tools you will need._ -2. [DevOps Intro](./intro.md) - * **Duration:** _20m_ - * **Description:** _Learn GitHub and CI/CD by directly updating this website._ -3. [IAC Intro - Deploying a Data Lake on AWS](./data-lake.md) - * **Duration:** _30m_ - * **Description:** _Learn Terraform and IAC while deploying a data lake in AWS._ -4. [Extracts-as-Code - Populate the data Lake with an open source pipeline](./extracts-as-code.md) - * **Duration:** _45m_ - * **Description:** _Learn to manage secrets while building a fully automated data pipeline using 100% open source tools._ -5. [Deploy a Managed Database on RDS](./rds-database.md) - * **Duration:** _30m_ - * **Description:** _Expanding on the previous labs, deploy a data lake, a relational database, and a fully-automated data pipeline._ -6. [Use CI/CD and DBT to Deploy a Transformation Pipeline](./dbt-transforms.md) - * **Duration:** _45m_ - * **Description:** _Expanding on the previous labs, deploy a data transformation pipeline using CI/CD._ +# [Docs](../README.md) > Slalom DataOps Labs + +1. [DataOps Tools QuickStart](../setup/index.html) + * **Duration:** _30m_ + * **Description:** _Quickly configure your local workstation with all the tools you will need._ +2. [DevOps Intro](./intro.md) + * **Duration:** _20m_ + * **Description:** _Learn GitHub and CI/CD by directly updating this website._ +3. [IAC Intro - Deploying a Data Lake on AWS](./data-lake.md) + * **Duration:** _30m_ + * **Description:** _Learn Terraform and IAC while deploying a data lake in AWS._ +4. [Extracts-as-Code - Populate the data Lake with an open source pipeline](./extracts-as-code.md) + * **Duration:** _45m_ + * **Description:** _Learn to manage secrets while building a fully automated data pipeline using 100% open source tools._ +5. [Deploy a Managed Database on RDS](./rds-database.md) + * **Duration:** _30m_ + * **Description:** _Expanding on the previous labs, deploy a data lake, a relational database, and a fully-automated data pipeline._ +6. [Use CI/CD and DBT to Deploy a Transformation Pipeline](./dbt-transforms.md) + * **Duration:** _45m_ + * **Description:** _Expanding on the previous labs, deploy a data transformation pipeline using CI/CD._ diff --git a/labs/intro.md b/labs/intro.md index 03ceba2..19e9363 100644 --- a/labs/intro.md +++ b/labs/intro.md @@ -1,137 +1,136 @@ -# [Docs](../README.md) > [Labs](./index.md) > **Intro to DevOps Lab** - -_Learn GitHub and CI/CD by directly updating this website._ - -`A Slalom DataOps Lab` - -> _**WARNING: Lab Still Under Construction**_ - -**Table of Contents:** - -1. [Install Prereqs](#install-prereqs) - 1. [Overview](#overview) - 2. [How-To](#how-to) -2. [Fork your own personal copy of the repo](#fork-your-own-personal-copy-of-the-repo) -3. [Clone your forked repo and open it in VS Code](#clone-your-forked-repo-and-open-it-in-vs-code) -4. [Create a new branch](#create-a-new-branch) -5. [Now... Make some changes!](#now-make-some-changes) - 1. [What will you change?](#what-will-you-change) -6. [Extra Credit](#extra-credit) -7. [Commit your changes](#commit-your-changes) -8. [Create a PR (Pull Request)](#create-a-pr-pull-request) -9. [Wait for your PR to be approved and merged](#wait-for-your-pr-to-be-approved-and-merged) - -## Install Prereqs - -### Overview - -To complete this lab, you will at least need the following components installed on your local machine: - -- VS Code -- Git -- GitHub Desktop - -_TIP: If you have not yet installed these, please visit the [DevOps QuickStart page](../setup/index.html) for automated installation instructions._ - -### How-To - -1. To install these on your local workstation, follow the instructions located at the following links: - -- Mac OSX: [docs.dataops.tk/brew](https://docs.dataops.tk/brew) -- Windows: [docs.dataops.tk/choco](https://docs.dataops.tk/choco) - -## Fork your own personal copy of the repo - -**Understanding Forks and Pull Requests:** - -- **Forks** - A "fork" of a repo is a full and complete copy of the upstream code, which we can then safely update without affecting the original. The original upstream repo, called the "upstream" for short, will not be affected by any of our changes in the fork. We do not require any special permissions on a repo in order to fork it. -- **Pull Requests** - Once we are done with our changes we can optionally send a Pull Request to the upstream repo, requesting the owners to "pull" our changes into their repo. - -**Creating a personal fork:** - -1. In a new browser tab, navigate to the GitHub repository: [https://github.com/slalom-ggp/dataops-docs](https://github.com/slalom-ggp/dataops-docs). -2. At the top-right of the page, click "Fork". - - _If asked where to create the new fork, select your GitHub to create your own personal copy._ - -## Clone your forked repo and open it in VS Code - -1. Navigate to your new personal fork (`https://github.com//dataops-docs`) in GitHub and select `Clone or Download` > `Open in Desktop`. - - _**Do not** select `Download Zip`, as this will not register your repo properly with git._ -2. Follow the wizard to clone the repo to your local machine. If this is the first time you've used GitHub Desktop, you might want to override the default clone location. - - Recommended source code root location on Windows is `c:\Source`. -3. Open your newly cloned `dataops-docs` folder in VS Code. You should see an `Open in VS Code` option in **GitHub Desktop**, but if not, you can also open **VS Code** directly and select `Open Folder`. -4. The first time you open the repo, VS Code should prompt you to install recommended plugins (aka "extensions"). Review the recommendations and then install each one. These add recommended functionality to VS Code for this project, each developer has similar user interface and similar development experience. -5. To test the markdown preview feature, open any file ending in `.md` and look on the right hand side for the preview window. If you don't see a preview, click the magnifying glass at the top right of the file pane. - - If you still are not able to preview the Markdown, try going back to step 4 (recommended plugins) or just search VS Code extensions for "Markdown" and install the top result. - -## Create a new branch - -1. Within VS Code, press `ctl+shift+p` (Windows) or `cmd+shift+p` (Mac) to open the command pallete. This gives you a long list of available commands, with recommended and recently-used commands at top of the list. -2. In the command prompt, type `create branch` and then select the option entitled `Git: create branch...`. -3. Give your branch a name. For example, how about `janesmith-cool-new-updates`? - -## Now... Make some changes! - -_You are now ready to make your own changes to the code of this website. Go ahead and make changes to any files you want. Remember to save them and use the preview feature to see if the result looks like you expected. When you are done, go ahead to the next step._ - -> **Tip:** The vast majority of software documentation runs on a text formatting language called "markdown" - which is a lightweight, easy-to-read way to add formatting to plain text. If you aren't familiar with Markdown, or if it's been a while, there's a helpful Markdown CheatSheet [here](https://res.cloudinary.com/practicaldev/image/fetch/s--2rTn_7XO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5zhubbpov3m3ly9a1t9c.png). - -### What will you change? - -Will you engage your creativity, share your favorite app, or fix something that bugged you? The choice is yours! To complete this lab, make any change at all that makes this site better. No change is too small: add a single line, fix a single typo, or update an out of place character - these are all fantastic additions. - -_Here are some options of changes you can submit:_ - -#### Option 1. Add your favorite software packages _(Recommended!)_ - -Everyone has a favorite app! What could you add to the package lists on the [Mac](../setup/mac.md) or [Windows](../setup/windows.md) QuickStart pages to make them even more awesome for the next round of students? - -#### Option 2. Add your own username to the list of lab graduates - -Optionally, either in addition to or in place of other updates, why not add your GitHub username to the [cicd-graduates](cicd-graduates.md) page?! A small piece of immortality in exchange for only a few minutes' effort... - -#### Option 3. Make this lab better! - -Everything on docs.dataops.tk is auto-published from this repo. How about submitting... - -1. Typo corrections or other fixes. -2. Complicated explanations which you can make simpler. -3. Missing explanations that you can provide. - -#### Option 4. Add or modify any content on [docs.dataops.tk](https://docs.dataops.tk) - -Everything on docs.dataops.tk is auto-published from this repo. How about submitting... - -1. New or updated content. -2. Links to to external sites. -3. Cooler graphics or gifs? - -## Extra Credit - -**Want to see what happens when the CI/CD tests fail?** - -As an experiment, try committing a change with the uppercase text "TK" anywhere on a markdown page. The text "[TK](https://en.wikipedia.org/wiki/To_come_(publishing))" is short for "to come" in the publishing world, and it serves like a "To-Do" marker which signals that your page is not yet ready to publish. - -If the CI/CD engine finds this text anywhere in your change, it will fail tests and prevent your code from being merged. The same type of CI/CD failure would occur if you try to include a broken URL or a bad web link. - -*👉 Just don't forget to remove the "TK" text afterwards so your PR does not stay blocked!* - -## Commit your changes - -1. Press `Ctrl+Shift+G` to move to the source control view in the left hand pane. -2. In the 'Message' box, provide a short description and then click the check icon to commit your change. -3. Finally, push your branch containing the new changes to git using the `Push` option in the drop-down menu. - -## Create a PR (Pull Request) - -A pull request tells the repo maintainers that you are ready for them to review your proposed changes. - -> TIP: The name "pull request" comes from the fact that we often do not have permissions to "push" code to a production site. Instead, we send the maintainers of the repo a request that they "pull" our changes into their main branch. The pull request ("PR" for short) will only be merged into production if the maintainers decide to accept our changes and merge our changes into the main branch. The process of merging in our code is fully automated - the maintainers simply need to click on a button in GitHub to approve and merge the PR changes. - -1. Return to the browser window and navigate to: [github.com/slalom-ggp/dataops-docs/pulls](https://github.com/slalom-ggp/dataops-docs/pulls) -2. Select "New Pull Request" and follow the prompts to submit your proposed changes in a new PR. -3. Find the 'Checks' tab and confirm that all your tests have completed successfully. If needed, return to VS Code and push a new commit to fix any issues. - -## Wait for your PR to be approved and merged - -Once your PR is approved, the code will be automatically merged into master and released into the production website. +# [Docs](../README.md) > [Labs](./index.md) > **Intro to DevOps Lab** + +_Learn GitHub and CI/CD by directly updating this website._ + +`A Slalom DataOps Lab` + +> _**WARNING: Lab Still Under Construction**_ + +**Table of Contents:** + +1. [Install Prereqs](#install-prereqs) + 1. [Overview](#overview) + 2. [How-To](#how-to) +2. [Fork your own personal copy of the repo](#fork-your-own-personal-copy-of-the-repo) +3. [Clone your forked repo and open it in VS Code](#clone-your-forked-repo-and-open-it-in-vs-code) +4. [Create a new branch](#create-a-new-branch) +5. [Now... Make some changes!](#now-make-some-changes) [What will you change?](#what-will-you-change) +6. [Extra Credit](#extra-credit) +7. [Commit your changes](#commit-your-changes) +8. [Create a PR (Pull Request)](#create-a-pr-pull-request) +9. [Wait for your PR to be approved and merged](#wait-for-your-pr-to-be-approved-and-merged) + +## Install Prereqs + +### Overview + +To complete this lab, you will at least need the following components installed on your local machine: + +- VS Code +- Git +- GitHub Desktop + +_TIP: If you have not yet installed these, please visit the [DevOps QuickStart page](../setup/index.html) for automated installation instructions._ + +### How-To + +1. To install these on your local workstation, follow the instructions located at the following links: + +- Mac OSX: [docs.dataops.tk/brew](https://docs.dataops.tk/brew) +- Windows: [docs.dataops.tk/choco](https://docs.dataops.tk/choco) + +## Fork your own personal copy of the repo + +**Understanding Forks and Pull Requests:** + +- **Forks** - A "fork" of a repo is a full and complete copy of the upstream code, which we can then safely update without affecting the original. The original upstream repo, called the "upstream" for short, will not be affected by any of our changes in the fork. We do not require any special permissions on a repo in order to fork it. +- **Pull Requests** - Once we are done with our changes we can optionally send a Pull Request to the upstream repo, requesting the owners to "pull" our changes into their repo. + +**Creating a personal fork:** + +1. In a new browser tab, navigate to the GitHub repository: [https://github.com/slalom-ggp/dataops-docs](https://github.com/slalom-ggp/dataops-docs). +2. At the top-right of the page, click "Fork". + - _If asked where to create the new fork, select your GitHub to create your own personal copy._ + +## Clone your forked repo and open it in VS Code + +1. Navigate to your new personal fork (`https://github.com//dataops-docs`) in GitHub and select `Clone or Download` > `Open in Desktop`. + - _**Do not** select `Download Zip`, as this will not register your repo properly with git._ +2. Follow the wizard to clone the repo to your local machine. If this is the first time you've used GitHub Desktop, you might want to override the default clone location. + - Recommended source code root location on Windows is `c:\Source`. +3. Open your newly cloned `dataops-docs` folder in VS Code. You should see an `Open in VS Code` option in **GitHub Desktop**, but if not, you can also open **VS Code** directly and select `Open Folder`. +4. The first time you open the repo, VS Code should prompt you to install recommended plugins (aka "extensions"). Review the recommendations and then install each one. These add recommended functionality to VS Code for this project, each developer has similar user interface and similar development experience. +5. To test the markdown preview feature, open any file ending in `.md` and look on the right hand side for the preview window. If you don't see a preview, click the magnifying glass at the top right of the file pane. + - If you still are not able to preview the Markdown, try going back to step 4 (recommended plugins) or just search VS Code extensions for "Markdown" and install the top result. + +## Create a new branch + +1. Within VS Code, press `ctl+shift+p` (Windows) or `cmd+shift+p` (Mac) to open the command pallete. This gives you a long list of available commands, with recommended and recently-used commands at top of the list. +2. In the command prompt, type `create branch` and then select the option entitled `Git: create branch...`. +3. Give your branch a name. For example, how about `janesmith-cool-new-updates`? + +## Now... Make some changes! + +_You are now ready to make your own changes to the code of this website. Go ahead and make changes to any files you want. Remember to save them and use the preview feature to see if the result looks like you expected. When you are done, go ahead to the next step._ + +> **Tip:** The vast majority of software documentation runs on a text formatting language called "markdown" - which is a lightweight, easy-to-read way to add formatting to plain text. If you aren't familiar with Markdown, or if it's been a while, there's a helpful Markdown CheatSheet [here](https://res.cloudinary.com/practicaldev/image/fetch/s--2rTn_7XO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5zhubbpov3m3ly9a1t9c.png). + +### What will you change? + +Will you engage your creativity, share your favorite app, or fix something that bugged you? The choice is yours! To complete this lab, make any change at all that makes this site better. No change is too small: add a single line, fix a single typo, or update an out of place character - these are all fantastic additions. + +_Here are some options of changes you can submit:_ + +#### Option 1. Add your favorite software packages _(Recommended!)_ + +Everyone has a favorite app! What could you add to the package lists on the [Mac](../setup/mac.md) or [Windows](../setup/windows.md) QuickStart pages to make them even more awesome for the next round of students? + +#### Option 2. Add your own username to the list of lab graduates + +Optionally, either in addition to or in place of other updates, why not add your GitHub username to the [cicd-graduates](cicd-graduates.md) page?! A small piece of immortality in exchange for only a few minutes' effort... + +#### Option 3. Make this lab better! + +Everything on docs.dataops.tk is auto-published from this repo. How about submitting... + +1. Typo corrections or other fixes. +2. Complicated explanations which you can make simpler. +3. Missing explanations that you can provide. + +#### Option 4. Add or modify any content on [docs.dataops.tk](https://docs.dataops.tk) + +Everything on docs.dataops.tk is auto-published from this repo. How about submitting... + +1. New or updated content. +2. Links to to external sites. +3. Cooler graphics or gifs? + +## Extra Credit + +**Want to see what happens when the CI/CD tests fail?** + +As an experiment, try committing a change with the uppercase text "TK" anywhere on a markdown page. The text "[TK](https://en.wikipedia.org/wiki/To_come_(publishing))" is short for "to come" in the publishing world, and it serves like a "To-Do" marker which signals that your page is not yet ready to publish. + +If the CI/CD engine finds this text anywhere in your change, it will fail tests and prevent your code from being merged. The same type of CI/CD failure would occur if you try to include a broken URL or a bad web link. + +*👉 Just don't forget to remove the "TK" text afterwards so your PR does not stay blocked!* + +## Commit your changes + +1. Press `Ctrl+Shift+G` to move to the source control view in the left hand pane. +2. In the 'Message' box, provide a short description and then click the check icon to commit your change. +3. Finally, push your branch containing the new changes to git using the `Push` option in the drop-down menu. + +## Create a PR (Pull Request) + +A pull request tells the repo maintainers that you are ready for them to review your proposed changes. + +> TIP: The name "pull request" comes from the fact that we often do not have permissions to "push" code to a production site. Instead, we send the maintainers of the repo a request that they "pull" our changes into their main branch. The pull request ("PR" for short) will only be merged into production if the maintainers decide to accept our changes and merge our changes into the main branch. The process of merging in our code is fully automated - the maintainers simply need to click on a button in GitHub to approve and merge the PR changes. + +1. Return to the browser window and navigate to: [github.com/slalom-ggp/dataops-docs/pulls](https://github.com/slalom-ggp/dataops-docs/pulls) +2. Select "New Pull Request" and follow the prompts to submit your proposed changes in a new PR. +3. Find the 'Checks' tab and confirm that all your tests have completed successfully. If needed, return to VS Code and push a new commit to fix any issues. + +## Wait for your PR to be approved and merged + +Once your PR is approved, the code will be automatically merged into master and released into the production website. diff --git a/labs/rds-database.md b/labs/rds-database.md index a42af24..8af8fac 100644 --- a/labs/rds-database.md +++ b/labs/rds-database.md @@ -1,46 +1,46 @@ -# [Docs](../README.md) > [Labs](./index.md) > **Deploy a Managed Database on RDS** - -`A Slalom DataOps Lab` - -> _**WARNING: Lab Still Under Construction**_ - -## Prep and Prereqs - -* **Prep:** For this lab, you'll need: - 1. [Installed DevOps Tools](../setup/index.html): - * VS Code, Python, Docker, and Terraform - 2. [A GitHub account](./intro.md) -* **Prereqs:** - * This module starts off where the previous module ended. To get caught up, go to the - [previous lab](./extracts-as-code.md) or go back to the [main labs page](./index.md). - -## Lab Steps - -### Step 1: Add RDS infrastructure config - -1. Copy-Paste any one of the following into a new file in your infrastructure folder: - * [mysql sample](https://github.com/slalom-ggp/dataops-infra/blob/master/samples/mysql-on-aws/01_rds_mysql.tf) - * [postgres sample](https://github.com/slalom-ggp/dataops-infra/blob/master/samples/postgres-on-aws/01_rds_postgres.tf) - * [redshift sample](https://github.com/slalom-ggp/dataops-infra/blob/master/samples/redshift-dw/02_redshift.tf) -2. Customize the configuration variables in the module. -3. Delete any unused/unwanted configuration options or comments. - -### Step 3: Add an automated load to the new database - -1. Open the `singer-taps.tf` file created in the previous lab. -2. Add a `target` block into the singer-taps module, starting from the following sample code: - - ```tf - ... - target = { - ... - } - ... - ``` - -### Step 4: Run the database load - -1. Open a terminal in your `infra` folder. -2. Run `terraform init && terraform apply`. When asked to confirm, type 'yes' to deploy the changes. -3. Run `terraform output`. -4. Copy-paste and run the singer database load command. +# [Docs](../README.md) > [Labs](./index.md) > **Deploy a Managed Database on RDS** + +`A Slalom DataOps Lab` + +> _**WARNING: Lab Still Under Construction**_ + +## Prep and Prereqs + +* **Prep:** For this lab, you'll need: + 1. [Installed DevOps Tools](../setup/index.html): + * VS Code, Python, Docker, and Terraform + 2. [A GitHub account](./intro.md) +* **Prereqs:** + * This module starts off where the previous module ended. To get caught up, go to the + [previous lab](./extracts-as-code.md) or go back to the [main labs page](./index.md). + +## Lab Steps + +### Step 1: Add RDS infrastructure config + +1. Copy-Paste any one of the following into a new file in your infrastructure folder: + * [mysql sample](https://github.com/slalom-ggp/dataops-infra/blob/master/samples/mysql-on-aws/01_rds_mysql.tf) + * [postgres sample](https://github.com/slalom-ggp/dataops-infra/blob/master/samples/postgres-on-aws/01_rds_postgres.tf) + * [redshift sample](https://github.com/slalom-ggp/dataops-infra/blob/master/samples/redshift-dw/02_redshift.tf) +2. Customize the configuration variables in the module. +3. Delete any unused/unwanted configuration options or comments. + +### Step 3: Add an automated load to the new database + +1. Open the `singer-taps.tf` file created in the previous lab. +2. Add a `target` block into the singer-taps module, starting from the following sample code: + + ```tf + ... + target = { + ... + } + ... + ``` + +### Step 4: Run the database load + +1. Open a terminal in your `infra` folder. +2. Run `terraform init && terraform apply`. When asked to confirm, type 'yes' to deploy the changes. +3. Run `terraform output`. +4. Copy-paste and run the singer database load command. diff --git a/powerbi_themes.md b/powerbi_themes.md index 0796ea2..aad6d80 100644 --- a/powerbi_themes.md +++ b/powerbi_themes.md @@ -1,38 +1,38 @@ -# [Docs](./README.md) > Power BI Themes - -Power BI Theme files are stored in JSON format and allow a developer to "skin" an entire report with consistent font styles, color themes, and other formatting elements. - -## How to install Power BI theme files - -### Out-of-box Power BI Themes - -Power BI comes out of box with many different themes. Slalom also has a set of themes which can quickly add to any new or existing report. - -1. To select an installed theme: "Home" > "Switch Theme" > "Import theme..." -2. To browse the themes gallary: "Home" > "Switch Theme" > "Theme gallery" - -### Custom-Branded Power BI Themes - -To apply any of the below themes, first right-click the desired URL and select "copy link". Then in Power BI, select "Home" > "Switch Theme" > "Import theme..." and paste the link into the provided file selecter. - -| Theme File | Sample | -|---|---| -| [Slalom Dark Theme](https://raw.githubusercontent.com/slalom-ggp/PowerBI-Themes/master/themes/Default%20-%20Dark.json) | ![dark-sample](https://raw.githubusercontent.com/slalom-ggp/PowerBI-Themes/master/themes/Default%20-%20Dark%20-%20Sample.jpg) -| [Slalom Light Theme](https://raw.githubusercontent.com/slalom-ggp/PowerBI-Themes/master/themes/Default%20-%20Light.json) | ![light-sample](https://raw.githubusercontent.com/slalom-ggp/PowerBI-Themes/master/themes/Default%20-%20Light%20-%20Sample.jpg) | - -### Customizing a Power BI Theme - -#### Option 1: Use the new theme editor (recommended) - -To use the new theme editor, first load the theme you want to edit and then select: "Home" > "Switch Theme" > "Customize current theme" - -_Note: As of the time of this publish, the Theme Editor feature is in preview. To enable the preview feature, select: "File" > "Options and Settings" > "Options" > "Preview features" > "Customize current theme"._ - -#### Option 2: Edit the JSON file (advanced) - -The suggested tool for editting the JSON files is VS Code. The VS Code **Color Picker extension** (`lihui.vs-color-picker`) makes it easy to select new colors while editing, and the **Color Highlight extension** (`naumovs.color-highlight`) automatically highlights hex code values in json in the color that was chosen. - -## See Also - -* [github.com/slalom-ggp/PowerBI-Themes](https://github.com/slalom-ggp/PowerBI-Themes) -* [github.com/deldersveld/PowerBI-ThemeTemplates](https://github.com/deldersveld/PowerBI-ThemeTemplates) +# [Docs](./README.md) > Power BI Themes + +Power BI Theme files are stored in JSON format and allow a developer to "skin" an entire report with consistent font styles, color themes, and other formatting elements. + +## How to install Power BI theme files + +### Out-of-box Power BI Themes + +Power BI comes out of box with many different themes. Slalom also has a set of themes which can quickly add to any new or existing report. + +1. To select an installed theme: "Home" > "Switch Theme" > "Import theme..." +2. To browse the themes gallary: "Home" > "Switch Theme" > "Theme gallery" + +### Custom-Branded Power BI Themes + +To apply any of the below themes, first right-click the desired URL and select "copy link". Then in Power BI, select "Home" > "Switch Theme" > "Import theme..." and paste the link into the provided file selecter. + +| Theme File | Sample | +|---|---| +| [Slalom Dark Theme](https://raw.githubusercontent.com/slalom-ggp/PowerBI-Themes/master/themes/Default%20-%20Dark.json) | ![dark-sample](https://raw.githubusercontent.com/slalom-ggp/PowerBI-Themes/master/themes/Default%20-%20Dark%20-%20Sample.jpg) +| [Slalom Light Theme](https://raw.githubusercontent.com/slalom-ggp/PowerBI-Themes/master/themes/Default%20-%20Light.json) | ![light-sample](https://raw.githubusercontent.com/slalom-ggp/PowerBI-Themes/master/themes/Default%20-%20Light%20-%20Sample.jpg) | + +### Customizing a Power BI Theme + +#### Option 1: Use the new theme editor (recommended) + +To use the new theme editor, first load the theme you want to edit and then select: "Home" > "Switch Theme" > "Customize current theme" + +_Note: As of the time of this publish, the Theme Editor feature is in preview. To enable the preview feature, select: "File" > "Options and Settings" > "Options" > "Preview features" > "Customize current theme"._ + +#### Option 2: Edit the JSON file (advanced) + +The suggested tool for editting the JSON files is VS Code. The VS Code **Color Picker extension** (`lihui.vs-color-picker`) makes it easy to select new colors while editing, and the **Color Highlight extension** (`naumovs.color-highlight`) automatically highlights hex code values in json in the color that was chosen. + +## See Also + +* [github.com/slalom-ggp/PowerBI-Themes](https://github.com/slalom-ggp/PowerBI-Themes) +* [github.com/deldersveld/PowerBI-ThemeTemplates](https://github.com/deldersveld/PowerBI-ThemeTemplates) diff --git a/setup/brew_install.sh b/setup/brew_install.sh index e6694f8..a8f9e9e 100644 --- a/setup/brew_install.sh +++ b/setup/brew_install.sh @@ -1,3 +1,3 @@ -#!/bin/sh - -/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" +#!/bin/sh + +/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" diff --git a/setup/choco_devops.bat b/setup/choco_devops.bat index 44d9a45..278f2a4 100644 --- a/setup/choco_devops.bat +++ b/setup/choco_devops.bat @@ -1,59 +1,59 @@ -echo "Checking if script already has admin rights..." -NET SESSION -IF %ERRORLEVEL% NEQ 0 GOTO ELEVATE -GOTO ADMIN - -:ELEVATE -echo "Attempting to obtain admin rights..." -CD /d %~dp0 -MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();" -EXIT - -:ADMIN -echo "Continuing script (with admin rights)..." -echo on - -REM Installing Chocolatey - "The package manager for Windows"... -@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " [System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin" -REM Chocolatey install complete. - -REM Installing needed Windows features.... -choco install -y --no-progress --source windowsfeatures ^ - Microsoft-Hyper-V - -REM NOTE: A restart may be required at this point. Attempting to continue anyway without restarting... -REM If you experience problems, simply restart your machine and then rerun this script. - -REM Custom Git Install -choco install --no-progress -y ^ - git.install --params "/GitOnlyOnPath /SChannel /NoAutoCrlf /WindowsTerminal" - -REM Software Installs (DevOps-Required Tools) -choco install --no-progress -y ^ - choco-protocol-support ^ - chocolateygui ^ - docker-desktop ^ - python3 ^ - sudo ^ - terraform ^ - vscode - -REM Install script complete. If this is your first time installing, a manual restart is required at this point. -REM If you experience any problems after restarting, you can always rerun this script. - -REM Install optional components: -REM choco://7zip -REM choco://awscli -REM choco://azure-cli -REM choco://dbeaver -REM choco://filezilla -REM choco://github-desktop -REM choco://microsoft-teams.install -REM choco://microsoft-windows-terminal # Requires latest windows updates -REM choco://microsoftazurestorageexplorer -REM choco://powerbi -REM choco://r.project -REM choco://wsl -REM choco://wsl-ubuntu-1804 - -pause +echo "Checking if script already has admin rights..." +NET SESSION +IF %ERRORLEVEL% NEQ 0 GOTO ELEVATE +GOTO ADMIN + +:ELEVATE +echo "Attempting to obtain admin rights..." +CD /d %~dp0 +MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();" +EXIT + +:ADMIN +echo "Continuing script (with admin rights)..." +echo on + +REM Installing Chocolatey - "The package manager for Windows"... +@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " [System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin" +REM Chocolatey install complete. + +REM Installing needed Windows features.... +choco install -y --no-progress --source windowsfeatures ^ + Microsoft-Hyper-V + +REM NOTE: A restart may be required at this point. Attempting to continue anyway without restarting... +REM If you experience problems, simply restart your machine and then rerun this script. + +REM Custom Git Install +choco install --no-progress -y ^ + git.install --params "/GitOnlyOnPath /SChannel /NoAutoCrlf /WindowsTerminal" + +REM Software Installs (DevOps-Required Tools) +choco install --no-progress -y ^ + choco-protocol-support ^ + chocolateygui ^ + docker-desktop ^ + python3 ^ + sudo ^ + terraform ^ + vscode + +REM Install script complete. If this is your first time installing, a manual restart is required at this point. +REM If you experience any problems after restarting, you can always rerun this script. + +REM Install optional components: +REM choco://7zip +REM choco://awscli +REM choco://azure-cli +REM choco://dbeaver +REM choco://filezilla +REM choco://github-desktop +REM choco://microsoft-teams.install +REM choco://microsoft-windows-terminal # Requires latest windows updates +REM choco://microsoftazurestorageexplorer +REM choco://powerbi +REM choco://r.project +REM choco://wsl +REM choco://wsl-ubuntu-1804 + +pause diff --git a/setup/choco_min.bat b/setup/choco_min.bat index 40d70ee..6a95aa5 100644 --- a/setup/choco_min.bat +++ b/setup/choco_min.bat @@ -1,51 +1,51 @@ -echo "Checking if script already has admin rights..." -NET SESSION -IF %ERRORLEVEL% NEQ 0 GOTO ELEVATE -GOTO ADMIN - -:ELEVATE -echo "Attempting to obtain admin rights..." -CD /d %~dp0 -MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();" -EXIT - -:ADMIN -echo "Continuing script (with admin rights)..." -echo on - -REM NOTE: A restart may be required at this point. Attempting to continue anyway without restarting... -REM If you experience problems, simply restart your machine and then rerun this script. - -REM Custom Git Install -choco install --no-progress -y ^ - git.install --params "/GitOnlyOnPath /SChannel /NoAutoCrlf /WindowsTerminal" - -REM Software Installs (DevOps-Required Tools) -choco install --no-progress -y ^ - choco-protocol-support ^ - chocolateygui ^ - python3 ^ - sudo - -REM Install script complete. If this is your first time installing, a manual restart is required at this point. -REM If you experience any problems after restarting, you can always rerun this script. - -REM Install optional components: -REM choco://7zip -REM choco://awscli -REM choco://azure-cli -REM choco://dbeaver -REM choco://docker-desktop -REM choco://filezilla -REM choco://github-desktop -REM choco://microsoft-teams.install -REM choco://microsoft-windows-terminal # Requires latest windows updates -REM choco://microsoftazurestorageexplorer -REM choco://powerbi -REM choco://r.project -REM choco://terraform -REM choco://vscode -REM choco://wsl -REM choco://wsl-ubuntu-1804 - -pause +echo "Checking if script already has admin rights..." +NET SESSION +IF %ERRORLEVEL% NEQ 0 GOTO ELEVATE +GOTO ADMIN + +:ELEVATE +echo "Attempting to obtain admin rights..." +CD /d %~dp0 +MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();" +EXIT + +:ADMIN +echo "Continuing script (with admin rights)..." +echo on + +REM NOTE: A restart may be required at this point. Attempting to continue anyway without restarting... +REM If you experience problems, simply restart your machine and then rerun this script. + +REM Custom Git Install +choco install --no-progress -y ^ + git.install --params "/GitOnlyOnPath /SChannel /NoAutoCrlf /WindowsTerminal" + +REM Software Installs (DevOps-Required Tools) +choco install --no-progress -y ^ + choco-protocol-support ^ + chocolateygui ^ + python3 ^ + sudo + +REM Install script complete. If this is your first time installing, a manual restart is required at this point. +REM If you experience any problems after restarting, you can always rerun this script. + +REM Install optional components: +REM choco://7zip +REM choco://awscli +REM choco://azure-cli +REM choco://dbeaver +REM choco://docker-desktop +REM choco://filezilla +REM choco://github-desktop +REM choco://microsoft-teams.install +REM choco://microsoft-windows-terminal # Requires latest windows updates +REM choco://microsoftazurestorageexplorer +REM choco://powerbi +REM choco://r.project +REM choco://terraform +REM choco://vscode +REM choco://wsl +REM choco://wsl-ubuntu-1804 + +pause diff --git a/setup/index.html b/setup/index.html index 4c68b0d..1522ed8 100644 --- a/setup/index.html +++ b/setup/index.html @@ -1,23 +1,23 @@ - - - - - + + + + + \ No newline at end of file diff --git a/setup/mac.md b/setup/mac.md index da632c1..7aad2ce 100644 --- a/setup/mac.md +++ b/setup/mac.md @@ -1,78 +1,78 @@ -# [Docs](../README.md) > [Setup](../setup/index.html) > Mac OSX Development QuickStart - - - -drawing - - - - - -_These scripts leverage Homebrew, the package manager for Mac. [Click here](https://brew.sh) to learn more about Homebrew._ - -## QuickStart Overview - -Starting out in DataOps requires a new set of tools from what developers may have used previously. Thankfully, package managers like Chocolatey and Homebrew exist to streamline the process of getting new software installed (and keeping it updated) on your machine. - -The package manager reduces the time to get software installed, saving hours of time and ensuring everyone's machines are setup correctly with minimal effort. Here's a quick overview of the tools you'll install in the next section: - -1. A **package manager**: Chocolatey (for Windows) or Homebrew (for Mac) -2. **Docker** - to run containerized apps and create your own. -3. **Git** - a version control platform used to store and manage code. -4. **GitHub Desktop** - a friendly GUI which works with Git and GitHub.com. -5. **Python** - a software language useful for developing new programs and scripts, and also used for its popular package manager `pip`, which allows users to install Python programs written by others. -6. **Terraform** - the leading cross-platform solution for automating Infrastructure as Code (IaC). -7. **VS Code** - a robust, fast, and lightweight development environment (IDE). - -## Installing Homebrew and Core Tools - -1. Open "Terminal". -2. Paste and run the [Homebrew](https://brew.sh) install script: - - ```bash - /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" - ``` - - drawing - -3. Install git. - - ```cmd - brew install git - ``` - -4. Install core tools: - - ```cmd - brew install cask docker python3 terraform - brew cask install cakebrew visual-studio-code - ``` - -## Installing additional tools - -After following the instructions from the above, you should now have the **Cakebrew** app installed, which gives a friendly GUI on top of the Homebrew installer. - -To install any additional programs, either open the **Cakebrew** app or copy-paste the below samples into a Terminal window. (You can also find additional packages at [https://brew.sh](https://brew.sh).) - -- `brew install awscli` -- `brew install azure-cli` -- `brew install elasticsearch` -- `brew install gradle` -- `brew cask install anaconda` -- `brew cask install dbeaver-community` -- `brew cask install github` -- `brew cask install google-chrome` -- `brew cask install microsoft-teams` -- `brew cask install r` -- `brew cask install slack` - -## Extra Credit: Create a GitHub Account - -For extra credit, visit [GitHub.com](https://github.com/) and register a new account. Once you've created a GitHub account and installed the core software, you are all all set to contribute to open source projects in GitHub, including this one! - -- _Tip: Rather than create multiple accounts, we recommend using a single GitHub account for both work and personal development projects._ - -## Related Links - -- [Windows Setup QuickStart](windows.md) -- Brew QuickSetup Script: [https://docs.dataops.tk/setup/brew_install.sh](brew_install.sh) ([source](https://github.com/slalom-ggp/dataops-docs/blob/master/setup/brew_install.sh)) +# [Docs](../README.md) > [Setup](../setup/index.html) > Mac OSX Development QuickStart + + + +drawing + + + + + +_These scripts leverage Homebrew, the package manager for Mac. [Click here](https://brew.sh) to learn more about Homebrew._ + +## QuickStart Overview + +Starting out in DataOps requires a new set of tools from what developers may have used previously. Thankfully, package managers like Chocolatey and Homebrew exist to streamline the process of getting new software installed (and keeping it updated) on your machine. + +The package manager reduces the time to get software installed, saving hours of time and ensuring everyone's machines are setup correctly with minimal effort. Here's a quick overview of the tools you'll install in the next section: + +1. A **package manager**: Chocolatey (for Windows) or Homebrew (for Mac) +2. **Docker** - to run containerized apps and create your own. +3. **Git** - a version control platform used to store and manage code. +4. **GitHub Desktop** - a friendly GUI which works with Git and GitHub.com. +5. **Python** - a software language useful for developing new programs and scripts, and also used for its popular package manager `pip`, which allows users to install Python programs written by others. +6. **Terraform** - the leading cross-platform solution for automating Infrastructure as Code (IaC). +7. **VS Code** - a robust, fast, and lightweight development environment (IDE). + +## Installing Homebrew and Core Tools + +1. Open "Terminal". +2. Paste and run the [Homebrew](https://brew.sh) install script: + + ```bash + /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + ``` + + drawing + +3. Install git. + + ```cmd + brew install git + ``` + +4. Install core tools: + + ```cmd + brew install cask docker python3 terraform + brew cask install cakebrew visual-studio-code + ``` + +## Installing additional tools + +After following the instructions from the above, you should now have the **Cakebrew** app installed, which gives a friendly GUI on top of the Homebrew installer. + +To install any additional programs, either open the **Cakebrew** app or copy-paste the below samples into a Terminal window. (You can also find additional packages at [https://brew.sh](https://brew.sh).) + +- `brew install awscli` +- `brew install azure-cli` +- `brew install elasticsearch` +- `brew install gradle` +- `brew cask install anaconda` +- `brew cask install dbeaver-community` +- `brew cask install github` +- `brew cask install google-chrome` +- `brew cask install microsoft-teams` +- `brew cask install r` +- `brew cask install slack` + +## Extra Credit: Create a GitHub Account + +For extra credit, visit [GitHub.com](https://github.com/) and register a new account. Once you've created a GitHub account and installed the core software, you are all all set to contribute to open source projects in GitHub, including this one! + +- _Tip: Rather than create multiple accounts, we recommend using a single GitHub account for both work and personal development projects._ + +## Related Links + +- [Windows Setup QuickStart](windows.md) +- Brew QuickSetup Script: [https://docs.dataops.tk/setup/brew_install.sh](brew_install.sh) ([source](https://github.com/slalom-ggp/dataops-docs/blob/master/setup/brew_install.sh)) diff --git a/setup/windows.md b/setup/windows.md index 5189f1b..2c4e96b 100644 --- a/setup/windows.md +++ b/setup/windows.md @@ -1,95 +1,95 @@ -# [Docs](../README.md) > [Setup](../setup/index.html) > Windows Development QuickStart - - - -drawing - - - - - -_These scripts leverage Chocolatey, the package manager for windows. [Click here](https://chocolatey.org/why-chocolatey) to learn more about Chocolatey._ - -## QuickStart Overview - -Starting out in DataOps requires a new set of tools from what developers may have used previously. Thankfully, package managers like Chocolatey and Homebrew exist to streamline the process of getting new software installed (and keeping it updated) on your machine. - -The package manager reduces the time to get software installed, saving hours of time and ensuring everyone's machines are setup correctly with minimal effort. Here's a quick overview of the tools you'll install in the next section: - -1. A **package manager**: Chocolatey (for Windows) or Homebrew (for Mac) -2. **Docker** - to run containerized apps and create your own. -3. **Git** - a version control platform used to store and manage code. -4. **GitHub Desktop** - a friendly GUI which works with Git and GitHub.com. -5. **Python** - a software language useful for developing new programs and scripts, and also used for its popular package manager `pip`, which allows users to install Python programs written by others. -6. **Terraform** - the leading cross-platform solution for automating Infrastructure as Code (IaC). -7. **VS Code** - a robust, fast, and lightweight development environment (IDE). - -## Installing Chocolatey and Core Tools - -1. Open "cmd.exe" as an administrator. -2. Paste and run the [Chocolatey.org](https://chocolatey.org/docs/installation#install-with-cmdexe) install script: - - ```cmd - @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " [System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin" - ``` - - drawing - -3. Install git. - - ```cmd - choco install -y git.install --params "/GitOnlyOnPath /SChannel /NoAutoCrlf /WindowsTerminal" - ``` - -4. Install core tools: - - ```cmd - choco install -y choco-protocol-support chocolateygui sudo terraform vscode - choco install -y python3 - choco install -y docker-desktop - ``` - -- **NOTE:** See the [Troubleshooting](#troubleshooting) tips below if you run into any difficulties during this process. - -## Installing additional tools - -Now that you have the core tools installed, you can click to install any of the below that would be useful for your project, or find additional packages using [chocolatey.org/packages](https://chocolatey.org/packages) index or the **ChocolateyGUI** Windows app. - -- [choco://7zip](choco://7zip) -- [choco://anaconda3](choco://anaconda3) or [choco://miniconda](choco://miniconda) -- [choco://awscli](choco://awscli) -- [choco://azure-cli](choco://azure-cli) -- [choco://dbeaver](choco://dbeaver) -- [choco://firefox](choco://firefox) -- [choco://filezilla](choco://filezilla) -- [choco://github-desktop](choco://github-desktop) -- [choco://GoogleChrome](choco://GoogleChrome) -- [choco://gradle](choco://gradle) -- [choco://microsoft-teams.install](choco://microsoft-teams.install) -- [choco://microsoftazurestorageexplorer](choco://microsoftazurestorageexplorer) -- [choco://powerbi](choco://powerbi) -- [choco://r.project](choco://r.project) -- [choco://sql-server-management-studio](choco://sql-server-management-studio) -- [choco://wsl](choco://wsl) -- [choco://wsl-ubuntu-1804](choco://wsl-ubuntu-1804) - -## Extra Credit: Create a GitHub Account - -For extra credit, visit [GitHub.com](https://github.com/) and register a new account. Once you've created a GitHub account and installed the core software, you are all all set to contribute to open source projects in GitHub, including this one! - -- _Tip: Rather than create multiple accounts, we recommend using a single GitHub account for both work and personal development projects._ - -## Troubleshooting - -If you run into issues during this process, here are some tips which might help: - -1. If the batch script approach does not appear to be working, it may be caused by security protections. Try the manual approach of copy-pasting the needed install command, and also make sure you are running the command prompt "as administrator". -2. If the manual approach still does not work, try again to copy-paste the command [from here](https://chocolatey.org/docs/installation#install-with-cmdexe) on the Chocolatey.org website. _(The install command does not change often, but very occasionally there are security patches which require small adjustments to that process.)_ -3. If all else fails or if you find a bug in this documentation, please [click here to report the issue as a bug](https://github.com/slalom-ggp/dataops-docs/issues/new). So that we can provide the fastest response possible, please be sure to paste your error message and any other symptoms which may help in the debugging process. - -## Related Links - -- [Mac Setup QuickStart](mac.md) -- _You can alternatively try any of the URLs below to download and run the automated setup:_ - - [https://docs.dataops.tk/setup/choco_min.bat](choco_min.bat) ([source](https://github.com/slalom-ggp/dataops-docs/blob/master/setup/choco_min.bat)) - Installs a bare-minimum set of tools to get started: `Chocolatey`, `python`, and `git` - - [https://docs.dataops.tk/setup/choco_devops.bat](choco_devops.bat) ([source](https://github.com/slalom-ggp/dataops-docs/blob/master/setup/choco_devops.bat)) - The above, plus additional development tools: `vscode`, `terraform`, and `docker` +# [Docs](../README.md) > [Setup](../setup/index.html) > Windows Development QuickStart + + + +drawing + + + + + +_These scripts leverage Chocolatey, the package manager for windows. [Click here](https://chocolatey.org/why-chocolatey) to learn more about Chocolatey._ + +## QuickStart Overview + +Starting out in DataOps requires a new set of tools from what developers may have used previously. Thankfully, package managers like Chocolatey and Homebrew exist to streamline the process of getting new software installed (and keeping it updated) on your machine. + +The package manager reduces the time to get software installed, saving hours of time and ensuring everyone's machines are setup correctly with minimal effort. Here's a quick overview of the tools you'll install in the next section: + +1. A **package manager**: Chocolatey (for Windows) or Homebrew (for Mac) +2. **Docker** - to run containerized apps and create your own. +3. **Git** - a version control platform used to store and manage code. +4. **GitHub Desktop** - a friendly GUI which works with Git and GitHub.com. +5. **Python** - a software language useful for developing new programs and scripts, and also used for its popular package manager `pip`, which allows users to install Python programs written by others. +6. **Terraform** - the leading cross-platform solution for automating Infrastructure as Code (IaC). +7. **VS Code** - a robust, fast, and lightweight development environment (IDE). + +## Installing Chocolatey and Core Tools + +1. Open "cmd.exe" as an administrator. +2. Paste and run the [Chocolatey.org](https://chocolatey.org/docs/installation#install-with-cmdexe) install script: + + ```cmd + @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " [System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin" + ``` + + drawing + +3. Install git. + + ```cmd + choco install -y git.install --params "/GitOnlyOnPath /SChannel /NoAutoCrlf /WindowsTerminal" + ``` + +4. Install core tools: + + ```cmd + choco install -y choco-protocol-support chocolateygui sudo terraform vscode + choco install -y python3 + choco install -y docker-desktop + ``` + +- **NOTE:** See the [Troubleshooting](#troubleshooting) tips below if you run into any difficulties during this process. + +## Installing additional tools + +Now that you have the core tools installed, you can click to install any of the below that would be useful for your project, or find additional packages using [chocolatey.org/packages](https://chocolatey.org/packages) index or the **ChocolateyGUI** Windows app. + +- [choco://7zip](choco://7zip) +- [choco://anaconda3](choco://anaconda3) or [choco://miniconda](choco://miniconda) +- [choco://awscli](choco://awscli) +- [choco://azure-cli](choco://azure-cli) +- [choco://dbeaver](choco://dbeaver) +- [choco://firefox](choco://firefox) +- [choco://filezilla](choco://filezilla) +- [choco://github-desktop](choco://github-desktop) +- [choco://GoogleChrome](choco://GoogleChrome) +- [choco://gradle](choco://gradle) +- [choco://microsoft-teams.install](choco://microsoft-teams.install) +- [choco://microsoftazurestorageexplorer](choco://microsoftazurestorageexplorer) +- [choco://powerbi](choco://powerbi) +- [choco://r.project](choco://r.project) +- [choco://sql-server-management-studio](choco://sql-server-management-studio) +- [choco://wsl](choco://wsl) +- [choco://wsl-ubuntu-1804](choco://wsl-ubuntu-1804) + +## Extra Credit: Create a GitHub Account + +For extra credit, visit [GitHub.com](https://github.com/) and register a new account. Once you've created a GitHub account and installed the core software, you are all all set to contribute to open source projects in GitHub, including this one! + +- _Tip: Rather than create multiple accounts, we recommend using a single GitHub account for both work and personal development projects._ + +## Troubleshooting + +If you run into issues during this process, here are some tips which might help: + +1. If the batch script approach does not appear to be working, it may be caused by security protections. Try the manual approach of copy-pasting the needed install command, and also make sure you are running the command prompt "as administrator". +2. If the manual approach still does not work, try again to copy-paste the command [from here](https://chocolatey.org/docs/installation#install-with-cmdexe) on the Chocolatey.org website. _(The install command does not change often, but very occasionally there are security patches which require small adjustments to that process.)_ +3. If all else fails or if you find a bug in this documentation, please [click here to report the issue as a bug](https://github.com/slalom-ggp/dataops-docs/issues/new). So that we can provide the fastest response possible, please be sure to paste your error message and any other symptoms which may help in the debugging process. + +## Related Links + +- [Mac Setup QuickStart](mac.md) +- _You can alternatively try any of the URLs below to download and run the automated setup:_ + - [https://docs.dataops.tk/setup/choco_min.bat](choco_min.bat) ([source](https://github.com/slalom-ggp/dataops-docs/blob/master/setup/choco_min.bat)) - Installs a bare-minimum set of tools to get started: `Chocolatey`, `python`, and `git` + - [https://docs.dataops.tk/setup/choco_devops.bat](choco_devops.bat) ([source](https://github.com/slalom-ggp/dataops-docs/blob/master/setup/choco_devops.bat)) - The above, plus additional development tools: `vscode`, `terraform`, and `docker` From a32ba22a4a303bbd41affa064edcedbad41fce8a Mon Sep 17 00:00:00 2001 From: JAMahoney92 <64795193+JAMahoney92@users.noreply.github.com> Date: Mon, 4 May 2020 17:11:02 +0100 Subject: [PATCH 2/2] Update cicd-graduates.md --- labs/cicd-graduates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/labs/cicd-graduates.md b/labs/cicd-graduates.md index 52de61a..23b3390 100644 --- a/labs/cicd-graduates.md +++ b/labs/cicd-graduates.md @@ -4,9 +4,9 @@ The GitHub users below ***killed it*** on their [CI/CD lab](intro.md)! 😎 [//]: # (Add your username below, in alphabetical order to prevent conflicts and duplication.) -- @aaronsteers +- Aaron Steers - Jo Mahoney -TK + ## Commence the celebration! [//]: # (Psst - feel free to add more art or GIFs here if you are so inclined!)