@dougefresh/ci 0.1.15 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/defaults.d.ts +14 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/defaults.js +104 -0
- package/dist/defaults.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +126 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +89 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/package.json +9 -2
- package/src/defaults.ts +12 -0
- package/src/index.ts +10 -1
- package/src/types.ts +12 -0
- package/.checkov.yml +0 -7
- package/.env.example +0 -61
- package/.gitattributes +0 -3
- package/.github/actions/install-yq/action.yaml +0 -80
- package/.github/actions/install-yq/scripts/unixish.sh +0 -112
- package/.github/actions/install-yq/scripts/windowsish.ps1 +0 -99
- package/.github/actions/jobtaker/action.yml +0 -29
- package/.github/actions/rust-config/action.yml +0 -34
- package/.github/actions/rust-init/action.yml +0 -75
- package/.github/additional-prompt.md +0 -62
- package/.github/ci-configs/dummy.yml +0 -24
- package/.github/ci-configs/rust/ai.yml +0 -65
- package/.github/ci-configs/rust-default.yml +0 -115
- package/.github/ci-configs/test/01.yml +0 -9
- package/.github/dependabot.yml +0 -26
- package/.github/prompts/create-release-notes.prompt.md +0 -29
- package/.github/prompts/unit-test.prompt.md +0 -77
- package/.github/rust-ci.ts +0 -5
- package/.github/workflows/action-ci.yml +0 -39
- package/.github/workflows/action-review.yml +0 -57
- package/.github/workflows/dummy-release.yml +0 -32
- package/.github/workflows/dummy-test.yml +0 -16
- package/.github/workflows/pages.yml +0 -59
- package/.github/workflows/pr-review.yml +0 -59
- package/.github/workflows/release.yml +0 -36
- package/.github/workflows/rust-release.yml +0 -133
- package/.github/workflows/rust.yml +0 -247
- package/.node-version +0 -1
- package/AGENTS.md +0 -28
- package/Cargo.toml +0 -6
- package/action.yml +0 -50
- package/biome.json +0 -108
- package/bun.lock +0 -39
- package/docs/SUMMARY.md +0 -3
- package/docs/book.toml +0 -49
- package/docs/index.md +0 -32
- package/pre-commit +0 -2
- package/prompt-template.md +0 -180
- package/scripts/bump-version.ts +0 -16
- package/scripts/generate-rust.ts +0 -9
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
name: Install YQ
|
|
2
|
-
description: |
|
|
3
|
-
Installs a version of YQ into the job tool cache using simple shell scripts
|
|
4
|
-
|
|
5
|
-
branding:
|
|
6
|
-
icon: copy
|
|
7
|
-
color: orange
|
|
8
|
-
|
|
9
|
-
inputs:
|
|
10
|
-
version:
|
|
11
|
-
required: true
|
|
12
|
-
description: 'Version of YQ to install'
|
|
13
|
-
default: 'v4.49.2'
|
|
14
|
-
download-compressed:
|
|
15
|
-
required: false
|
|
16
|
-
description: "If 'true', downloads .tar.gz of binary rather than raw binary. Save the tubes."
|
|
17
|
-
default: 'true'
|
|
18
|
-
force:
|
|
19
|
-
required: false
|
|
20
|
-
description: "If 'true', does not check for existing yq installation before continuing."
|
|
21
|
-
default: 'false'
|
|
22
|
-
|
|
23
|
-
outputs:
|
|
24
|
-
found:
|
|
25
|
-
description: "If 'true', yq was already found on this runner"
|
|
26
|
-
value: "${{ steps.yq-check-unix.outputs.found == 'true' || steps.yq-check-windows.outputs.found == 'true' }}"
|
|
27
|
-
installed:
|
|
28
|
-
description: "If 'true', yq was installed by this action"
|
|
29
|
-
value:
|
|
30
|
-
"${{ inputs.force == 'true' || steps.yq-check-unix.outputs.found == 'false' ||
|
|
31
|
-
steps.yq-check-windows.outputs.found == 'false' }}"
|
|
32
|
-
|
|
33
|
-
runs:
|
|
34
|
-
using: composite
|
|
35
|
-
steps:
|
|
36
|
-
- name: 'Check for yq - Unix-ish'
|
|
37
|
-
id: yq-check-unix
|
|
38
|
-
if: (runner.os == 'Linux' || runner.os == 'macOS')
|
|
39
|
-
shell: bash +e {0}
|
|
40
|
-
# language=bash
|
|
41
|
-
run: |
|
|
42
|
-
_yq_bin="$(which yq)"
|
|
43
|
-
if [ -f "${_yq_bin}" ]; then
|
|
44
|
-
echo "found=true" >> $GITHUB_OUTPUT
|
|
45
|
-
else
|
|
46
|
-
echo "found=false" >> $GITHUB_OUTPUT
|
|
47
|
-
fi
|
|
48
|
-
|
|
49
|
-
- name: 'Install yq - Unix-ish'
|
|
50
|
-
if:
|
|
51
|
-
(runner.os == 'Linux' || runner.os == 'macOS') && (steps.yq-check-unix.outputs.found == 'false' || inputs.force
|
|
52
|
-
== 'true')
|
|
53
|
-
shell: bash
|
|
54
|
-
env:
|
|
55
|
-
DL_COMPRESSED: "${{ inputs.download-compressed == 'true' }}"
|
|
56
|
-
YQ_VERSION: '${{ inputs.version }}'
|
|
57
|
-
run: $GITHUB_ACTION_PATH/scripts/unixish.sh
|
|
58
|
-
|
|
59
|
-
- name: 'Check for yq - Windows-ish'
|
|
60
|
-
id: yq-check-windows
|
|
61
|
-
if: runner.os == 'Windows'
|
|
62
|
-
shell: powershell
|
|
63
|
-
# language=powershell
|
|
64
|
-
run: |
|
|
65
|
-
if (Get-Command "yq.exe" -ErrorAction SilentlyContinue)
|
|
66
|
-
{
|
|
67
|
-
Add-Content $Env:GITHUB_OUTPUT "found=true"
|
|
68
|
-
}
|
|
69
|
-
else
|
|
70
|
-
{
|
|
71
|
-
Add-Content $Env:GITHUB_OUTPUT "found=false"
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
- name: 'Install yq - Windows-ish'
|
|
75
|
-
if: runner.os == 'Windows' && (steps.yq-check-windows.outputs.found == 'false' || inputs.force == 'true')
|
|
76
|
-
shell: powershell
|
|
77
|
-
env:
|
|
78
|
-
DL_COMPRESSED: "${{ inputs.download-compressed == 'true' }}"
|
|
79
|
-
YQ_VERSION: '${{ inputs.version }}'
|
|
80
|
-
run: '& $Env:GITHUB_ACTION_PATH\scripts\windowsish.ps1'
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
set -euo pipefail
|
|
4
|
-
|
|
5
|
-
echo '::group::Prep'
|
|
6
|
-
|
|
7
|
-
# validate input and prepare some vars
|
|
8
|
-
|
|
9
|
-
_base_url='https://github.com/mikefarah/yq/releases/download'
|
|
10
|
-
|
|
11
|
-
_os=
|
|
12
|
-
_arch=
|
|
13
|
-
|
|
14
|
-
_root_name=
|
|
15
|
-
_dl_name=
|
|
16
|
-
_dl_path=
|
|
17
|
-
_dl_url=
|
|
18
|
-
|
|
19
|
-
case $RUNNER_OS in
|
|
20
|
-
Linux)
|
|
21
|
-
_os='linux'
|
|
22
|
-
;;
|
|
23
|
-
macOS)
|
|
24
|
-
_os='darwin'
|
|
25
|
-
;;
|
|
26
|
-
|
|
27
|
-
*)
|
|
28
|
-
echo "Cannot handle OS of type $RUNNER_OS"
|
|
29
|
-
echo "Expected one of: [ Linux macOS ]"
|
|
30
|
-
exit 1
|
|
31
|
-
;;
|
|
32
|
-
esac
|
|
33
|
-
|
|
34
|
-
case $RUNNER_ARCH in
|
|
35
|
-
'X86')
|
|
36
|
-
_arch='386'
|
|
37
|
-
;;
|
|
38
|
-
'X64')
|
|
39
|
-
_arch='amd64'
|
|
40
|
-
;;
|
|
41
|
-
'ARM')
|
|
42
|
-
_arch='arm'
|
|
43
|
-
;;
|
|
44
|
-
'ARM64')
|
|
45
|
-
_arch='arm64'
|
|
46
|
-
;;
|
|
47
|
-
|
|
48
|
-
*)
|
|
49
|
-
echo "Cannot handle arch of type $RUNNER_ARCH"
|
|
50
|
-
echo "Expected one of: [ X86 X64 ARM ARM64 ]"
|
|
51
|
-
exit 1
|
|
52
|
-
;;
|
|
53
|
-
esac
|
|
54
|
-
|
|
55
|
-
_root_name="yq_${_os}_${_arch}"
|
|
56
|
-
|
|
57
|
-
echo "Creating temporary directory $RUNNER_TEMP/${_root_name}"
|
|
58
|
-
mkdir -p "$RUNNER_TEMP/${_root_name}"
|
|
59
|
-
|
|
60
|
-
if [[ $DL_COMPRESSED == 'true' ]]; then
|
|
61
|
-
_dl_name="${_root_name}.tar.gz"
|
|
62
|
-
_dl_path="$RUNNER_TEMP/${_dl_name}"
|
|
63
|
-
else
|
|
64
|
-
_dl_name="${_root_name}"
|
|
65
|
-
_dl_path="$RUNNER_TEMP/${_root_name}/${_dl_name}"
|
|
66
|
-
fi
|
|
67
|
-
|
|
68
|
-
# default to _something_...
|
|
69
|
-
_version="${YQ_VERSION}"
|
|
70
|
-
|
|
71
|
-
if [ -z "${YQ_VERSION}" ]; then
|
|
72
|
-
_version='v4.44.3'
|
|
73
|
-
fi
|
|
74
|
-
|
|
75
|
-
_dl_url="${_base_url}/${_version}/${_dl_name}"
|
|
76
|
-
|
|
77
|
-
echo '::endgroup::'
|
|
78
|
-
|
|
79
|
-
echo "::group::Downloading yq ${_version}"
|
|
80
|
-
|
|
81
|
-
echo "Src: ${_dl_url}"
|
|
82
|
-
echo "Dst: ${_dl_path}"
|
|
83
|
-
|
|
84
|
-
curl -L "${_dl_url}" -o "${_dl_path}"
|
|
85
|
-
|
|
86
|
-
echo '::endgroup::'
|
|
87
|
-
|
|
88
|
-
if [[ $DL_COMPRESSED == 'true' ]]; then
|
|
89
|
-
echo '::group::Expanding archive'
|
|
90
|
-
tar -xzv -C "$RUNNER_TEMP/${_root_name}" -f "${_dl_path}"
|
|
91
|
-
echo "Removing ${_dl_path}"
|
|
92
|
-
rm -rf "${_dl_path}"
|
|
93
|
-
echo '::endgroup::'
|
|
94
|
-
fi
|
|
95
|
-
|
|
96
|
-
echo '::group::Copying to tool cache'
|
|
97
|
-
|
|
98
|
-
echo "Creating tool cache directory $RUNNER_TOOL_CACHE/yq"
|
|
99
|
-
mkdir -p "$RUNNER_TOOL_CACHE/yq"
|
|
100
|
-
|
|
101
|
-
echo "Installing into tool cache:"
|
|
102
|
-
echo "Src: $RUNNER_TEMP/${_root_name}/${_root_name}"
|
|
103
|
-
echo "Dst: $RUNNER_TOOL_CACHE/yq/yq"
|
|
104
|
-
mv "$RUNNER_TEMP/${_root_name}/${_root_name}" "$RUNNER_TOOL_CACHE/yq/yq"
|
|
105
|
-
|
|
106
|
-
echo "Removing $RUNNER_TEMP/${_root_name}"
|
|
107
|
-
rm -rf "$RUNNER_TEMP/${_root_name}"
|
|
108
|
-
|
|
109
|
-
echo "Adding $RUNNER_TOOL_CACHE/yq to path..."
|
|
110
|
-
echo "$RUNNER_TOOL_CACHE/yq" >> $GITHUB_PATH
|
|
111
|
-
|
|
112
|
-
echo '::endgroup::'
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
$ErrorActionPreference = 'Stop'
|
|
2
|
-
Set-StrictMode -Version Latest
|
|
3
|
-
|
|
4
|
-
Write-Host "::group::Prep"
|
|
5
|
-
|
|
6
|
-
# validate input and prepare some vars
|
|
7
|
-
|
|
8
|
-
switch ($Env:RUNNER_ARCH)
|
|
9
|
-
{
|
|
10
|
-
"X86" {
|
|
11
|
-
$_arch = "386"
|
|
12
|
-
}
|
|
13
|
-
"X64" {
|
|
14
|
-
$_arch = "amd64"
|
|
15
|
-
}
|
|
16
|
-
default {
|
|
17
|
-
Write-Host "Cannot handle arch of type $Env:RUNNER_ARCH"
|
|
18
|
-
Write-Host "Expected one of: [ X86 X64 ]"
|
|
19
|
-
exit 1
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
$_base_url = "https://github.com/mikefarah/yq/releases/download"
|
|
24
|
-
|
|
25
|
-
$_root_name = "yq_windows_${_arch}"
|
|
26
|
-
$_bin_name = "${_root_name}.exe"
|
|
27
|
-
|
|
28
|
-
Write-Host "Creating temporary directory $Env:RUNNER_TEMP\${_root_name}\"
|
|
29
|
-
New-Item "$Env:RUNNER_TEMP\${_root_name}\" -ItemType Directory -Force
|
|
30
|
-
|
|
31
|
-
if ($Env:DL_COMPRESSED -eq "true")
|
|
32
|
-
{
|
|
33
|
-
$_dl_name = "${_root_name}.zip"
|
|
34
|
-
$_dl_path = "$Env:RUNNER_TEMP\${_dl_name}"
|
|
35
|
-
}
|
|
36
|
-
else
|
|
37
|
-
{
|
|
38
|
-
$_dl_name = "${_bin_name}"
|
|
39
|
-
$_dl_path = "$Env:RUNNER_TEMP\${_root_name}\${_dl_name}"
|
|
40
|
-
Write-Host "Creating temporary directory $Env:RUNNER_TEMP\${_root_name}\"
|
|
41
|
-
New-Item "$Env:RUNNER_TEMP\${_root_name}\" -ItemType Directory -Force
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
$_version = "$Env:YQ_VERSION"
|
|
45
|
-
|
|
46
|
-
# default to _something_...
|
|
47
|
-
if ($_version -eq "")
|
|
48
|
-
{
|
|
49
|
-
$_version = "v4.44.3"
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
$_dl_url = "${_base_url}/${_version}/${_dl_name}"
|
|
53
|
-
|
|
54
|
-
Write-Host "::endgroup::"
|
|
55
|
-
|
|
56
|
-
# download artifact
|
|
57
|
-
|
|
58
|
-
Write-Host "::group::Downloading yq ${_version}"
|
|
59
|
-
|
|
60
|
-
Write-Host "Src: ${_dl_url}"
|
|
61
|
-
Write-Host "Dst: ${_dl_path}"
|
|
62
|
-
|
|
63
|
-
Invoke-WebRequest -Uri "${_dl_url}" -OutFile "${_dl_path}"
|
|
64
|
-
|
|
65
|
-
Write-Host "::endgroup::"
|
|
66
|
-
|
|
67
|
-
# expand archive, if necessary
|
|
68
|
-
|
|
69
|
-
if ($Env:DL_COMPRESSED -eq "true")
|
|
70
|
-
{
|
|
71
|
-
Write-Host "::group::Expanding archive"
|
|
72
|
-
|
|
73
|
-
Expand-Archive -LiteralPath "${_dl_path}" -DestinationPath "$Env:RUNNER_TEMP\${_root_name}\"
|
|
74
|
-
|
|
75
|
-
Write-Host "Removing ${_dl_path}"
|
|
76
|
-
Remove-Item -Force -Path "${_dl_path}"
|
|
77
|
-
|
|
78
|
-
Write-Host "::endgroup::"
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
# install into tool cache
|
|
82
|
-
|
|
83
|
-
Write-Host "::group::Copying to tool cache"
|
|
84
|
-
|
|
85
|
-
Write-Host "Creating tool cache directory $Env:RUNNER_TOOL_CACHE\yq\"
|
|
86
|
-
New-Item "$Env:RUNNER_TOOL_CACHE\yq\" -ItemType Directory -Force
|
|
87
|
-
|
|
88
|
-
Write-Host "Installing into tool cache:"
|
|
89
|
-
Write-Host "Src: $Env:RUNNER_TEMP\${_root_name}\${_bin_name}"
|
|
90
|
-
Write-Host "Dst: $Env:RUNNER_TOOL_CACHE\yq\yq.exe"
|
|
91
|
-
Move-Item -Force -LiteralPath "$Env:RUNNER_TEMP\${_root_name}\${_bin_name}" -Destination "$Env:RUNNER_TOOL_CACHE\yq\yq.exe"
|
|
92
|
-
|
|
93
|
-
Write-Host "Removing $Env:RUNNER_TEMP\${_root_name}"
|
|
94
|
-
Remove-Item -Force -Recurse -Path "$Env:RUNNER_TEMP\${_root_name}"
|
|
95
|
-
|
|
96
|
-
Write-Host "Adding $Env:RUNNER_TOOL_CACHE\yq\ to path..."
|
|
97
|
-
Add-Content "$Env:GITHUB_PATH" "$Env:RUNNER_TOOL_CACHE\yq\"
|
|
98
|
-
|
|
99
|
-
Write-Host "::endgroup::"
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
name: 'Jobtaker Review'
|
|
2
|
-
description: 'Runs Claude Code jobtaker with provided config'
|
|
3
|
-
inputs:
|
|
4
|
-
config:
|
|
5
|
-
description: 'JSON config from rust-config action'
|
|
6
|
-
required: true
|
|
7
|
-
anthropic_api_key:
|
|
8
|
-
description: 'Anthropic API key'
|
|
9
|
-
required: true
|
|
10
|
-
|
|
11
|
-
runs:
|
|
12
|
-
using: 'composite'
|
|
13
|
-
steps:
|
|
14
|
-
- name: jobtaker
|
|
15
|
-
if: ${{ fromJSON(inputs.config).ai.enabled }}
|
|
16
|
-
uses: anthropics/claude-code-action@v1
|
|
17
|
-
with:
|
|
18
|
-
anthropic_api_key: ${{ inputs.anthropic_api_key }}
|
|
19
|
-
trigger_phrase: '@jobtaker'
|
|
20
|
-
allowed_bots: ${{ fromJSON(inputs.config).ai.allowed_bots }}
|
|
21
|
-
prompt_file: claude-prompt.md
|
|
22
|
-
claude_args: ${{ fromJSON(inputs.config).ai.claude_args }}
|
|
23
|
-
use_sticky_comment: ${{ fromJSON(inputs.config).ai.use_sticky_comment }}
|
|
24
|
-
track_progress: "${{ fromJSON(inputs.config).ai.track_progress }}"
|
|
25
|
-
path_to_claude_code_executable: ''
|
|
26
|
-
path_to_bun_executable: ''
|
|
27
|
-
show_full_output: 'false'
|
|
28
|
-
plugins: ''
|
|
29
|
-
plugin_marketplaces: ''
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
name: Rust CI Config
|
|
2
|
-
description: Merge Rust CI Config
|
|
3
|
-
inputs:
|
|
4
|
-
git_token:
|
|
5
|
-
description: 'Token to authenticate for git'
|
|
6
|
-
required: false
|
|
7
|
-
arm64:
|
|
8
|
-
default: "ubicloud-standard-8-arm"
|
|
9
|
-
required: false
|
|
10
|
-
amd64:
|
|
11
|
-
default: "ubicloud-standard-4"
|
|
12
|
-
required: false
|
|
13
|
-
outputs:
|
|
14
|
-
config:
|
|
15
|
-
description: 'Configuration JSON output'
|
|
16
|
-
value: ${{ steps.config.outputs.config }}
|
|
17
|
-
runs:
|
|
18
|
-
using: composite
|
|
19
|
-
steps:
|
|
20
|
-
- name: Checkout code
|
|
21
|
-
uses: actions/checkout@v6
|
|
22
|
-
with:
|
|
23
|
-
token: ${{ inputs.git_token || github.token }}
|
|
24
|
-
- name: generate
|
|
25
|
-
id: generate
|
|
26
|
-
uses: dougefresh/ci@main
|
|
27
|
-
- name: replace runners
|
|
28
|
-
id: config
|
|
29
|
-
shell: bash
|
|
30
|
-
run: |
|
|
31
|
-
CONFIG="$(echo '${{ steps.generate.outputs.config }}' | sed \
|
|
32
|
-
-e 's/vars.RUNNER_ARM64/${{ inputs.arm64 }}/g' \
|
|
33
|
-
-e 's/vars.RUNNER_AMD64/${{ inputs.amd64 }}/g')"
|
|
34
|
-
echo "config=$CONFIG" >> $GITHUB_OUTPUT
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
name: Rust Init
|
|
2
|
-
description: Initialize a Rust project with a basic structure and dependencies.
|
|
3
|
-
inputs:
|
|
4
|
-
git_token:
|
|
5
|
-
description: 'Token to authenticate for git'
|
|
6
|
-
required: false
|
|
7
|
-
packages:
|
|
8
|
-
description: 'Packages to install per OS, see .github/ci-configs/rust-default.yml'
|
|
9
|
-
required: false
|
|
10
|
-
default: ''
|
|
11
|
-
ref:
|
|
12
|
-
description: 'Ref to checkout'
|
|
13
|
-
required: false
|
|
14
|
-
default: ''
|
|
15
|
-
runs:
|
|
16
|
-
using: composite
|
|
17
|
-
steps:
|
|
18
|
-
- name: Checkout code
|
|
19
|
-
uses: actions/checkout@v6
|
|
20
|
-
with:
|
|
21
|
-
token: ${{ inputs.git_token || github.token }}
|
|
22
|
-
ref: ${{ inputs.ref }}
|
|
23
|
-
- name: cache
|
|
24
|
-
uses: ubicloud/rust-cache@v2
|
|
25
|
-
with:
|
|
26
|
-
cache-on-failure: 'true'
|
|
27
|
-
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
|
28
|
-
with:
|
|
29
|
-
toolchain: stable,nightly
|
|
30
|
-
components: rustfmt,clippy
|
|
31
|
-
# - name: Install nightyly
|
|
32
|
-
# id: toolchain-nightly
|
|
33
|
-
# uses: dtolnay/rust-toolchain@nightly
|
|
34
|
-
# with:
|
|
35
|
-
# components: "rustfmt,clippy"
|
|
36
|
-
# - name: Install stable
|
|
37
|
-
# id: toolchain-stable
|
|
38
|
-
# shell: bash
|
|
39
|
-
# run: |
|
|
40
|
-
# rustup toolchain install stable --component clippy --profile minimal --no-self-update
|
|
41
|
-
# rustup default stable
|
|
42
|
-
# echo "name=stable" >> $GITHUB_OUTPUT
|
|
43
|
-
- name: Debug versions
|
|
44
|
-
shell: bash
|
|
45
|
-
run: |
|
|
46
|
-
cargo +nightly --version
|
|
47
|
-
cargo +stable --version
|
|
48
|
-
|
|
49
|
-
- name: packages
|
|
50
|
-
shell: bash
|
|
51
|
-
if: ${{ inputs.packages }}
|
|
52
|
-
run: |
|
|
53
|
-
set -x
|
|
54
|
-
packages=""
|
|
55
|
-
case $RUNNER_OS in
|
|
56
|
-
Linux)
|
|
57
|
-
packages="${{ fromJSON(inputs.packages).Linux }}"
|
|
58
|
-
;;
|
|
59
|
-
macOS)
|
|
60
|
-
packages="${{ fromJSON(inputs.packages).macOS }}"
|
|
61
|
-
;;
|
|
62
|
-
*)
|
|
63
|
-
echo "Cannot handle OS of type $RUNNER_OS"
|
|
64
|
-
echo "Expected one of: [ Linux macOS ]"
|
|
65
|
-
exit 0
|
|
66
|
-
;;
|
|
67
|
-
esac
|
|
68
|
-
|
|
69
|
-
if [ -z "$packages" ]; then
|
|
70
|
-
echo "No packages to install"
|
|
71
|
-
exit 0
|
|
72
|
-
fi
|
|
73
|
-
|
|
74
|
-
echo "Installing packages: $packages"
|
|
75
|
-
sudo $packages
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
# Configuration Validation
|
|
2
|
-
|
|
3
|
-
Before performing code review, validate your environment and permissions:
|
|
4
|
-
|
|
5
|
-
## Tool Access
|
|
6
|
-
|
|
7
|
-
Verify you can execute these commands:
|
|
8
|
-
- `cargo check` / `cargo test` / `cargo clippy`
|
|
9
|
-
- `bun run build` / `bun test`
|
|
10
|
-
- `tsgo` (TypeScript compiler wrapper)
|
|
11
|
-
|
|
12
|
-
If any tool fails, note it in your review.
|
|
13
|
-
|
|
14
|
-
## Permission Audit
|
|
15
|
-
|
|
16
|
-
Examine `claude_args` in `./src/defaults.ts` (variable: `DEFAULT_AI`):
|
|
17
|
-
|
|
18
|
-
1. **Tool allowlist**: Verify the comma-separated list is syntactically correct
|
|
19
|
-
2. **Security review**: Assess each allowed tool pattern for potential abuse:
|
|
20
|
-
- `Bash(*)` patterns: What commands could be chained?
|
|
21
|
-
- `mcp__github_inline_comment__*`: What GitHub API access is granted?
|
|
22
|
-
- File system access: Can sensitive files be read/modified?
|
|
23
|
-
|
|
24
|
-
3. **Risk assessment**: For each concern, provide:
|
|
25
|
-
- Attack vector example
|
|
26
|
-
- Likelihood (high/medium/low)
|
|
27
|
-
- Mitigation suggestion
|
|
28
|
-
|
|
29
|
-
Only flag **high likelihood** issues as blocking. Document medium/low risks for awareness.
|
|
30
|
-
|
|
31
|
-
## Configuration Sync
|
|
32
|
-
|
|
33
|
-
Compare workflow inputs in `.github/workflows/pr-review.yml` against `DEFAULT_AI` schema:
|
|
34
|
-
- Are all `fromJSON(needs.config.outputs.config).ai.*` fields defined in `DEFAULT_AI`?
|
|
35
|
-
- Do boolean/string types match between workflow and TypeScript?
|
|
36
|
-
|
|
37
|
-
Report mismatches as configuration bugs.
|
|
38
|
-
|
|
39
|
-
## User Config Validation
|
|
40
|
-
|
|
41
|
-
If `.github/rust-ci.ts` exists, validate it:
|
|
42
|
-
|
|
43
|
-
1. **Syntax**: Does it export a default function returning a `RustWorkflow`?
|
|
44
|
-
2. **Logic**: Check for contradictions:
|
|
45
|
-
- Jobs disabled but referenced in other configs
|
|
46
|
-
- Empty matrices (no OS/toolchains/features)
|
|
47
|
-
- Invalid arch values (not in `Arch` enum)
|
|
48
|
-
3. **Workflow impact**: What jobs will actually run? Flag if all jobs are disabled.
|
|
49
|
-
|
|
50
|
-
## Workflow Integrity
|
|
51
|
-
|
|
52
|
-
Validate `.github/workflows/pr-review.yml`:
|
|
53
|
-
|
|
54
|
-
1. **Job dependencies**: Does `needs: [config]` chain correctly? Are outputs referenced before they exist?
|
|
55
|
-
2. **Conditional logic**: Do all `if:` conditions reference valid event properties?
|
|
56
|
-
3. **Secret validation**: Is `ANTHROPIC_API_KEY` checked before use?
|
|
57
|
-
4. **Action versions**: Are pinned versions used (`@v1`, `@main`)? Flag unpinned refs.
|
|
58
|
-
5. **Runner variables**: Are `vars.RUNNER*` placeholders resolved by the config action?
|
|
59
|
-
6. **Input/output flow**: Trace `config.outputs.config` → `fromJSON()` → action inputs. Are all paths valid JSON?
|
|
60
|
-
|
|
61
|
-
Flag any broken references, missing dependencies, or unreachable code paths.
|
|
62
|
-
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
'$schema': https://github.com/CarteraMesh/ci/raw/refs/heads/main/schemas/rust-ci-config.schema.json
|
|
2
|
-
|
|
3
|
-
release:
|
|
4
|
-
cargo-publish: false
|
|
5
|
-
debian: false
|
|
6
|
-
profile: release
|
|
7
|
-
bin: dummy
|
|
8
|
-
os:
|
|
9
|
-
- target: 'aarch64-unknown-linux-gnu'
|
|
10
|
-
os: 'ubicloud-standard-8-arm64'
|
|
11
|
-
|
|
12
|
-
jobs:
|
|
13
|
-
semver:
|
|
14
|
-
if: false
|
|
15
|
-
continue-on-error: true
|
|
16
|
-
extra:
|
|
17
|
-
if: true
|
|
18
|
-
continue-on-error: false
|
|
19
|
-
name: extra-dummy
|
|
20
|
-
run: echo "Running extra job"
|
|
21
|
-
|
|
22
|
-
pages:
|
|
23
|
-
mdbook:
|
|
24
|
-
if: true
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
ai:
|
|
2
|
-
enabled: true
|
|
3
|
-
allowed_bots: '*'
|
|
4
|
-
claude_args: ''
|
|
5
|
-
use_sticky_comment: false
|
|
6
|
-
track_progress: true
|
|
7
|
-
prompt: |
|
|
8
|
-
Perform a comprehensive code review with the following focus areas:
|
|
9
|
-
Provide detailed feedback using inline comments for ONLY issues, no praise inline comments.
|
|
10
|
-
Use top-level comments for general observations or praise
|
|
11
|
-
Do not be shy, I am a big boy and can handle criticism gracefully. I welcome feedback and suggestions.
|
|
12
|
-
|
|
13
|
-
Review this PR against our team checklist:
|
|
14
|
-
|
|
15
|
-
## Code Quality
|
|
16
|
-
- [ ] Code follows our style guide
|
|
17
|
-
- [ ] No commented-out code
|
|
18
|
-
- [ ] Meaningful variable names
|
|
19
|
-
- [ ] DRY principle followed
|
|
20
|
-
|
|
21
|
-
## Testing
|
|
22
|
-
- [ ] Unit tests for new functions
|
|
23
|
-
- [ ] Integration tests for new endpoints
|
|
24
|
-
- [ ] Edge cases covered
|
|
25
|
-
- [ ] Test coverage > 80%
|
|
26
|
-
|
|
27
|
-
## Documentation
|
|
28
|
-
- [ ] README updated if needed
|
|
29
|
-
- [ ] API docs updated
|
|
30
|
-
- [ ] Inline comments for complex logic
|
|
31
|
-
- [ ] CHANGELOG.md updated
|
|
32
|
-
|
|
33
|
-
## Security
|
|
34
|
-
- [ ] No hardcoded credentials
|
|
35
|
-
- [ ] Input validation implemented
|
|
36
|
-
- [ ] Proper error handling
|
|
37
|
-
- [ ] No sensitive data in logs
|
|
38
|
-
|
|
39
|
-
For each item, check if it is satisfied and comment on any that need attention.
|
|
40
|
-
Post a summary comment with checklist results.
|
|
41
|
-
# https://code.claude.com/docs/en/settings
|
|
42
|
-
# https://www.schemastore.org/claude-code-settings.json
|
|
43
|
-
settings:
|
|
44
|
-
attribution:
|
|
45
|
-
commit: 'Generated with JobsTaker'
|
|
46
|
-
pr: ''
|
|
47
|
-
permissions:
|
|
48
|
-
allow:
|
|
49
|
-
- mcp__github_inline_comment__create_inline_comment,
|
|
50
|
-
- Bash(gh pr comment:*),
|
|
51
|
-
- Bash(gh pr diff:*),
|
|
52
|
-
- Bash(gh pr view:*),
|
|
53
|
-
- Bash(grep .*),
|
|
54
|
-
- Bash(rg .*),
|
|
55
|
-
- Bash(npm run lint)
|
|
56
|
-
- Bash(npm run test:*)
|
|
57
|
-
- Bash(cargo .*)
|
|
58
|
-
deny:
|
|
59
|
-
- Bash(cargo publis.*)
|
|
60
|
-
# - Read(./.env)
|
|
61
|
-
# - Read(./.env.*)
|
|
62
|
-
# - Read(./secrets/**)
|
|
63
|
-
env:
|
|
64
|
-
CLAUDE_CODE_ENABLE_TELEMETRY: '0'
|
|
65
|
-
OTEL_METRICS_EXPORTER: otlp
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
global:
|
|
2
|
-
# to match $RUNNER_OS
|
|
3
|
-
packages:
|
|
4
|
-
Linux: ''
|
|
5
|
-
macOS: ''
|
|
6
|
-
Windows: ''
|
|
7
|
-
toolchains:
|
|
8
|
-
- stable
|
|
9
|
-
- nightly
|
|
10
|
-
features:
|
|
11
|
-
- default
|
|
12
|
-
rustlog: info
|
|
13
|
-
fireblocks:
|
|
14
|
-
enabled: false
|
|
15
|
-
set-env-vars: true
|
|
16
|
-
|
|
17
|
-
pages:
|
|
18
|
-
mdbook:
|
|
19
|
-
if: false
|
|
20
|
-
path: docs
|
|
21
|
-
version: latest
|
|
22
|
-
command: mdbook build
|
|
23
|
-
|
|
24
|
-
release:
|
|
25
|
-
cargo-publish: true # release to cargo, otherwise just tag
|
|
26
|
-
debian: false
|
|
27
|
-
profile: 'release'
|
|
28
|
-
os:
|
|
29
|
-
- target: aarch64-unknown-linux-gnu
|
|
30
|
-
os: ubicloud-standard-8-arm
|
|
31
|
-
- target: x86_64-unknown-linux-gnu
|
|
32
|
-
os: ubicloud-standard-4
|
|
33
|
-
- target: aarch64-apple-darwin
|
|
34
|
-
os: macos-latest
|
|
35
|
-
# - target: x86_64-pc-windows-msvc
|
|
36
|
-
# os: windows-latest
|
|
37
|
-
jobs:
|
|
38
|
-
coverage:
|
|
39
|
-
if: true
|
|
40
|
-
continue-on-error: false
|
|
41
|
-
args:
|
|
42
|
-
test: ''
|
|
43
|
-
llvm: ''
|
|
44
|
-
run: |
|
|
45
|
-
cmd="cargo llvm-cov ${LLVM_ARGS} --locked --lcov --output-path lcov-${FEATURES}.info --no-fail-fast"
|
|
46
|
-
if [ "$FEATURES" == "default" ]; then
|
|
47
|
-
$cmd -- --no-capture $CARGO_ARGS
|
|
48
|
-
else
|
|
49
|
-
$cmd --features "$FEATURES" -- --no-capture $CARGO_ARGS
|
|
50
|
-
fi
|
|
51
|
-
matrix:
|
|
52
|
-
os: []
|
|
53
|
-
toolchains:
|
|
54
|
-
- stable
|
|
55
|
-
features:
|
|
56
|
-
- default
|
|
57
|
-
fmt:
|
|
58
|
-
if: true
|
|
59
|
-
continue-on-error: false
|
|
60
|
-
run: cargo +nightly fmt --check --all
|
|
61
|
-
clippy:
|
|
62
|
-
if: true
|
|
63
|
-
continue-on-error: false
|
|
64
|
-
flags: ''
|
|
65
|
-
matrix:
|
|
66
|
-
os: []
|
|
67
|
-
toolchains:
|
|
68
|
-
- stable
|
|
69
|
-
features:
|
|
70
|
-
- default
|
|
71
|
-
|
|
72
|
-
semver:
|
|
73
|
-
if: true
|
|
74
|
-
continue-on-error: false
|
|
75
|
-
hack:
|
|
76
|
-
if: true
|
|
77
|
-
continue-on-error: false
|
|
78
|
-
run: cargo hack --feature-powerset check
|
|
79
|
-
doc:
|
|
80
|
-
if: true
|
|
81
|
-
continue-on-error: false
|
|
82
|
-
run: cargo +nightly docs-rs
|
|
83
|
-
|
|
84
|
-
cargo-sort:
|
|
85
|
-
if: true
|
|
86
|
-
continue-on-error: false
|
|
87
|
-
run: |
|
|
88
|
-
if [ -f ./scripts/cargo-sort.sh ]; then
|
|
89
|
-
./scripts/cargo-sort.sh
|
|
90
|
-
else
|
|
91
|
-
cargo sort -c -g
|
|
92
|
-
fi
|
|
93
|
-
dependencies:
|
|
94
|
-
if: true
|
|
95
|
-
continue-on-error: false
|
|
96
|
-
run: cargo machete --with-metadata
|
|
97
|
-
|
|
98
|
-
sanitizers:
|
|
99
|
-
enabled: true
|
|
100
|
-
matrix:
|
|
101
|
-
os: []
|
|
102
|
-
features:
|
|
103
|
-
- default
|
|
104
|
-
address:
|
|
105
|
-
if: true
|
|
106
|
-
continue-on-error: false
|
|
107
|
-
run: cargo test --lib --tests --no-fail-fast --target x86_64-unknown-linux-gnu -- --no-capture
|
|
108
|
-
leak:
|
|
109
|
-
if: true
|
|
110
|
-
continue-on-error: false
|
|
111
|
-
run: cargo test --target x86_64-unknown-linux-gnu -- --no-capture
|
|
112
|
-
thread:
|
|
113
|
-
if: false
|
|
114
|
-
continue-on-error: false
|
|
115
|
-
run: cargo test --target x86_64-unknown-linux-gnu -- --test-threads=1
|