nightly #128
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: "Replace with any word other than 'mock' to trigger a non-mock run." | |
default: "mock" | |
required: false | |
env: | |
CARGO_INCREMENTAL: 0 | |
CARGO_PROFILE_DEV_DEBUG: 0 | |
CARGO_HUSKY_DONT_INSTALL_HOOKS: true | |
jobs: | |
# TODO: Add a pre-job check to skip if no change; may want to add something to check if there is a new rust version/week limit of skips? | |
initialize-job: | |
name: initialize-job | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check if mock | |
run: | | |
echo "${{ github.event.inputs.isMock }}"; | |
if [[ -z "${{ github.event.inputs.isMock }}" ]]; then | |
echo "This is a scheduled nightly run." | |
elif [[ "${{ github.event.inputs.isMock }}" == "mock" ]]; 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] | |
uses: ./.github/workflows/build_releases.yml | |
with: | |
caller: "nightly" | |
secrets: inherit | |
upload-release: | |
name: upload-release | |
runs-on: ubuntu-latest | |
needs: [build-release] | |
steps: | |
- name: Get release artifacts | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: release | |
path: release | |
- name: Print out all release files | |
run: | | |
echo "Generated $(ls ./release | wc -l) files:" | |
du -h -d 0 ./release/* | |
- name: Delete tag and release | |
uses: ClementTsang/[email protected] | |
if: github.event.inputs.isMock != 'mock' | |
with: | |
delete_release: true | |
tag_name: nightly | |
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: Upload all saved release files if not mock | |
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # 0.1.15 | |
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/* |