diff --git a/.github/deploy.sh b/.github/deploy.sh index e85e8874ba6..a3c57232f55 100644 --- a/.github/deploy.sh +++ b/.github/deploy.sh @@ -8,13 +8,12 @@ rm -rf out/master/ || exit 0 echo "Making the docs for master" mkdir out/master/ cp util/gh-pages/index.html out/master -python3 ./util/export.py out/master/lints.json +cp util/gh-pages/lints.json out/master if [[ -n $TAG_NAME ]]; then echo "Save the doc for the current tag ($TAG_NAME) and point stable/ to it" - cp -r out/master "out/$TAG_NAME" - rm -f out/stable - ln -s "$TAG_NAME" out/stable + cp -Tr out/master "out/$TAG_NAME" + ln -sf "$TAG_NAME" out/stable fi if [[ $BETA = "true" ]]; then @@ -28,8 +27,8 @@ cp util/gh-pages/versions.html out/index.html echo "Making the versions.json file" python3 ./util/versions.py out -cd out # Now let's go have some fun with the cloned repo +cd out git config user.name "GHA CI" git config user.email "gha@ci.invalid" diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 15aeaf907dc..b8be730be32 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -39,10 +39,23 @@ jobs: if: github.ref == 'refs/heads/beta' run: echo "BETA=true" >> $GITHUB_ENV - - name: Use scripts and templates from master branch + # We need to check out all files that (transitively) depend on the + # structure of the gh-pages branch, so that we're able to change that + # structure without breaking the deployment. + - name: Use deploy files from master branch run: | git fetch --no-tags --prune --depth=1 origin master - git checkout origin/master -- .github/deploy.sh util/gh-pages/ util/*.py + git checkout origin/master -- .github/deploy.sh util/versions.py util/gh-pages/versions.html + + # Generate lockfile for caching to avoid build problems with cached deps + - name: cargo generate-lockfile + run: cargo generate-lockfile + + - name: Cache + uses: Swatinem/rust-cache@v1.3.0 + + - name: cargo collect-metadata + run: cargo collect-metadata - name: Deploy run: | diff --git a/clippy_lints/src/utils/internal_lints/metadata_collector.rs b/clippy_lints/src/utils/internal_lints/metadata_collector.rs index 3eccc89cdeb..598450a725f 100644 --- a/clippy_lints/src/utils/internal_lints/metadata_collector.rs +++ b/clippy_lints/src/utils/internal_lints/metadata_collector.rs @@ -32,7 +32,7 @@ use clippy_utils::{ }; /// This is the output file of the lint collector. -const OUTPUT_FILE: &str = "../util/gh-pages/metadata_collection.json"; +const OUTPUT_FILE: &str = "../util/gh-pages/lints.json"; /// These lints are excluded from the export. const BLACK_LISTED_LINTS: [&str; 3] = ["lint_author", "deep_code_inspection", "internal_metadata_collector"]; /// These groups will be ignored by the lint group matcher. This is useful for collections like diff --git a/tests/dogfood.rs b/tests/dogfood.rs index a996f9df144..4ede20c5258 100644 --- a/tests/dogfood.rs +++ b/tests/dogfood.rs @@ -183,7 +183,7 @@ fn run_metadata_collection_lint() { use std::time::SystemTime; // Setup for validation - let metadata_output_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("util/gh-pages/metadata_collection.json"); + let metadata_output_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("util/gh-pages/lints.json"); let start_time = SystemTime::now(); // Run collection as is