Nightly Build #160
This file contains hidden or 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
| 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 | |