nightly #1671
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Creates nightly deployment builds for main targets. Note this does not cover package distribution channels, | |
# such as choco. | |
name: nightly | |
on: | |
schedule: | |
- cron: "0 0 * * *" | |
workflow_dispatch: | |
inputs: | |
isMock: | |
description: "Mock run" | |
default: true | |
required: false | |
type: boolean | |
env: | |
CARGO_INCREMENTAL: 0 | |
CARGO_PROFILE_DEV_DEBUG: 0 | |
CARGO_HUSKY_DONT_INSTALL_HOOKS: true | |
jobs: | |
# Check if things should be skipped, or if this is a mock job. | |
initialize-job: | |
name: initialize-job | |
runs-on: ubuntu-latest | |
outputs: | |
should_skip: ${{ steps.skip_check.outputs.should_skip }} | |
steps: | |
- name: Check if this action should be skipped | |
id: skip_check | |
uses: fkirc/skip-duplicate-actions@f75f66ce1886f00957d99748a42c724f4330bdcf # v5.3.1 | |
with: | |
skip_after_successful_duplicate: "true" | |
do_not_skip: '["workflow_dispatch"]' | |
- name: Check if mock | |
run: | | |
if [[ -z "${{ github.event.inputs.isMock }}" ]]; then | |
echo "This is a scheduled nightly run." | |
elif [[ "${{ github.event.inputs.isMock }}" == "true" ]]; then | |
echo "This is a mock run." | |
else | |
echo "This is NOT a mock run. Watch for the generated files!" | |
fi | |
build-release: | |
needs: initialize-job | |
if: ${{ needs.initialize-job.outputs.should_skip != 'true' }} | |
uses: ./.github/workflows/build_releases.yml | |
with: | |
caller: "nightly" | |
secrets: inherit | |
upload-release: | |
name: upload-release | |
needs: build-release | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
with: | |
fetch-depth: 1 | |
- name: Get release artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
pattern: release-* | |
path: release | |
merge-multiple: true | |
- name: Print out all release files | |
run: | | |
echo "Generated $(ls ./release | wc -l) files:" | |
du -h -d 0 ./release/* | |
- name: Delete tag and release if not mock | |
if: github.event.inputs.isMock != 'mock' | |
run: gh release delete nightly --cleanup-tag | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Sleep for a few seconds to prevent timing issues between the deletion and creation of the release | |
run: sleep 10 | |
if: github.event.inputs.isMock != 'mock' | |
- name: Add all release files and create nightly release if not mock | |
uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # 2.0.8 | |
if: github.event.inputs.isMock != 'mock' | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
prerelease: true | |
tag_name: "nightly" | |
draft: false | |
fail_on_unmatched_files: true | |
files: | | |
./release/* |