Skip to content

Deploy Nightly

Deploy Nightly #47

on:
workflow_dispatch:
schedule:
- cron: "0 6 * * *" # UTC
name: Deploy Nightly
concurrency:
group: nightly
cancel-in-progress: true
jobs:
check-and-deploy:
name: Check Changes and Deploy Nightly
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/[email protected]
with:
ssh-key: ${{ secrets.RELEASE_SSH_KEY }}
fetch-depth: 0
- name: Get latest nightly tag
id: latest-nightly
run: |
LATEST_NIGHTLY=$(git tag -l "*-nightly" --sort=-version:refname | head -n 1)
echo "latest_nightly=${LATEST_NIGHTLY}" >> $GITHUB_OUTPUT
echo "Latest nightly tag: ${LATEST_NIGHTLY}"
- name: Check for changes since last nightly
id: check-changes
run: |
LATEST_NIGHTLY="${{ steps.latest-nightly.outputs.latest_nightly }}"
if [ -z "$LATEST_NIGHTLY" ]; then
echo "No previous nightly tag found, proceeding with deployment"
echo "has_changes=true" >> $GITHUB_OUTPUT
else
# Check if there are any commits since the last nightly tag
COMMITS_SINCE=$(git rev-list --count ${LATEST_NIGHTLY}..HEAD)
echo "Commits since ${LATEST_NIGHTLY}: ${COMMITS_SINCE}"
if [ "$COMMITS_SINCE" -eq "0" ]; then
echo "No changes since last nightly tag"
echo "has_changes=false" >> $GITHUB_OUTPUT
else
echo "Found ${COMMITS_SINCE} commits since last nightly tag"
echo "has_changes=true" >> $GITHUB_OUTPUT
fi
fi
- name: Exit if no changes
if: steps.check-changes.outputs.has_changes == 'false'
run: |
echo "No changes detected since last nightly tag. Exiting without creating new nightly."
exit 0
- name: Configure Git user
if: steps.check-changes.outputs.has_changes == 'true'
run: |
git config user.name "jocmp"
git config user.email "[email protected]"
- name: Create nightly tag
if: steps.check-changes.outputs.has_changes == 'true'
run: |
NIGHTLY_TAG="$(date +'%Y.%m.%d')-nightly"
echo "Creating nightly tag: ${NIGHTLY_TAG}"
git tag "${NIGHTLY_TAG}"
git push origin ${NIGHTLY_TAG}