Skip to content

Commit

Permalink
refactor(many): Incorporate 3.0.3 version of The common Ansible role …
Browse files Browse the repository at this point in the history
…template(CI fixes)

Signed-off-by: 林博仁(Buo-ren Lin) <[email protected]>
  • Loading branch information
brlin-tw committed Sep 25, 2024
1 parent f3d6033 commit 2f18625
Show file tree
Hide file tree
Showing 25 changed files with 879 additions and 193 deletions.
9 changes: 7 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# This file is based on The Common EditorConfig Template project
# https://github.com/the-common/editorconfig-template
#
# Copyright 2021 林博仁(Buo-ren, Lin) <Buo.Ren.Lin@gmail.com>
# Copyright 2021 林博仁(Buo-ren, Lin) <buo.ren.lin@gmail.com>
# SPDX-License-Identifier: WTFPL

# This is the top-most EditorConfig file
Expand All @@ -20,7 +20,7 @@ insert_final_newline = true
trim_trailing_whitespace = true

# Git configuration files uses tabs as indentation units
[.git*]
[/.git{modules,config}]
indent_style = tab

# Avoid git patch fail to apply due to stripped unmodified lines that contains only spaces
Expand Down Expand Up @@ -59,3 +59,8 @@ indent_size = 2

[.*.{yml,yaml}]
indent_size = 2

# Keep the indentation style of the license text verbatim
[/LICENSES/*]
indent_size = unset
indent_style = unset
24 changes: 24 additions & 0 deletions .gitattributes
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 2024 林博仁(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
27 changes: 21 additions & 6 deletions .github/workflows/check-potential-problems.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,36 +5,51 @@
# * Workflow syntax for GitHub Actions - GitHub Docs
# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions
#
# Copyright 2022 林博仁(Buo-ren, Lin) <Buo.Ren.Lin@gmail.com>
# Copyright 2024 林博仁(Buo-ren Lin) <buo.ren.lin@gmail.com>
# SPDX-License-Identifier: CC-BY-SA-4.0
name: Check potential problems in the project
on:
- push
push:
branches:
- '**'
jobs:
check-using-precommit:
name: Check potential problems using pre-commit
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: Checking out content from repository
- name: Check out content from the Git repository
uses: actions/checkout@v4

- name: Configure PyPI data cache to speed up continuous integration
uses: actions/cache@v3
uses: actions/cache@v4
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
uses: actions/cache@v4
with:
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
path: ${{ env.PRE_COMMIT_HOME }}
- name: Running static analysis program
- name: >-
Configure pre-built ShellCheck cache to speed up continuous integration
uses: actions/cache@v4
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: Run the static analysis programs
run: |
sudo ./continuous-integration/do-static-analysis.install-system-deps.sh
./continuous-integration/do-static-analysis.sh
Expand Down
74 changes: 74 additions & 0 deletions .github/workflows/release.yml
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 2024 林博仁(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/action-gh-release@v2
with:
name: ${{ env.project_id }} ${{ env.release_version }}
files: |
${{ env.release_id }}.tar*
body_path: .detailed_changes
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# This file is based on The Common .gitignore Templates
# https://github.com/the-common/gitignore-templates
#
# Copyright 2022 林博仁(Buo-ren, Lin) <Buo.Ren.Lin@gmail.com>
# Copyright 2022 林博仁(Buo-ren, Lin) <buo.ren.lin@gmail.com>
# SPDX-License-Identifier: CC-BY-SA-4.0

# Don't track regular Unix hidden files
Expand Down Expand Up @@ -86,5 +86,5 @@
# Don't track GNU gettext machine-readable message catalogs
*.mo

# Don't track continuous intregration virtual environments
# Don't track continuous integration virtual environments
/continuous-integration/venv/
56 changes: 35 additions & 21 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,48 +5,62 @@
# * `.gitlab-ci.yml` keyword reference | GitLab
# https://docs.gitlab.com/ee/ci/yaml/
#
# Copyright 2023 林博仁(Buo-ren, Lin) <Buo.Ren.Lin@gmail.com>
# Copyright 2024 林博仁(Buo-ren Lin) <buo.ren.lin@gmail.com>
# SPDX-License-Identifier: CC-BY-SA-4.0
generate-build-artifacts:
stage: build
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

static-analysis:
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

create-release:
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: registry.gitlab.com/gitlab-org/release-cli:latest
image: curlimages/curl:latest
script:
- ./continuous-integration/upload-gitlab-generic-packages.sh

create-release:
stage: deploy
rules:
- if: $CI_COMMIT_TAG
# Workaround for gitlab-org/gitlab#223856
needs:
- generate-build-artifacts
- upload-release-assets
image: registry.gitlab.com/gitlab-org/release-cli:latest
script:
- echo 'Creating release...'
release:
tag_name: $CI_COMMIT_TAG
description: 'T.B.A.'
name: $CI_PROJECT_TITLE $CI_COMMIT_TAG
- apk add bash git
- ./continuous-integration/generate-release-description.sh
- ./continuous-integration/create-gitlab-release.sh
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
# * Git - gitmodules Documentation
# https://git-scm.com/docs/gitmodules
#
# Copyright 2021 林博仁(Buo-ren, Lin) <Buo.Ren.Lin@gmail.com>
# Copyright 2024 林博仁(Buo-ren Lin) <buo.ren.lin@gmail.com>
# SPDX-License-Identifier: CC-BY-SA-4.0
31 changes: 15 additions & 16 deletions .markdownlint.yml
Original file line number Diff line number Diff line change
@@ -1,47 +1,46 @@
# Markdownlint(Node.js variant) configuration file
# https://github.com/igorshubovych/markdownlint-cli#configuration
#
# This file is based on The Common Markdownlint(Node.js variant) Configuration Templates project
# https://github.com/Lin-Buo-Ren/common-markdownlint-nodejs-config-templates
# This file is based on The Common Markdownlint(Node.js variant)
# Configuration Templates project
# https://github.com/the-common/markdownlint-nodejs-config-templates
#
# Copyright 2021 林博仁(Buo-ren, Lin) <Buo.Ren.Lin@gmail.com>
# Copyright 2024 林博仁(Buo-ren Lin) <buo.ren.lin@gmail.com>
# SPDX-License-Identifier: CC-BY-SA-4.0

# Inherit Markdownlint rules
default: True

# Only allow consistent un-ordered list bullet style(allow alternations in sub-levels)
MD004:
# Only allow consistent un-ordered list bullet style(allow alternations
# in sub-levels)
ul-style:
style: sublist

# Only allow 4 spaces as indentation of lists
MD007:
ul-indent:
indent: 4

# Only allow 2 spaces as linebreak sequence
MD009:
no-trailing-spaces:
br_spaces: 2

# Disable line length limitation(not suitable with CJK context)
MD013: False
line-length: False

# Allow missing padding blank line between the heading markup and the context
MD022: False
blanks-around-headings: False

# Allow duplicated non-sibling heading text
MD024:
no-duplicate-heading:
siblings_only: True

# Allow missing padding blank line between a list and its context
MD032: False
blanks-around-lists: False

# Allow using raw HTML markups as workarounds of deficiencies of Markdown
MD033: False

# 佔位字是要被替換掉的,為此規則之特例
MD036: false
no-inline-html: False

# Allow using YAML front matter, while not require the definition of the
# `title` property
MD041:
first-line-h1:
front_matter_title: '.*'
Loading

0 comments on commit 2f18625

Please sign in to comment.