Skip to content

Nightly Build

Nightly Build #157

Workflow file for this run

name: "Nightly Build"
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
env:
nightly_tag: "nightly"
jobs:
build-nightly:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/develop'
steps:
- uses: actions/create-github-app-token@v3
id: cls-python-workflow-token
with:
app-id: ${{ secrets.CLS_PYTHON_WORKFLOW_CLIENT_ID }}
private-key: ${{ secrets.CLS_PYTHON_WORKFLOW_PRIVATE_KEY }}
- uses: actions/checkout@v7
with:
# Full history for timestamps
fetch-depth: 0
token: ${{ steps.cls-python-workflow-token.outputs.token }}
- name: Date and Hash
run: |
echo "DATESTAMP=$(date +'%d.%m.%Y')" >> $GITHUB_ENV
echo "COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.12'
- name: Install Hatch
uses: pypa/hatch@install
- name: Display Version
run: echo "NIGHTLY_VERSION=$(hatch version)" >> $GITHUB_ENV
- name: Build Package
run: hatch build
- name: Stable Url
run: |
cp dist/cosy_luigi-${{ env.NIGHTLY_VERSION }}.tar.gz dist/cosy_luigi-nightly.tar.gz
- name: Convert nightly to draft
run: gh release edit --draft "${{ env.nightly_tag }}" || true
env:
GH_TOKEN: ${{ steps.cls-python-workflow-token.outputs.token }}
- name: Move nightly tag to current HEAD
run: |
git config user.name "cls-python-workflows[bot]"
git config user.email "269699678+cls-python-workflows[bot]@users.noreply.github.com"
git tag -d ${{ env.nightly_tag }} || true
git push origin :refs/tags/${{ env.nightly_tag }} || true
git tag ${{ env.nightly_tag }}
git push origin ${{ env.nightly_tag }}
env:
GH_TOKEN: ${{ steps.cls-python-workflow-token.outputs.token }}
- name: Publish nightly on GitHub
run: |
while IFS= read -r line; do
gh release delete-asset "${{ env.nightly_tag }}" "$line"
done <<< "$(gh release view "${{ env.nightly_tag }}" --json assets --jq .assets[].name)"
gh release edit \
--verify-tag \
--title "Nightly@${{ env.NIGHTLY_VERSION }}" \
--notes "Nightly build of ''develop'', currently at ${{ env.COMMIT_HASH }}, built on ${{ env.DATESTAMP }}." \
--draft=false \
"${{ env.nightly_tag }}"
gh release upload --clobber "${{ env.nightly_tag }}" $ARTIFACTS
env:
GH_TOKEN: ${{ steps.cls-python-workflow-token.outputs.token }}
ARTIFACTS: >
dist/cosy_luigi-${{ env.NIGHTLY_VERSION }}.tar.gz
dist/cosy_luigi-nightly.tar.gz
dist/cosy_luigi-${{ env.NIGHTLY_VERSION }}-py3-none-any.whl