generated from libre-knowledge/subject-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor: Incorporate 3.0.1 version of the subject template(GitLab CI…
… support) Signed-off-by: 林博仁(Buo-ren Lin) <[email protected]>
- Loading branch information
Showing
23 changed files
with
1,499 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# Git path attributes configuration file | ||
# | ||
# References: | ||
# | ||
# * Git - Git Attributes | ||
# https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes | ||
# * Git - gitattributes Documentation | ||
# https://www.git-scm.com/docs/gitattributes | ||
# | ||
# Copyright 2023 林博仁(Buo-ren, Lin) <[email protected]> | ||
# SPDX-License-Identifier: CC-BY-SA-4.0 | ||
|
||
# Avoid exporting development files to release archive | ||
/.* export-ignore | ||
/continuous-integration export-ignore | ||
|
||
# Keep editorconfig for ease of editing of product files | ||
/.editorconfig -export-ignore | ||
|
||
# Keep REUSE DEP5 declaration file in the release archive for legal | ||
# conformance | ||
/.reuse/ -export-ignore | ||
/.reuse/* export-ignore | ||
/.reuse/dep5 -export-ignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,10 @@ | ||
# workflows | ||
|
||
放置 GitHub Actions 的工作流程(workflow)定義檔 | ||
放置 [GitHub Actions](https://github.com/features/actions) 的工作流程(workflow)定義檔 | ||
|
||
## 參考資料<br>Reference | ||
|
||
* [Features • GitHub Actions](https://github.com/features/actions) | ||
Product page | ||
* [GitHub Actions Documentation - GitHub Docs](https://docs.github.com/en/actions) | ||
Official documentation |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,26 +5,56 @@ | |
# * Workflow syntax for GitHub Actions - GitHub Docs | ||
# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions | ||
# | ||
# Copyright 2021 林博仁(Buo-ren, Lin) <[email protected]> | ||
# Copyright 2022 林博仁(Buo-ren, Lin) <[email protected]> | ||
# SPDX-License-Identifier: CC-BY-SA-4.0 | ||
name: 檢查專案中的潛在問題 | ||
on: | ||
- push | ||
push: | ||
branches: | ||
- '**' | ||
jobs: | ||
check-using-precommit: | ||
name: 使用 pre-commit 檢查專案中的潛在問題 | ||
runs-on: ubuntu-20.04 | ||
runs-on: ubuntu-22.04 | ||
env: | ||
PIP_CACHE_DIR: ${{ github.workspace }}/.cache/pip | ||
PRE_COMMIT_HOME: ${{ github.workspace }}/.cache/pre-commit | ||
SHELLCHECK_DIR: ${{ github.workspace }}/.cache/shellcheck-stable | ||
steps: | ||
- name: 自版控庫取出內容 | ||
uses: actions/checkout@v2 | ||
uses: actions/checkout@v4 | ||
|
||
- name: 安裝 pre-commit | ||
run: pip3 install pre-commit | ||
- name: Configure PyPI data cache to speed up continuous integration | ||
uses: actions/cache@v3 | ||
with: | ||
key: ${{ runner.os }}-pip | ||
path: ${{ env.PIP_CACHE_DIR }} | ||
|
||
- name: >- | ||
Configure pre-commit data cache to speed up continuous integration | ||
uses: actions/cache@v3 | ||
with: | ||
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }} | ||
path: ${{ env.PRE_COMMIT_HOME }} | ||
- name: >- | ||
Configure pre-built ShellCheck cache to speed up continuous integration | ||
uses: actions/cache@v3 | ||
with: | ||
key: ${{ runner.os }}-${{ runner.arch }}-shellcheck | ||
path: ${{ env.SHELLCHECK_DIR }} | ||
- name: >- | ||
Patch the sudo security policy so that programs run via sudo | ||
will recognize environment variables predefined by GitHub | ||
run: sudo ./continuous-integration/patch-github-actions-sudo-security-policy.sh | ||
- name: 使用 pre-commit 檢查專案中的所有檔案 | ||
run: pre-commit run --all-files --color always | ||
- name: Run the static analysis programs | ||
run: | | ||
sudo ./continuous-integration/do-static-analysis.install-system-deps.sh | ||
./continuous-integration/do-static-analysis.sh | ||
- name: 傳送持續整合結果告警到 Telegram 頻道 | ||
- name: Send CI result notification to the Telegram channel | ||
uses: yanzay/[email protected] | ||
if: always() | ||
with: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
# Release product and their build aritfacts | ||
# | ||
# References: | ||
# | ||
# * Workflow syntax for GitHub Actions - GitHub Docs | ||
# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions | ||
# | ||
# Copyright 2023 林博仁(Buo-ren, Lin) <[email protected]> | ||
# SPDX-License-Identifier: CC-BY-SA-4.0 | ||
name: Release product and their build aritfacts | ||
on: | ||
push: | ||
tags: | ||
- v*.*.* | ||
|
||
jobs: | ||
release: | ||
name: Release product and their build aritfacts | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- name: Check out content from the Git repository | ||
uses: actions/checkout@v4 | ||
with: | ||
# Increase fetch depth if you may have more than this amount | ||
# of revisions between releases | ||
fetch-depth: 100 | ||
|
||
# Fetch tags as well to generate detailed changes between two releases | ||
# WORKAROUND: Adding this option triggers actions/checkout#1467 | ||
#fetch-tags: true | ||
|
||
- name: >- | ||
WORKAROUND: Fetch tags that points to the revisions | ||
checked-out(actions/checkout#1467) | ||
run: |- | ||
git fetch \ | ||
--prune \ | ||
--prune-tags \ | ||
--force \ | ||
--depth=100 \ | ||
--no-recurse-submodules | ||
- name: Determine the project identifier | ||
run: printf "project_id=${GITHUB_REPOSITORY##*/}\\n" >> $GITHUB_ENV | ||
|
||
- name: Determine the name of the Git tag | ||
run: printf "release_tag=${GITHUB_REF##*/}\\n" >> $GITHUB_ENV | ||
|
||
- name: Determine the release version string | ||
run: printf "release_version=${release_tag#v}\\n" >> $GITHUB_ENV | ||
|
||
- name: Determine the release identifier | ||
run: printf "release_id=${project_id}-${release_version}\\n" >> $GITHUB_ENV | ||
|
||
- name: >- | ||
Patch the sudo security policy so that programs run via sudo | ||
will recognize environment variables predefined by GitHub | ||
run: sudo ./continuous-integration/patch-github-actions-sudo-security-policy.sh | ||
- name: Generate the release archive | ||
run: |- | ||
sudo ./continuous-integration/generate-build-artifacts.install-system-deps.sh | ||
./continuous-integration/generate-build-artifacts.sh | ||
- name: Generate the release description | ||
run: ./continuous-integration/generate-release-description.sh | ||
|
||
- name: Publish the release archive to the GitHub Releases | ||
uses: softprops/[email protected] | ||
with: | ||
name: ${{ env.project_id }} ${{ env.release_version }} | ||
files: | | ||
${{ env.release_id }}.tar* | ||
body_path: .detailed_changes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
# Version Tracking Ignore Rules for Git VCS | ||
# https://git-scm.com/docs/gitignore | ||
# | ||
# Exclude files not suitable for version tracking in Git | ||
# | ||
# This file is based on The Common .gitignore Templates | ||
# https://github.com/the-common/gitignore-templates | ||
# | ||
# Copyright 2022 林博仁(Buo-ren, Lin) <[email protected]> | ||
# SPDX-License-Identifier: CC-BY-SA-4.0 | ||
|
||
# Don't track regular Unix hidden files | ||
.* | ||
|
||
# Do track Git configuration files | ||
!.git* | ||
|
||
# Do track EditorConfig configuration files | ||
# https://editorconfig.org/ | ||
!.editorconfig | ||
|
||
# Do track pre-commit configuration files | ||
# https://pre-commit.com/ | ||
!.pre-commit-config.yaml | ||
|
||
# Do track Markdownlint configuration files | ||
# https://github.com/DavidAnson/markdownlint | ||
!.markdownlint.* | ||
|
||
# Do track Drone CI configuration files | ||
# https://docs.drone.io/ | ||
!.drone.yml | ||
|
||
# Do track yamllint configuration files | ||
!.yamllint | ||
|
||
# Do track REUSE configuration files | ||
# https://reuse.software/ | ||
!.reuse/ | ||
|
||
# Do track GitLab CI configuration file | ||
!/.gitlab-ci.yml | ||
|
||
# Don't track common backup filename extensions | ||
*~ | ||
*.bak* | ||
*.backup* | ||
*.bk* | ||
*.old* | ||
*.orig* | ||
|
||
## Don't track common archive files | ||
*.7z | ||
*.bz2 | ||
*.gz | ||
*.tar* | ||
*.xz | ||
*.zip | ||
|
||
# Don't track binary image files | ||
*.bmp | ||
*.jpg | ||
*.png | ||
|
||
# Don't track common export formats from Markdown | ||
*.doc? | ||
*.htm? | ||
|
||
# Don't track common program output logs | ||
*.err | ||
*.error | ||
*.log | ||
*.out | ||
*.output | ||
|
||
# Don't track compiled Python code caches | ||
*.pyc | ||
|
||
# Don't track Vagrant runtime directories | ||
.vagrant/ | ||
|
||
# Don't track GNU gettext message catalog template | ||
*.pot | ||
|
||
# Don't track GNU gettext machine-readable message catalogs | ||
*.mo | ||
|
||
# Don't track continuous integration virtual environments | ||
/continuous-integration/venv/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# GitLab CI configuration file | ||
# | ||
# References: | ||
# | ||
# * `.gitlab-ci.yml` keyword reference | GitLab | ||
# https://docs.gitlab.com/ee/ci/yaml/ | ||
# | ||
# Copyright 2023 林博仁(Buo-ren, Lin) <[email protected]> | ||
# SPDX-License-Identifier: CC-BY-SA-4.0 | ||
do-static-analysis: | ||
stage: test | ||
rules: | ||
- if: $CI_COMMIT_TAG == null | ||
needs: [] | ||
image: ubuntu:22.04 | ||
variables: | ||
PIP_CACHE_DIR: ${CI_PROJECT_DIR}/.cache/pip | ||
PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit | ||
SHELLCHECK_DIR: ${CI_PROJECT_DIR}/.cache/shellcheck-stable | ||
cache: | ||
# Enable per-job and per-branch caching | ||
key: $CI_JOB_NAME-$CI_COMMIT_REF_SLUG | ||
paths: | ||
- ${PIP_CACHE_DIR} | ||
- ${PRE_COMMIT_HOME} | ||
- ${SHELLCHECK_DIR} | ||
|
||
script: | ||
- ./continuous-integration/do-static-analysis.install-system-deps.sh | ||
- ./continuous-integration/do-static-analysis.sh | ||
|
||
generate-build-artifacts: | ||
stage: build | ||
rules: | ||
- if: $CI_COMMIT_TAG | ||
needs: [] | ||
image: ubuntu:22.04 | ||
artifacts: | ||
paths: | ||
- ${CI_PROJECT_NAME}-*.tar* | ||
script: | ||
- ./continuous-integration/generate-build-artifacts.install-system-deps.sh | ||
- ./continuous-integration/generate-build-artifacts.sh | ||
|
||
upload-release-assets: | ||
stage: deploy | ||
rules: | ||
- if: $CI_COMMIT_TAG | ||
needs: | ||
- generate-build-artifacts | ||
image: curlimages/curl:latest | ||
script: | ||
- ./continuous-integration/upload-gitlab-generic-packages.sh | ||
|
||
create-release: | ||
stage: deploy | ||
rules: | ||
- if: $CI_COMMIT_TAG | ||
needs: | ||
- generate-build-artifacts | ||
- upload-release-assets | ||
image: registry.gitlab.com/gitlab-org/release-cli:latest | ||
script: | ||
- apk add bash git | ||
- ./continuous-integration/generate-release-description.sh | ||
- ./continuous-integration/create-gitlab-release.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.