diff --git a/.github/dotslash-argument-comment-lint-config.json b/.github/dotslash-argument-comment-lint-config.json new file mode 100644 index 0000000000..07633512ee --- /dev/null +++ b/.github/dotslash-argument-comment-lint-config.json @@ -0,0 +1,24 @@ +{ + "outputs": { + "argument-comment-lint": { + "platforms": { + "macos-aarch64": { + "regex": "^libargument_comment_lint@nightly-2025-09-18-aarch64-apple-darwin\\.dylib\\.zst$", + "path": "libargument_comment_lint@nightly-2025-09-18-aarch64-apple-darwin.dylib" + }, + "linux-x86_64": { + "regex": "^libargument_comment_lint@nightly-2025-09-18-x86_64-unknown-linux-gnu\\.so\\.zst$", + "path": "libargument_comment_lint@nightly-2025-09-18-x86_64-unknown-linux-gnu.so" + }, + "linux-aarch64": { + "regex": "^libargument_comment_lint@nightly-2025-09-18-aarch64-unknown-linux-gnu\\.so\\.zst$", + "path": "libargument_comment_lint@nightly-2025-09-18-aarch64-unknown-linux-gnu.so" + }, + "windows-x86_64": { + "regex": "^argument_comment_lint@nightly-2025-09-18-x86_64-pc-windows-msvc\\.dll\\.zst$", + "path": "argument_comment_lint@nightly-2025-09-18-x86_64-pc-windows-msvc.dll" + } + } + } + } +} diff --git a/.github/workflows/rust-release-argument-comment-lint.yml b/.github/workflows/rust-release-argument-comment-lint.yml new file mode 100644 index 0000000000..774fb4deb0 --- /dev/null +++ b/.github/workflows/rust-release-argument-comment-lint.yml @@ -0,0 +1,88 @@ +name: rust-release-argument-comment-lint + +on: + workflow_call: + inputs: + publish: + required: true + type: boolean + +jobs: + skip: + if: ${{ !inputs.publish }} + runs-on: ubuntu-latest + steps: + - run: echo "Skipping argument-comment-lint release assets for prerelease tag" + + build: + if: ${{ inputs.publish }} + name: Build - ${{ matrix.runner }} - ${{ matrix.target }} + runs-on: ${{ matrix.runs_on || matrix.runner }} + timeout-minutes: 60 + + strategy: + fail-fast: false + matrix: + include: + - runner: macos-15-xlarge + target: aarch64-apple-darwin + lib_name: libargument_comment_lint@nightly-2025-09-18-aarch64-apple-darwin.dylib + - runner: ubuntu-24.04 + target: x86_64-unknown-linux-gnu + lib_name: libargument_comment_lint@nightly-2025-09-18-x86_64-unknown-linux-gnu.so + - runner: ubuntu-24.04-arm + target: aarch64-unknown-linux-gnu + lib_name: libargument_comment_lint@nightly-2025-09-18-aarch64-unknown-linux-gnu.so + - runner: windows-x64 + target: x86_64-pc-windows-msvc + lib_name: argument_comment_lint@nightly-2025-09-18-x86_64-pc-windows-msvc.dll + runs_on: + group: codex-runners + labels: codex-windows-x64 + + steps: + - uses: actions/checkout@v6 + + - uses: dtolnay/rust-toolchain@1.93.0 + with: + toolchain: nightly-2025-09-18 + targets: ${{ matrix.target }} + components: llvm-tools-preview, rustc-dev, rust-src + + - name: Install dylint-link + shell: bash + run: cargo install --locked dylint-link + + - name: Cargo build + working-directory: tools/argument-comment-lint + shell: bash + run: cargo build --release --target ${{ matrix.target }} + + - if: ${{ runner.os == 'Windows' }} + name: Install DotSlash + uses: facebook/install-dotslash@v2 + + - name: Stage artifact + shell: bash + run: | + dest="dist/argument-comment-lint/${{ matrix.target }}" + mkdir -p "$dest" + cp "tools/argument-comment-lint/target/${{ matrix.target }}/release/${{ matrix.lib_name }}" \ + "$dest/${{ matrix.lib_name }}" + + - if: ${{ runner.os != 'Windows' }} + name: Compress artifact + shell: bash + run: | + zstd -T0 -19 --rm "dist/argument-comment-lint/${{ matrix.target }}/${{ matrix.lib_name }}" + + - if: ${{ runner.os == 'Windows' }} + name: Compress artifact + shell: bash + run: | + ./.github/workflows/zstd -T0 -19 --rm "dist/argument-comment-lint/${{ matrix.target }}/${{ matrix.lib_name }}" + + - uses: actions/upload-artifact@v7 + with: + name: argument-comment-lint-${{ matrix.target }} + path: dist/argument-comment-lint/${{ matrix.target }}/* diff --git a/.github/workflows/rust-release.yml b/.github/workflows/rust-release.yml index 12f2fc0d8d..2b6d2883e6 100644 --- a/.github/workflows/rust-release.yml +++ b/.github/workflows/rust-release.yml @@ -380,11 +380,19 @@ jobs: publish: true secrets: inherit + argument-comment-lint-release-assets: + name: argument-comment-lint release assets + needs: tag-check + uses: ./.github/workflows/rust-release-argument-comment-lint.yml + with: + publish: ${{ !contains(github.ref_name, '-') }} + release: needs: - build - build-windows - shell-tool-mcp + - argument-comment-lint-release-assets name: release runs-on: ubuntu-latest permissions: @@ -521,6 +529,14 @@ jobs: tag: ${{ github.ref_name }} config: .github/dotslash-config.json + - if: ${{ !contains(steps.release_name.outputs.name, '-') }} + uses: facebook/dotslash-publish-release@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag: ${{ github.ref_name }} + config: .github/dotslash-argument-comment-lint-config.json + - name: Trigger developers.openai.com deploy # Only trigger the deploy if the release is not a pre-release. # The deploy is used to update the developers.openai.com website with the new config schema json file. diff --git a/tools/argument-comment-lint/README.md b/tools/argument-comment-lint/README.md index 82e5605e36..56212516ea 100644 --- a/tools/argument-comment-lint/README.md +++ b/tools/argument-comment-lint/README.md @@ -68,6 +68,10 @@ cd tools/argument-comment-lint cargo test ``` +Stable GitHub releases also publish a DotSlash file named +`argument-comment-lint` for the prebuilt library on macOS arm64, Linux arm64, +Linux x64, and Windows x64. + Run the lint against `codex-rs` from the repo root: ```bash