summaryrefslogtreecommitdiff
path: root/.github/workflows/nightly.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/nightly.yml')
-rw-r--r--.github/workflows/nightly.yml92
1 files changed, 92 insertions, 0 deletions
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
new file mode 100644
index 000000000..af13091c2
--- /dev/null
+++ b/.github/workflows/nightly.yml
@@ -0,0 +1,92 @@
+name: Nightly builds
+
+on:
+ workflow_dispatch:
+ schedule:
+ # Every day at 04:05 UTC
+ # https://crontab.guru/#05_04_*_*_*
+ - cron: '05 04 * * *'
+
+jobs:
+ pyinstaller:
+ if: "github.repository == 'qutebrowser/qutebrowser'"
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - os: macos-10.15
+ - os: windows-2019
+ args: --64bit
+ - os: windows-2019
+ args: --32bit
+ - os: macos-10.15
+ args: --debug
+ - os: windows-2019
+ args: --64bit --debug
+ - os: windows-2019
+ args: --32bit --debug
+ runs-on: "${{ matrix.os }}"
+ timeout-minutes: 30
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ persist-credentials: false
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: "3.10"
+ - name: Get asciidoc
+ uses: actions/checkout@v2
+ with:
+ repository: asciidoc-py/asciidoc-py
+ ref: '9.x'
+ path: asciidoc
+ persist-credentials: false
+ - name: Move asciidoc out of the repo
+ run: mv asciidoc ..
+ - name: Install dependencies
+ run: |
+ python -m pip install -U pip
+ python -m pip install -U -r misc/requirements/requirements-tox.txt
+ - name: Patch qutebrowser for debugging
+ if: "contains(matrix.args, '--debug')"
+ run: |
+ sed -i '' '/.-d., .--debug.,/s/$/ default=True,/' qutebrowser/qutebrowser.py
+ - name: Run tox
+ run: "tox -e build-release -- --asciidoc ../asciidoc/asciidoc.py --gh-token ${{ secrets.GITHUB_TOKEN }} ${{ matrix.args }}"
+ - name: Wait 90s to avoid upload errors
+ if: "contains(matrix.args, '--32bit')"
+ run: "sleep 90"
+ - name: Upload artifacts
+ uses: actions/upload-artifact@v2
+ with:
+ name: "qutebrowser-nightly-${{ github.sha }}"
+ path: |
+ dist/qutebrowser-*.dmg
+ dist/qutebrowser-*-windows-standalone-*.zip
+ dist/qutebrowser-*-*.exe
+
+ irc:
+ timeout-minutes: 2
+ continue-on-error: true
+ runs-on: ubuntu-20.04
+ needs: [pyinstaller]
+ if: "always() && github.repository == 'qutebrowser/qutebrowser'"
+ steps:
+ - name: Send success IRC notification
+ uses: Gottox/irc-message-action@v1
+ if: "needs.pyinstaller.result == 'success'"
+ with:
+ server: irc.libera.chat
+ channel: '#qutebrowser-bots'
+ nickname: qutebrowser-bot
+ message: "[${{ github.workflow }}] \u00033Success:\u0003 ${{ github.ref }} https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} (@${{ github.actor }})"
+ - name: Send non-success IRC notification
+ uses: Gottox/irc-message-action@v1
+ if: "needs.pyinstaller.result != 'success'"
+ with:
+ server: irc.libera.chat
+ channel: '#qutebrowser-bots'
+ nickname: qutebrowser-bot
+ message: "[${{ github.workflow }}] \u00034FAIL:\u0003 ${{ github.ref }} https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} (@${{ github.actor }})\n
+ pyinstaller: ${{ needs.pyinstaller.result }}"