Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

🚀 #1

Merged
merged 13 commits into from
Aug 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .eleventy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
const fs = require("fs");
const jsmin = require("./src/_transforms/jsmin")

module.exports = (config) => {
config.addCollection("radars", require("./src/_collections/radars"))
config.addCollection("categories", require("./src/_collections/categories"))

config.addShortcode("visualizeRadar", (radar) => {
const baseSettings = JSON.parse(fs.readFileSync("src/_data/radar-settings.json", "utf8"));

const payload = {
...baseSettings,
...radar.data,
"title": radar.category,
"date": radar.date,
};

return `radar_visualization(${JSON.stringify(payload)})`;
});

config.addFilter("filter", (arr, key, value) => {
return arr?.filter(item => item[key] === value);
});

config.addNunjucksAsyncFilter("jsmin", jsmin);

config.addPassthroughCopy({ "src/_assets/js": "js" })
config.addPassthroughCopy({ "src/_assets/fonts": "fonts" })
config.addPassthroughCopy({ "src/_assets/styles": "styles" })
config.addPassthroughCopy({ "src/_assets/images": "images" })

return {
dir: {
input: "src",
output: "public",
layouts: "_layouts",
},
};
};
56 changes: 56 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: 'Release'

on:
push:
branches:
- main
workflow_dispatch:

jobs:
build:
name: Build Tech-Radar
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: 16

- name: Install Dependencies
run: npm install

- name: Build Tech-Radar
run: npm run build

- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: tech-radar
path: public

deploy:
name: Deploy Tech-Radar
runs-on: ubuntu-latest
steps:
- name: Download Artifact
uses: actions/download-artifact@v3
with:
name: tech-radar

- name: Setup SSH
env:
SSH_AGENT_SOCK: /tmp/ssh_agent.sock
run: |
ssh-agent -a "${{ env.SSH_AGENT_SOCK }}" > /dev/null
ssh-add - <<< "${{ secrets.DEPLOY_SSH_KEY }}"

- name: Deploy
env:
TARGET: "${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}"
run: |
rsync -ahvz --delete -e 'ssh -o StrictHostKeyChecking=no' ./ "${{ env.TARGET }}:var/www/"


22 changes: 22 additions & 0 deletions .github/workflows/validate-csv.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: 'Validate CSV'

on:
pull_request:
types: [opened, reopened, edited]
paths:
- '**.csv'

jobs:
validate:
name: Validate CSV files
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Validate
uses: jbzoo/csv-blueprint@1.0.3
with:
csv: './radars/**/*.csv'
schema: './radars/schema.yml'
report: github
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.DS_Store
node_modules/
public/

# yarn
yarn-error.log
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 Tekmates LLP

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.
71 changes: 71 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Tek-radar

**Tek-radar** *(technology radar)* is a powerful tool designed to guide our engineering teams in selecting the most suitable technologies for new projects. It serves as a platform for sharing knowledge and experiences, facilitating informed technology decisions, and continuously evolving our technology landscape.

This repository contains sources of our techradar, which is located under [radar.tekmates.pro](https://radar.tekmates.pro). Feel free to use our approach as a foundation for building your own radar.

## Contributing

We appreciate contributions to the source code of this project. However, please note that adding new entries to the radar is only permitted if you are a staff member of our team.

### Adding a new entry

To add a new entry to the radar:

1. Add a CSV file named after the radar's date in the format **dd-MM-YYYY**.
2. Place the file in the `radars` folder, within the subfolder corresponding to your field (e.g., iOS, Android, backend). If a subfolder for your field doesn't exist, create one.
3. After making these changes, open a Pull Request (PR) for review.

You could also tweak settings that will be applied on radars in your field. Create settings.json file inside your subfolder and modify the fields you want. Here is a template of `settings.json` file:

```json
{
"title": "your title here",
"rings": {
"adopt": { "name": "ADOPT", "color": "#5ba300" },
"trial": { "name": "TRIAL", "color": "#009eb0" },
"assess": { "name": "ASSESS", "color": "#c7ba00" },
"hold": { "name": "HOLD", "color": "#e09b96" }
},
"quadrants": {
"names": {
"q1": "Data Management",
"q2": "Frameworks & Tools",
"q3": "Languages & Techniques",
"q4": "Platforms & Infrastructure"
},
"aliases": {
"Data Management": "q1",
"data": "q1",
"Frameworks & Tools": "q2",
"frameworks": "q2",
"tools": "q2",
"Languages & Techniques": "q3",
"languages": "q3",
"techniques": "q3",
"Platforms & Infrastructure": "q4",
"platform": "q4",
"platforms": "q4",
"infra": "q4",
"infrastructure": "q4"
}
}
}
```

### Development

To make changes to the source code:

1. Install the necessary dependencies by running the following command: `npm i`
3. Begin updating the code as needed.
4. To check your changes, use the following command to generate and run the tech radar with the updates: `npm run start`
6. Once you have finished making changes, open a Pull Request (PR) for review.

## Acknowledgements

**Tek-radar** is based on [Zalando's tech radar](https://github.com/zalando/tech-radar) and powered by [Eleventy (11ty)](https://github.com/11ty/eleventy).

## License

**Tek-radar** is under the terms and conditions of the [MIT license](./LICENSE).
Loading