mirror of
https://github.com/ClementTsang/bottom.git
synced 2026-09-21 18:15:34 +00:00
ci: use scripts in more places in CI (#1906)
* move cirrus release script * update a few other places
This commit is contained in:
@@ -5,6 +5,8 @@
|
|||||||
# - MSI installer for Windows (.msi)
|
# - MSI installer for Windows (.msi)
|
||||||
# - .deb releases
|
# - .deb releases
|
||||||
# - .rpm releases
|
# - .rpm releases
|
||||||
|
#
|
||||||
|
# TODO: Break this up into scripts instead.
|
||||||
|
|
||||||
name: "build releases"
|
name: "build releases"
|
||||||
|
|
||||||
@@ -79,7 +81,11 @@ jobs:
|
|||||||
}
|
}
|
||||||
|
|
||||||
# macOS (x86-64 and aarch64)
|
# macOS (x86-64 and aarch64)
|
||||||
- { os: "macos-15-intel", target: "x86_64-apple-darwin", cross: false }
|
- {
|
||||||
|
os: "macos-15-intel",
|
||||||
|
target: "x86_64-apple-darwin",
|
||||||
|
cross: false,
|
||||||
|
}
|
||||||
- { os: "macos-15", target: "aarch64-apple-darwin", cross: false }
|
- { os: "macos-15", target: "aarch64-apple-darwin", cross: false }
|
||||||
|
|
||||||
# Windows (x86-64, x86)
|
# Windows (x86-64, x86)
|
||||||
@@ -322,12 +328,12 @@ jobs:
|
|||||||
- {
|
- {
|
||||||
os: "windows-2022",
|
os: "windows-2022",
|
||||||
target: "x86_64-pc-windows-msvc",
|
target: "x86_64-pc-windows-msvc",
|
||||||
output: "bottom_x86_64_installer.msi"
|
output: "bottom_x86_64_installer.msi",
|
||||||
}
|
}
|
||||||
- {
|
- {
|
||||||
os: "windows-11-arm",
|
os: "windows-11-arm",
|
||||||
target: "aarch64-pc-windows-msvc",
|
target: "aarch64-pc-windows-msvc",
|
||||||
output: "bottom_aarch64_installer.msi"
|
output: "bottom_aarch64_installer.msi",
|
||||||
}
|
}
|
||||||
runs-on: ${{ matrix.info.os }}
|
runs-on: ${{ matrix.info.os }}
|
||||||
steps:
|
steps:
|
||||||
@@ -416,7 +422,7 @@ jobs:
|
|||||||
raw=$(git branch -r --contains '${{ github.ref_name }}');
|
raw=$(git branch -r --contains '${{ github.ref_name }}');
|
||||||
BRANCH=${raw##*/};
|
BRANCH=${raw##*/};
|
||||||
fi
|
fi
|
||||||
python ./scripts/cirrus/release.py "$BRANCH" "release/" "${{ inputs.caller }}"
|
python ./scripts/ci/cirrus_release.py "$BRANCH" "release/" "${{ inputs.caller }}"
|
||||||
|
|
||||||
- name: Generate artifact attestation for file
|
- name: Generate artifact attestation for file
|
||||||
uses: actions/attest-build-provenance@6149ea5740be74af77f260b9db67e633f6b0a9a1 # v1.4.2
|
uses: actions/attest-build-provenance@6149ea5740be74af77f260b9db67e633f6b0a9a1 # v1.4.2
|
||||||
|
|||||||
@@ -6,14 +6,6 @@
|
|||||||
# - https://github.com/BurntSushi/ripgrep/blob/master/.github/workflows/ci.yml
|
# - https://github.com/BurntSushi/ripgrep/blob/master/.github/workflows/ci.yml
|
||||||
# - https://www.reillywood.com/blog/rust-faster-ci/
|
# - https://www.reillywood.com/blog/rust-faster-ci/
|
||||||
# - https://matklad.github.io/2021/09/04/fast-rust-builds.html
|
# - https://matklad.github.io/2021/09/04/fast-rust-builds.html
|
||||||
#
|
|
||||||
# Supported platforms run the following tasks:
|
|
||||||
# - Format
|
|
||||||
# - Test (built/test in separate steps)
|
|
||||||
# - Clippy (apparently faster to do it after the build/test)
|
|
||||||
#
|
|
||||||
# Unsupported platforms run the following tasks:
|
|
||||||
# - Clippy
|
|
||||||
|
|
||||||
name: ci
|
name: ci
|
||||||
|
|
||||||
|
|||||||
@@ -74,12 +74,10 @@ jobs:
|
|||||||
cargo install cargo-llvm-cov --version 0.6.11 --locked
|
cargo install cargo-llvm-cov --version 0.6.11 --locked
|
||||||
|
|
||||||
- name: Generate code coverage
|
- name: Generate code coverage
|
||||||
run: |
|
run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info --locked --target=${{ matrix.info.target }}
|
||||||
cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info --locked --target=${{ matrix.info.target }}
|
|
||||||
|
|
||||||
# The token is generally not needed, but sometimes the default shared token hits limits.
|
# The token is generally not needed, but sometimes the default shared token hits limits.
|
||||||
# Yes this is ugly as hell. Why this is not a built-in feature of GHA, I have no idea.
|
# Yes this is ugly as hell. Why this is not a built-in feature of GHA, I have no idea.
|
||||||
|
|
||||||
- name: Upload to codecov.io (Attempt 1)
|
- name: Upload to codecov.io (Attempt 1)
|
||||||
id: upload_attempt_1
|
id: upload_attempt_1
|
||||||
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0
|
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0
|
||||||
|
|||||||
@@ -75,14 +75,11 @@ jobs:
|
|||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
|
|
||||||
- name: Execute choco packaging script
|
- name: Execute choco packaging script
|
||||||
run: |
|
run: ./scripts/ci/generate_choco.sh
|
||||||
python "./scripts/windows/choco/choco_packager.py" "./release/bottom_x86_64-pc-windows-msvc.zip" ${{ env.RELEASE_VERSION }} "./scripts/windows/choco/bottom.nuspec.template" "./scripts/windows/choco/chocolateyinstall.ps1.template" "bottom.nuspec" "tools/chocolateyinstall.ps1" "tools/"
|
|
||||||
zip -r choco.zip "bottom.nuspec" "tools"
|
|
||||||
|
|
||||||
- name: Move release file into release directory
|
- name: Move release file into release directory
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: mv choco.zip release/
|
||||||
mv choco.zip release/
|
|
||||||
|
|
||||||
- name: Save release as artifact
|
- name: Save release as artifact
|
||||||
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
|
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
|
||||||
|
|||||||
@@ -34,11 +34,7 @@ jobs:
|
|||||||
run: pip install -r docs/requirements.txt
|
run: pip install -r docs/requirements.txt
|
||||||
|
|
||||||
- name: Configure git user and email
|
- name: Configure git user and email
|
||||||
run: |
|
run: ./scripts/ci/configure_git.sh
|
||||||
git config --global user.name ${GIT_USER}
|
|
||||||
git config --global user.email ${GIT_EMAIL}
|
|
||||||
echo Name: $(git config --get user.name)
|
|
||||||
echo Email: $(git config --get user.email)
|
|
||||||
|
|
||||||
- name: Build and deploy docs with mike
|
- name: Build and deploy docs with mike
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -67,20 +67,10 @@ jobs:
|
|||||||
run: pip install -r docs/requirements.txt
|
run: pip install -r docs/requirements.txt
|
||||||
|
|
||||||
- name: Configure git user and email
|
- name: Configure git user and email
|
||||||
run: |
|
run: ./scripts/ci/configure_git.sh
|
||||||
git config --global user.name ${GIT_USER}
|
|
||||||
git config --global user.email ${GIT_EMAIL}
|
|
||||||
echo Name: $(git config --get user.name)
|
|
||||||
echo Email: $(git config --get user.email)
|
|
||||||
|
|
||||||
- name: Build and deploy docs with mike as the latest stable branch
|
- name: Build and deploy docs with mike as the latest stable branch
|
||||||
run: |
|
run: ./scripts/ci/release_stable_docs.sh
|
||||||
cd docs
|
|
||||||
OLD_STABLE_VERSION=$(mike list stable | grep -Po '([0-9]+.[0-9]+.[0-9]+)' | head -n1)
|
|
||||||
echo ${OLD_STABLE_VERSION}
|
|
||||||
mike retitle --push stable ${OLD_STABLE_VERSION}
|
|
||||||
mike deploy --push --update-aliases ${RELEASE_VERSION} stable
|
|
||||||
mike retitle --push ${RELEASE_VERSION} "${RELEASE_VERSION} (stable)"
|
|
||||||
|
|
||||||
chocolatey:
|
chocolatey:
|
||||||
needs: [initialize]
|
needs: [initialize]
|
||||||
@@ -94,9 +84,6 @@ jobs:
|
|||||||
- name: Validate release version
|
- name: Validate release version
|
||||||
run: |
|
run: |
|
||||||
echo "Release version: ${{ env.RELEASE_VERSION }}"
|
echo "Release version: ${{ env.RELEASE_VERSION }}"
|
||||||
|
|
||||||
- name: Trigger choco
|
- name: Trigger choco
|
||||||
run: |
|
run: ./scripts/ci/release_choco.sh
|
||||||
curl -X POST https://api.github.com/repos/ClementTsang/choco-bottom/dispatches \
|
|
||||||
-H 'Accept: application/vnd.github.everest-preview+json' \
|
|
||||||
-u ${{ secrets.BOTTOM_PACKAGE_DEPLOYMENT }} \
|
|
||||||
--data '{ "event_type": "update", "client_payload": { "version": "'"$RELEASE_VERSION"'" } }'
|
|
||||||
|
|||||||
Executable
+6
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
git config --global user.name ${GIT_USER}
|
||||||
|
git config --global user.email ${GIT_EMAIL}
|
||||||
|
echo Name: $(git config --get user.name)
|
||||||
|
echo Email: $(git config --get user.email)
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
python "./scripts/windows/choco/choco_packager.py" \
|
||||||
|
"./release/bottom_x86_64-pc-windows-msvc.zip" \
|
||||||
|
${{ env.RELEASE_VERSION }} \
|
||||||
|
"./scripts/windows/choco/bottom.nuspec.template" \
|
||||||
|
"./scripts/windows/choco/chocolateyinstall.ps1.template" \
|
||||||
|
"bottom.nuspec" \
|
||||||
|
"tools/chocolateyinstall.ps1" \
|
||||||
|
"tools/"
|
||||||
|
zip -r choco.zip "bottom.nuspec" "tools"
|
||||||
Executable
+6
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
curl -X POST https://api.github.com/repos/ClementTsang/choco-bottom/dispatches \
|
||||||
|
-H 'Accept: application/vnd.github.everest-preview+json' \
|
||||||
|
-u ${{ secrets.BOTTOM_PACKAGE_DEPLOYMENT }} \
|
||||||
|
--data '{ "event_type": "update", "client_payload": { "version": "'"$RELEASE_VERSION"'" } }'
|
||||||
Executable
+8
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cd docs
|
||||||
|
OLD_STABLE_VERSION=$(mike list stable | grep -Po '([0-9]+.[0-9]+.[0-9]+)' | head -n1)
|
||||||
|
echo ${OLD_STABLE_VERSION}
|
||||||
|
mike retitle --push stable ${OLD_STABLE_VERSION}
|
||||||
|
mike deploy --push --update-aliases ${RELEASE_VERSION} stable
|
||||||
|
mike retitle --push ${RELEASE_VERSION} "${RELEASE_VERSION} (stable)"
|
||||||
Reference in New Issue
Block a user