GitHub Actions CICD
一、基本概念 Basic Concepts
本次课程是 GitHub Actions 的继续课程,添加了对 CI/CD 线程的深入讲解。
This session is a continuation of GitHub Actions, going deeper into CI/CD workflows.
主要基于 Next.js 项目进行 Hands-on 实操。
Mainly involves hands-on practice with a Next.js project.
通过 GitHub Action 实现以下流程: build -> test -> publish.
Workflow: build -> test -> publish using GitHub Actions.
二、GitHub Actions 框架说明 Structure of GitHub Actions
Workflow: 一个 workflow 和 repo 关联,可包含多个 jobs
A workflow is tied to a repo and ...
蚂蚁上树
1.泡粉丝
开水泡泡得了
2.炒肉
起锅烧油
葱姜蒜
肉沫炒熟
炒出来多的水分倒掉
加豆瓣酱炒香
3.放调料
2 生抽 1 老抽
1 蚝油 1 糖
1 淀粉 1 孜然粉
半碗水搅匀
倒入肉翻炒
加入粉丝翻炒
4.出锅
大火收汁
撒葱花
云计算相关
CDN
CDN(Content Delivery Network)即内容分发网络,是一种通过网络来分发内容的技术。CDN 的基本原理是将内容分发到离用户最近的服务器上,这样用户可以更快地访问内容。CDN 可以提高网站的访问速度,减少服务器的负载,提高网站的稳定性。
CDN 的工作原理如下:
用户访问网站时,会先访问 CDN 的 DNS 服务器。
CDN 的 DNS 服务器会根据用户的 IP 地址,选择离用户最近的服务器。
用户访问 CDN 的服务器,获取网站的内容。
CDN 的服务器会缓存网站的内容,提高访问速度。
DNS
DNS(Domain Name System)即域名系统,是一种用来将域名转换为 IP 地址的系统。DNS 的基本原理是将域名映射到 IP 地址,这样用户可以通过域名来访问网站。
DNS 的工作原理如下:
用户输入域名,浏览器会向 DNS 服务器发送请求。
DNS 服务器会查询域名对应的 IP 地址。
DNS 服务器将 IP 地址返回给浏览器。
浏览器根据 IP 地址,访问网站的服务器。
负载均衡
负载均衡是一种通过分配任务到多个服务器上来提高系统性能和可靠 ...
一些常见的git命令
配置
git config --global user.name "name"git config --global user.email "email"
什么时候是用--global,什么时候不用呢?如果你只想在当前项目中使用这个配置,就不用--global
reset 和 revert
reset和revert都是用来撤销之前的提交,但是有一些区别。
reset是直接删除之前的提交,而revert是创建一个新的提交,这个提交是之前提交的反向操作。
merge 和 rebase
merge和rebase都是用来合并分支的,但是有一些区别。
merge是将两个分支的提交合并到一起,形成一个新的提交。rebase是将两个分支的提交按照时间顺序重新排序,然后合并到一起。
其他内容参考这里
海龟汤系列
红汤:有人死亡
清汤:无人死亡
黑汤:全员死亡
胡辣汤:有人受伤
鸳鸯汤:有人快要死亡
本格:现实生活中会发生的事
变格:现实生活中不会发生的事
汤面:根据汤面去猜汤底
汤底:有的汤面有隐喻
海龟汤
火车
汤面:这是一辆行驶的火车,我刚上车不久,坐上了最后一节车厢,车厢里流了很多血,我知道我快要活不长了
查看汤底
人体蜈蚣
数据结构相关笔记⑦
W9
数据结构相关笔记①数据结构相关笔记②数据结构相关笔记③数据结构相关笔记④数据结构相关笔记⑤数据结构相关笔记⑥数据结构相关笔记⑦
贪心算法(Greedy Algorithm)
定义:贪心算法是一类算法,解决问题时每一步都选择当前状态下的局部最优解,希望通过这样的选择可以找到全局最优解。
特点:贪心算法的每一步都选择当前状态下的局部最优解,而不考虑全局最优解,因此贪心算法通常比较简单,容易实现。
1.贪心算法的通用形式
def generic_greedy(input):# 初始化 initialize result# 这里可以对输入进行排序,以确定考虑输入的顺序 determine order in which to consider input# 迭代选择贪心解 for each element i of the input (in above order) do# 如果元素 i 改进了结果,则更新结果 if element i improves result then update result with element i return resu ...
数据结构相关笔记⑥
W7-W8
数据结构相关笔记①数据结构相关笔记②数据结构相关笔记③数据结构相关笔记④数据结构相关笔记⑤数据结构相关笔记⑥数据结构相关笔记⑦
1.图的基本概念(Graph Basics)
1.1 图的定义
图(Graph)是由顶点(Vertices)和边(Edges)组成的一种数据结构。图是一种非线性数据结构,它是由顶点的有穷非空集合和顶点之间边的集合组成的。
1.2 边的类型(Edge Types)
有向边(Directed Edge):有向边是一个有序对,它连接两个顶点,其中一个是起始顶点,另一个是终止顶点,有一个箭头指向。
无向边(Undirected Edge):无向边是一个无序对,它连接两个顶点,没有起始顶点和终止顶点之分。
1.3 应用场景(Applications)
电子电路: 印刷电路板、集成电路。
交通网络: 公路网、航线网络。
计算机网络: 互联网、网页。
建模: 实体关系图、甘特图中的优先关系。
2.图的概念和术语 (Graph Concepts and Terminology)
2.1 路径(Path)
定义:路径是图中的一个顶点序列,其中 ...
MC开服
安装 Java
建议使用 Azul 的 Zulu JDK,它是一个免费的 JDK,可以在这里下载。
MCSManager 面板 :
介绍
MCSManager 是一个开源的 Minecraft 服务器管理面板,支持多种服务器类型,包括 Spigot、Paper、BungeeCord、Waterfall、Velocity、Vanilla、Forge、Fabric 等。附上官网链接和文档链接
一键安装
sudo su -c "wget -qO- https://script.mcsmanager.com/setup_cn.sh | bash"
启动方式
# 启动面板命令systemctl start mcsm-daemon.servicesystemctl start mcsm-web.service
# 重启面板命令systemctl restart mcsm-daemon.servicesystemctl restart mcsm-web.service
# 停止面板命令systemctl stop mcsm-web.servicesystemctl ...
数据结构相关笔记⑤
W6
数据结构相关笔记①数据结构相关笔记②数据结构相关笔记③数据结构相关笔记④数据结构相关笔记⑤数据结构相关笔记⑥数据结构相关笔记⑦
映射 (Map)
Map(映射)是一种数据结构,它将键(key)和值(value)成对存储。每个键最多储存一个元素,可以通过键快速找到对应的值。
常见实现方式
链表(Linked List-Based Map):每个节点存储一个键值对。可以处理任何类型的键。
适用场景:小型数据集,且不需要频繁查找时使用。
数组(Array-Based Map):键(key)直接作为数组的索引。这种实现方式需要键的范围是已知且受限的。
适用场景:键的范围较小且密集,空间不成为问题时使用。
哈希表(HashTable):使用哈希函数将键映射到存储位置,适合快速查找和插入。需要处理哈希冲突。
适用场景:大多数实际应用场景,如字典(Dictionary)、集合(Set)等。
树(如红黑树):使用平衡二叉搜索树存储键值对,保持顺序,适合需要有序数据的场合。
适用场景:需要有序性且支持范围查询的场景,如数据库中的索引。
哈希表 (HashTab ...
python相关①
python相关①python相关⓪
print函数
print函数的基本用法:
print函数用于在屏幕上显示信息。
基本语法:print(arg1, arg2, arg3, ...)
示例:输出字符串 "Hello, World!":print("Hello, World!")
打印多个信息:
可以通过逗号分隔多个数据来打印:print("Temperature:", 23)
打印变量:
也可以显示变量的值:temp = 23print("Temperature is", temp, "C")
格式化字符串(Formatted Strings):
Python 提供了格式化字符串语法,可以直接在字符串中嵌入变量名。格式化字符串以 f 开头,并使用花括号 {} 包围变量名:
print(f"Centigrade: {C}")print(f"Centigrade: {C ...
python相关⓪
python相关①python相关⓪
一些符号的英文名
符号中文名
符号
符号英文名
星号
*
star
冒号
:
colon
逗号
,
comma
问号
?
question mark
感叹
!
exclamation mark
圆括号
()
parentheses / round brackets
方括号
[]
brackets / square brackets
花括号
{}
braces / curly brackets
尖括号
<>
angle brackets / chevrons
数据结构相关笔记④
W5
数据结构相关笔记①数据结构相关笔记②数据结构相关笔记③数据结构相关笔记④数据结构相关笔记⑤数据结构相关笔记⑥数据结构相关笔记⑦
优先队列 (Priority Queue)
定义:优先队列是一种抽象数据类型,支持插入元素和删除最大(最小)元素的操作。优先队列的元素具有优先级,每次删除操作都会删除优先级最高的元素。
操作方法:
insert(k, v):插入键为 k,值为 v 的项。
remove_min():删除并返回具有最小键的项。
min():返回具有最小键的项但不删除。
size():返回队列中存储的项数。
is_empty():检查队列是否为空。
优先队列的实现方法
基于无序序列的优先队列 (Unsorted List Implementation)
插入操作 (insert):时间复杂度为 O(1),可以将项插入序列的开头或结尾。
删除最小项和查找最小项 (remove_min and min):时间复杂度为 O(n),因为必须遍历整个列表以找到最小的键。
基于有序序列的优先队列 (Sorted List Implementation)
插入操作 ...
数据结构相关笔记③
W4
数据结构相关笔记①数据结构相关笔记②数据结构相关笔记③数据结构相关笔记④数据结构相关笔记⑤数据结构相关笔记⑥数据结构相关笔记⑦
二叉搜索树(Binary Search Tree)
定义:二叉搜索树(Binary Search Tree,BST)是一种二叉树,存储键或键值对,满足以下性质:
对于每个节点 v,其左子树中的所有节点的键值都小于 v 的键值。
其右子树中的所有节点的键值都大于 v 的键值。
中序遍历 (Inorder Traversal) 二叉搜索树将会以递增顺序访问键值。
特点:任意节点 v 的左子树节点值均小于 v,右子树节点值均大于 v。搜索、插入、删除操作的时间复杂度与树的高度相关。
二叉搜索树的操作
1. 搜索(Search)
从根节点开始,沿着树向下遍历,依次比较要查找的键 k 与当前节点的键值:
如果 k 小于当前节点的键值,继续递归搜索左子树。
如果 k 大于当前节点的键值,继续递归搜索右子树。
如果找到外部节点(空节点),则说明树中没有该键。
def search(k, v): if v.isExternal(): ...
数据结构相关笔记②
W3
数据结构相关笔记①数据结构相关笔记②数据结构相关笔记③数据结构相关笔记④数据结构相关笔记⑤数据结构相关笔记⑥数据结构相关笔记⑦
树 (Tree)
在计算机科学中,树是一种抽象的层次结构模型。树结构由节点组成,并且这些节点之间具有父子关系。以下是一些常见的树的术语及其解释:
根节点 (Root)
没有父节点的节点。例如,节点 A 是根节点。
内部节点 (Internal Node)
至少有一个子节点的节点。例如,节点 A、B、C 和 F 都是内部节点。
外部节点/叶子节点 (External Node / Leaf Node)
没有子节点的节点。例如,节点 E、I、J、K、G、H 和 D 都是叶子节点。
祖先节点 (Ancestors)
包括父节点、祖父节点、曾祖父节点等。例如,节点 F 的祖先是 A 和 B。
后代节点 (Descendants)
包括子节点、孙节点、曾孙节点等。例如,节点 B 的后代包括 E、F、I、J 和 K。
兄弟节点 (Siblings)
具有相同父节点的两个节点。例如,节点 B 和 D 是兄弟节点。
深度 (Depth)
从根节点到某个节点的路径上的 ...
数据结构相关笔记①
W1-W2
数据结构相关笔记①数据结构相关笔记②数据结构相关笔记③数据结构相关笔记④数据结构相关笔记⑤数据结构相关笔记⑥数据结构相关笔记⑦
算法复杂度
算法复杂度描述了算法执行时间或空间随输入规模变化的增长趋势。以下是常见的算法复杂度及其表示方式:
常数 (Constant)
T(n)=Θ(1)T(n) = \Theta(1)
T(n)=Θ(1)
对数 (Logarithmic)
T(n)=Θ(logn)T(n) = \Theta(\log n)
T(n)=Θ(logn)
线性 (Linear)
T(n)=Θ(n)T(n) = \Theta(n)
T(n)=Θ(n)
准线性 (Quasi-linear)
T(n)=Θ(nlogn)T(n) = \Theta(n \log n)
T(n)=Θ(nlogn)
二次 (Quadratic)
T(n)=Θ(n2)T(n) = \Theta(n^2)
T(n)=Θ(n2)
三次 (Cubic)
T(n)=Θ(n3)T(n) = \Theta(n^3)
T(n)=Θ(n3)
指数 (Exponential)
T(n)=Θ(cn)T ...