Skip to content

skip rest of workflow properly #141

skip rest of workflow properly

skip rest of workflow properly #141

Workflow file for this run

name: Nightly Test Pipeline
on:
workflow_dispatch: {}
schedule:
# Runs every day at 12:00 AM UTC
- cron: '0 0 * * *'
push:
branches: ["*"] # Trigger on any branch
env:
BRANCH_NAME: master # Default branch for cron triggers
jobs:
nightly-screenshot-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Determine Trigger Source
id: trigger-source
run: |
if [[ "${{ github.event_name }}" == "push" ]]; then
LAST_COMMIT_MESSAGE=$(git log -1 --pretty=%B)
echo "Last commit message: $LAST_COMMIT_MESSAGE"
if [[ "$LAST_COMMIT_MESSAGE" == *"trigger screenshot tests"* ]]; then
echo "TRIGGER_SNAPSHOT_TESTS=true" >> $GITHUB_ENV
echo "BRANCH_NAME=${{ github.ref_name }}" >> $GITHUB_ENV
else
echo "TRIGGER_SNAPSHOT_TESTS=false" >> $GITHUB_ENV
fi
else
echo "TRIGGER_SNAPSHOT_TESTS=true" >> $GITHUB_ENV
fi
- name: Skip if Not a Trigger
if: env.TRIGGER_SNAPSHOT_TESTS == 'false'
run: exit 0
- name: Set sanitized branch name
id: sanitize-branch
run: |
echo "SANITIZED_BRANCH_NAME=$(echo $BRANCH_NAME | tr -dc '[:alpha:]' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
- name: Remove dev-deployment
run: |
curl -X POST \
-H "X-Auth-Token: ${{ secrets.RELEASE_API_TOKEN }}" \
https://kubernetix.scm.io/hooks/remove/webknossos/dev/${{ env.SANITIZED_BRANCH_NAME }}?user=CI+%28nightly%29
- name: Wait 3 minutes
run: sleep 180
- name: Install dev-deployment
run: |
curl -X POST \
-H "X-Auth-Token: ${{ secrets.RELEASE_API_TOKEN }}" \
https://kubernetix.scm.io/hooks/install/webknossos/dev/${{ env.SANITIZED_BRANCH_NAME }}?user=CI+%28nightly%29
- uses: actions/setup-node@v4
with:
node-version: 18
- name: Install dependencies and wait
run: |
corepack enable && yarn install --immutable &
sleep 180 &
wait
- name: Refresh datasets
run: |
curl -X POST --fail https://${{ env.SANITIZED_BRANCH_NAME }}.webknossos.xyz/data/triggers/checkInboxBlocking?token=${{ secrets.WK_AUTH_TOKEN }}
- name: Run screenshot tests
run: |
URL=https://${{ env.SANITIZED_BRANCH_NAME }}.webknossos.xyz/ \
timeout 3000 \
yarn test-screenshot
env:
URL: https://${{ env.SANITIZED_BRANCH_NAME }}.webknossos.xyz/
WK_AUTH_TOKEN: ${{ secrets.WK_AUTH_TOKEN }}
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
- name: Upload screenshots as artifact
uses: actions/upload-artifact@v4
if: always()
with:
name: screenshots
path: frontend/javascripts/test/screenshots