Add various GH actions and enable upload to new WEB server (#666)

* `Automatic` documentation update
* `Automatic` documentation update
* Enable upload to new server
* Pull useful actions from build repository
* Update .github/workflows/clean-workflow-logs.yml
* Update clean-workflow-logs.yml
* Fix docs preview
* Refactor docs at pr
This commit is contained in:
Igor
2025-04-09 18:14:20 +02:00
committed by GitHub
parent d62fd6af49
commit eab040cbed
25 changed files with 452 additions and 113 deletions

20
.github/labeler.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
# This configures label matching for PR's.
#
# The keys are labels, and the values are lists of minimatch patterns
# to which those labels apply.
#
# NOTE: This can only add labels, not remove them.
# NOTE: Due to YAML syntax limitations, patterns or labels which start
# with a character that is part of the standard YAML syntax must be
# quoted.
#
# Please keep the labels sorted and deduplicated.
"Needs review":
- changed-files:
- any-glob-to-any-file: '**'
"GitHub Actions":
- all:
- changed-files:
- any-glob-to-any-file: ['.github/**/**/*']

66
.github/labels.yml vendored Normal file
View File

@@ -0,0 +1,66 @@
- name: "02"
color: "76B4D9"
description: "Milestone: First quarter release"
- name: "05"
color: "AADB79"
description: "Milestone: Second quarter release"
- name: "08"
color: "4B649F"
description: "Milestone: Third quarter release"
- name: "11"
color: "D58125"
description: "Milestone: Fourth quarter release"
- name: "Backlog"
color: "d4c5f9"
description: "Stalled work that needs to be completed"
- name: "Bug"
color: "F92C01"
description: "Something isn't working as it should"
- name: "Discussion"
color: "EDFFE3"
description: "Being discussed - Voice your opinions :)"
- name: "Duplicate"
color: "f4bd13"
description: "Issue is already present"
- name: "Good first issue"
color: "ffb3ff"
description: "Feel free to contribute :) "
- name: "User error"
color: "CD456C"
description: "A mistake that is made by the user"
- name: "size/small"
color: "ededed"
description: "PR with less then 50 lines"
- name: "size/medium"
color: "ededed"
description: "PR with more then 50 and less then 250 lines"
- name: "size/large"
color: "ededed"
description: "PR with 250 lines or more"
- name: "Task/To-Do"
color: "2f95f1"
description: "Project management: To-Do or task(s) someone is working on"
- name: "GitHub Actions"
color: "bfd4f2"
description: "GitHub Actions code"
- name: "Work in progress"
color: "29E414"
description: "Unfinished / work in progress"
- name: "Ready to merge"
color: "1d7136"
description: "Reviewed, tested and ready for merge"
- name: "Help needed"
color: "EA1BCE"
description: "We need your involvement"
- name: "Needs review"
color: "AEE054"
description: "Seeking for review"
- name: "Can be closed?"
color: "9b75fc"
description: "Ping developers on stalled issue / PR"
- name: "Documentation finished"
color: "0052CC"
description: "New feature was properly added to docs"
- name: "Improper usage"
color: "CD456C"
description: "Provided input is not in the expected data format or structure"

View File

@@ -0,0 +1,28 @@
name: "Clean Workflow Logs"
on:
schedule:
- cron: "0 0 * * 1" # Runs "At 00:00 on Monday." (see https://crontab.guru)
workflow_dispatch:
inputs:
runs_older_than:
description: "The amount of days old to delete"
default: "21"
required: false
runs_to_keep:
description: "The number of workflow runs to keep"
default: "0"
required: false
env:
SCHEDULED_RUNS_OLDER_THAN: "21"
SCHEDULED_RUNS_TO_KEEP: "0"
jobs:
clean-logs:
runs-on: ubuntu-latest
permissions:
actions: write
steps:
- uses: igorjs/gh-actions-clean-workflow@v6
with:
runs_older_than: ${{ github.event.inputs.runs_older_than || env.SCHEDULED_RUNS_OLDER_THAN }}
runs_to_keep: ${{ github.event.inputs.runs_to_keep || env.SCHEDULED_RUNS_TO_KEEP }}

36
.github/workflows/labels-from-yml.yml vendored Normal file
View File

@@ -0,0 +1,36 @@
name: Sync Labels from YAML
run-name: Sync Labels from YML on ${{ github.event_name }}
on:
workflow_dispatch:
push:
branches:
- "main"
paths:
- ".github/labels.yml"
pull_request:
paths:
- ".github/labels.yml"
jobs:
labeler:
permissions:
contents: read # for actions/labeler to determine modified files
pull-requests: write # for actions/labeler to add labels to PRs
issues: write # for actions/labeler to add labels to issues
if: ${{ github.repository_owner == 'Armbian' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run Labeler
uses: crazy-max/ghaction-github-labeler@v5
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
yaml-file: .github/labels.yml
dry-run: ${{ github.event_name == 'pull_request' }}
exclude: |
Maintenance*

View File

@@ -1,65 +1,74 @@
# This workflow will install Python dependencies and generate PDF file at PR
name: Create offline documentation on PR
name: Create docs preview on PR
on:
pull_request:
types: [opened, reopened, synchronize, labeled]
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
build:
docs-preview:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ 3.8 ]
steps:
- uses: actions/checkout@v4
- name: Checkout PR branch (documentation)
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
path: documentation
- uses: actions/checkout@v4
- name: Checkout `www` branch
uses: actions/checkout@v4
with:
ref: www
path: www
- name: Set up Python ${{ matrix.python-version }}
- name: Set up Python 3.8
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
python-version: 3.8
- name: Cache pip dependencies
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('documentation/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
working-directory: documentation
run: |
cd documentation
python -m pip install --upgrade pip
pip install setuptools wheel
pip install -r requirements.txt
- name: Run mkdocs --clean
- name: Build docs with MkDocs
working-directory: documentation
run: mkdocs build --clean
- name: Publish to `www` branch
working-directory: www
run: |
cd documentation
mkdocs build --clean
- name: Push to web
run: |
cd www
mkdir -p "${{ github.event.number }}"
rsync -av ../documentation/site/. ${{ github.event.number }}
rsync -av ../documentation/site/. "${{ github.event.number }}"
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "Updating repo" || true
git add .
git commit -m "Update docs preview for PR #${{ github.event.number }}" || true
git push origin www || true
- uses: devindford/Append_PR_Comment@v1.1.3
- name: Comment on PR with preview link
uses: devindford/Append_PR_Comment@v1.1.3
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
repo-token: ${{ secrets.GITHUB_TOKEN }}
body-template: |
[![Create docs preview on PR](https://github.com/armbian/documentation/actions/workflows/pdf-at-pr.yaml/badge.svg)](https://github.com/armbian/documentation/actions/workflows/pdf-at-pr.yaml)
[![Create offline documentation on PR](https://github.com/armbian/documentation/actions/workflows/pdf-at-pr.yaml/badge.svg)](https://github.com/armbian/documentation/actions/workflows/pdf-at-pr.yaml)
Documentation website preview will be available in few minutes:
<a href=https://armbian.github.io/documentation/${{ github.event.number }}><kbd><br>Open WWW preview<br></kbd></a>
body-update-action: 'suffix'
Documentation website preview will be available shortly:
<a href="https://armbian.github.io/documentation/${{ github.event.number }}"><kbd><br>Open WWW preview<br></kbd></a>
body-update-action: suffix

60
.github/workflows/pr-auto-labeler.yml vendored Normal file
View File

@@ -0,0 +1,60 @@
name: Automatic Pull Request Labeling
run-name: 'Set labels - PR #${{ github.event.pull_request.number }} ("${{ github.event.pull_request.title }}")'
#
# Set labels for pull requests automatically based on size (modified via job 'label-size') and file categories (modified via .github/labeler)
#
on: pull_request_target
jobs:
label-remove:
permissions:
contents: read # for pascalgn/size-label-action to determine modified files
pull-requests: write # for pascalgn/size-label-action to add labels to PRs
name: "Remove Ready to merge"
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
runs-on: ubuntu-latest
steps:
- uses: PauMAVA/add-remove-label-action@v1.0.3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
add: ""
remove: "Ready to merge"
label-category:
permissions:
contents: read # for actions/labeler to determine modified files
pull-requests: write # for actions/labeler to add labels to PRs
name: "Category labels"
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/labeler@v5
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
label-size:
permissions:
contents: read # for pascalgn/size-label-action to determine modified files
pull-requests: write # for pascalgn/size-label-action to add labels to PRs
name: "Size label"
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
runs-on: ubuntu-latest
steps:
- name: size-label
uses: "pascalgn/size-label-action@v0.5.5"
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
with:
sizes: >
{
"0": "small",
"50": "medium",
"250": "large"
}

View File

@@ -1,84 +1,47 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Create offline documentation to release
name: Update documentation website
on:
push:
branches: [ master ]
branches: [ main ]
workflow_dispatch:
jobs:
build:
build-docs:
name: "Generate HTML"
if: ${{ github.repository_owner == 'Armbian' }}
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ 3.8 ]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
with:
ref: main
fetch-depth: 1
- name: "Set up Python"
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel
pip install -r requirements.txt
- name: Run mkdocs --clean
run: |
mkdocs build --clean
python-version: 3.8
# - name: Upload pdf
# uses: actions/upload-artifact@v4
# with:
# name: artifact
# path: site/pdf/document.pdf
# PDF is not built, no need to upload
- name: "Install dependencies"
run: |
pip install --upgrade pip
pip install setuptools wheel -r requirements.txt
- name: "Build documentation"
run: mkdocs build --clean
- name: "Install SSH key"
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.KEY_UPLOAD }}
known_hosts: ${{ secrets.HOST_APPLICATIONS_KNOWN_HOSTS }}
if_key_exists: replace
- name: "Deploy to servers"
timeout-minutes: 3
run: |
rsync -e "ssh -p ${{ secrets.HOST_APPLICATIONS_PORT }}" \
-a site/ \
${{ secrets.HOST_APPLICATIONS_USER }}@${{ secrets.HOST_APPLICATIONS }}:storage/docs.armbian.com
#deploy:
#needs: [ build ]
#runs-on: ubuntu-20.04
#env:
# TZ: GMT
#steps:
# - uses: actions/checkout@v4
# - uses: actions/download-artifact@v4
# with:
# name: artifact
# - name: Add
# run: |
# ls -l
# git pull
# git add document.pdf
# - name: Commit files
# run: |
# git config --local user.email "info@armbian.com"
# git config --local user.name "Armbianworker"
# git commit --allow-empty -m "Update github actions" -a
# - name: Push changes
# uses: ad-m/github-push-action@master
# with:
# repo-token: ${{ secrets.GITHUB_TOKEN }}
# branch: ${{ github.ref }}
#- name: Declare vars
# id: vars
# shell: bash
# run: |
# echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
# echo "timenow=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
#- name: Rename release artifact
# shell: bash
# run: |
# mv -v document.pdf armbian-document-${{ steps.vars.outputs.sha_short }}.pdf
#- name: Create Release
# uses: ncipollo/release-action@v1
# with:
# tag: ${{ steps.vars.outputs.sha_short }}
# name: ${{ steps.vars.outputs.timenow }}-${{ steps.vars.outputs.sha_short }}
# draft: false
# prerelease: false
# token: ${{ secrets.GITHUB_TOKEN }}
# artifacts: armbian-document-${{ steps.vars.outputs.sha_short }}.pdf
# artifactContentType: application/pdf

View File

@@ -4,6 +4,11 @@
***
## Change Global timezone
<!--- section image START from tools/include/images/LO001.png --->
[![Change Global timezone](/images/LO001.png)](#)
<!--- section image STOP from tools/include/images/LO001.png --->
**Command:**
~~~
armbian-config --cmd LO001

View File

@@ -5,6 +5,11 @@
## Basic Network Setup
<!--- section image START from tools/include/images/BNS001.png --->
[![Basic Network Setup](/images/BNS001.png)](#)
<!--- section image STOP from tools/include/images/BNS001.png --->
<!--- header START from tools/include/markdown/BNS001-header.md --->
``` mermaid
graph LR
@@ -30,22 +35,31 @@ armbian-config --cmd BNS001
<!--- footer START from tools/include/markdown/BNS001-footer.md --->
Network configuration is simple and easy to follow:
1. **Select Interface:**
- Launch the `armbian-config` utility:
```bash
sudo armbian-config
```
- Navigate to `Network` and choose the desired network interface (e.g., `eth0` for wired or `wlan0` for wireless).
1. Choose the interface. If it's a wireless interface, you'll be prompted to select an access point (AP) and enter its password. Leave empty for open network.
2. **Wireless Interface Configuration:**
- If configuring a wireless interface:
- A list of available Access Points (APs) will be displayed.
- Select your preferred AP and enter the password when prompted. Leave the password field empty for open networks.
2. Choose between DHCP (Dynamic Host Configuration Protocol) or static IP configuration.
- If you select DHCP, the setup is complete. Optionally, you can change the MAC address.
3. If you choose a static configuration, you'll need to provide:
- An optional MAC address change
- A fixed IP address (e.g., x.x.x.x/y)
- A route (default: 0.0.0.0/0)
- A gateway (usually x.x.x.1/24)
- DNS (default: 9.9.9.9)
3. **IP Address Configuration:**
- Choose between:
- **DHCP (Dynamic Host Configuration Protocol):** Automatically assigns an IP address.
- **Static IP:** Manually enter details:
- **MAC Address (optional):** Specify if you want spoofing MAC address.
- **IP Address:** Use CIDR notation (e.g., `192.168.1.10/24`).
- **Route:** Default is `0.0.0.0/0`.
- **Gateway:** Typically the router's IP, e.g., `192.168.1.1`.
- **DNS:** Default is `9.9.9.9`, but can be changed.
4. **Finalize Configuration:**
- Review and confirm your settings.
- The system applies the configurations, and your network should be set up.
<!--- footer STOP from tools/include/markdown/BNS001-footer.md --->
@@ -69,6 +83,11 @@ armbian-config --cmd BNS002
***
## View Network Settings
<!--- section image START from tools/include/images/VNS001.png --->
[![View Network Settings](/images/VNS001.png)](#)
<!--- section image STOP from tools/include/images/VNS001.png --->
**Command:**
~~~
armbian-config --cmd VNS001
@@ -244,6 +263,11 @@ More informations:
***
## WireGuard remove
<!--- section image START from tools/include/images/WG002.png --->
[![WireGuard remove](/images/WG002.png)](#)
<!--- section image STOP from tools/include/images/WG002.png --->
This operation will remove WireGuard
**Command:**
@@ -260,6 +284,11 @@ armbian-config --cmd WG002
***
## WireGuard clients QR codes
<!--- section image START from tools/include/images/WG003.png --->
[![WireGuard clients QR codes](/images/WG003.png)](#)
<!--- section image STOP from tools/include/images/WG003.png --->
**Command:**
~~~
armbian-config --cmd WG003
@@ -274,6 +303,11 @@ armbian-config --cmd WG003
***
## WireGuard purge with data folder
<!--- section image START from tools/include/images/WG004.png --->
[![WireGuard purge with data folder](/images/WG004.png)](#)
<!--- section image STOP from tools/include/images/WG004.png --->
This operation will purge WireGuard with data folder
**Command:**

View File

@@ -9,6 +9,38 @@
***
### Install alternative kernels
<!--- section image START from tools/include/images/SY201.png --->
[![Install alternative kernels](/images/SY201.png)](#)
<!--- section image STOP from tools/include/images/SY201.png --->
<!--- header START from tools/include/markdown/SY201-header.md --->
## Kernel Switching Warning
Switching between different kernel versions can significantly impact the functionality of your device. A newer or older kernel may introduce changes to hardware compatibility, drivers, and system stability. Some features may stop working, while others may improve or be reintroduced.
### ⚠️ Important Warning: Kernel changes carry inherent risks!
- A mismatched or incompatible kernel may result in **boot failures**, rendering the system unresponsive.
- Certain peripherals or hardware components (e.g., Wi-Fi, GPU acceleration, or power management) may no longer function correctly.
- Custom configurations or third-party modules might need to be recompiled or adjusted to work with the new kernel.
### ✅ Precautions Before Switching Kernels
Before switching kernels, it is **strongly recommended** to:
1. **Back up your system** to prevent data loss.
2. **Verify compatibility** of your hardware and essential drivers with the target kernel version.
3. **Keep a rescue method available**, such as a bootable SD card / USB drive or serial console access, to recover the system if necessary.
### 🛠️ Recovery Steps if Boot Fails
If your device fails to boot after a kernel change, you may need to:
- **Revert to a previous working kernel** using recovery options.
- **Use a serial console or debug mode** to diagnose the issue.
- **Reinstall the system** if no recovery options are available.
**⚡ Exercise caution when switching kernels, especially on production systems or devices with limited recovery options.**
<!--- header STOP from tools/include/markdown/SY201-header.md --->
Switching between kernels might change functionality of your device.
It might fail to boot!
@@ -27,6 +59,17 @@ armbian-config --cmd SY201
***
### Install Linux headers
<!--- section image START from tools/include/images/SY204.png --->
[![Install Linux headers](/images/SY204.png)](#)
<!--- section image STOP from tools/include/images/SY204.png --->
<!--- header START from tools/include/markdown/SY204-header.md --->
Linux headers are essential for compiling kernel modules and ensuring compatibility with software that interacts with the kernel.
<!--- header STOP from tools/include/markdown/SY204-header.md --->
**Command:**
~~~
armbian-config --cmd SY204
@@ -55,6 +98,11 @@ armbian-config --cmd SY205
***
### Manage device tree overlays
<!--- section image START from tools/include/images/SY210.png --->
[![Manage device tree overlays](/images/SY210.png)](#)
<!--- section image STOP from tools/include/images/SY210.png --->
**Command:**
~~~
armbian-config --cmd SY210
@@ -83,6 +131,11 @@ armbian-config --cmd SY300
***
### Edit the boot environment
<!--- section image START from tools/include/images/SY010.png --->
[![Edit the boot environment](/images/SY010.png)](#)
<!--- section image STOP from tools/include/images/SY010.png --->
This will open /boot/armbianEnv.txt file to edit
CTRL+S to save
CTLR+X to exit
@@ -107,6 +160,11 @@ armbian-config --cmd SY010
***
### Install to internal storage
<!--- section image START from tools/include/images/SY001.png --->
[![Install to internal storage](/images/SY001.png)](#)
<!--- section image STOP from tools/include/images/SY001.png --->
**Command:**
~~~
armbian-config --cmd SY001
@@ -121,6 +179,33 @@ armbian-config --cmd SY001
***
### ZFS filesystem - enable support
<!--- header START from tools/include/markdown/SY220-header.md --->
# 📌 ZFS (Zettabyte File System)
## 🔍 Overview
**ZFS (Zettabyte File System)** is a high-performance, scalable, and robust file system designed to provide advanced data protection, integrity, and storage management. Developed by Sun Microsystems, ZFS is widely used in enterprise environments, NAS systems, and personal storage solutions due to its unique features.
## 🛠️ Key Features
### ✅ Data Integrity
- **Copy-on-Write (CoW):** Prevents data corruption by never overwriting live data.
- **Checksumming:** Detects and corrects silent data corruption (bit rot).
### 📦 Storage Management
- **Pooled Storage:** Eliminates the need for traditional partitions; all storage is managed dynamically.
- **Snapshots & Clones:** Creates instant backups without using extra storage.
### 🚀 Performance & Scalability
- **Efficient Compression & Deduplication:** Reduces storage usage without performance loss.
- **Dynamic Striping & Caching:** Distributes data across multiple disks for optimized read/write speeds.
### 🔐 Advanced Security
- **Native Encryption:** Supports dataset-level encryption for secure data storage.
- **RAID-Z:** A superior RAID alternative that prevents write-hole issues.
<!--- header STOP from tools/include/markdown/SY220-header.md --->
**Command:**
~~~
armbian-config --cmd SY220
@@ -304,6 +389,11 @@ armbian-config --cmd NFS22
***
### Disable root login
<!--- section image START from tools/include/images/SY101.png --->
[![Disable root login](/images/SY101.png)](#)
<!--- section image STOP from tools/include/images/SY101.png --->
**Command:**
~~~
armbian-config --cmd SY101
@@ -555,6 +645,11 @@ armbian-config --cmd SSH202
***
### Change shell system wide to BASH
<!--- section image START from tools/include/images/SY005.png --->
[![Change shell system wide to BASH](/images/SY005.png)](#)
<!--- section image STOP from tools/include/images/SY005.png --->
This will switch system wide shell to BASH
**Command:**
@@ -571,6 +666,19 @@ armbian-config --cmd SY005
***
### Change shell system wide to ZSH
<!--- header START from tools/include/markdown/SY006-header.md --->
**ZSH (Z Shell)** is an extended and highly customizable Unix shell that offers powerful features beyond traditional shells like **Bash**. It is widely used for its user-friendly enhancements, scripting capabilities, and plugin support.
## 🚀 Key Features
- **Auto-suggestions & Syntax Highlighting** ✨
- **Powerful Tab Completion & Globbing** 🔍
- **Customizable Prompt (e.g., with Oh My Zsh)** 🎨
- **Shared Command History Across Sessions** 📜
- **Built-in Spelling Correction** 🛠️
<!--- header STOP from tools/include/markdown/SY006-header.md --->
This will switch system wide shell to ZSH
**Command:**
@@ -608,6 +716,11 @@ armbian-config --cmd SY009
***
### Enable Armbian firmware upgrades
<!--- section image START from tools/include/images/SY202.png --->
[![Enable Armbian firmware upgrades](/images/SY202.png)](#)
<!--- section image STOP from tools/include/images/SY202.png --->
This will enable Armbian kernel upgrades that are currently put on hold.
**Command:**
@@ -731,6 +844,11 @@ armbian-config --cmd UNAT01
***
### Configure automatic package updates
<!--- section image START from tools/include/images/UNAT02.png --->
[![Configure automatic package updates](/images/UNAT02.png)](#)
<!--- section image STOP from tools/include/images/UNAT02.png --->
**Command:**
~~~
armbian-config --cmd UNAT02

BIN
docs/images/BNS001.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
docs/images/LO001.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
docs/images/SY001.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
docs/images/SY005.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
docs/images/SY010.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
docs/images/SY101.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
docs/images/SY201.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
docs/images/SY202.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
docs/images/SY204.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
docs/images/SY210.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Some files were not shown because too many files have changed in this diff Show More