mirror of
https://github.com/actualbudget/actual.git
synced 2026-04-30 02:29:58 -05:00
Fix end-to-end testing workflow (#758)
This commit is contained in:
22
.github/workflows/e2e-test.yml
vendored
22
.github/workflows/e2e-test.yml
vendored
@@ -15,24 +15,16 @@ jobs:
|
||||
uses: ./.github/actions/setup
|
||||
- name: Setup Playwright
|
||||
run: npx playwright install chromium --with-deps
|
||||
- name: Wait for Pages changed to neutral
|
||||
uses: fountainhead/action-wait-for-check@v1.1.0
|
||||
id: wait-for-Netlify
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
checkName: 'Pages changed - actualbudget'
|
||||
- name: Waiting for Netlify Preview
|
||||
if: steps.wait-for-Netlify.outputs.conclusion == 'neutral'
|
||||
uses: jakepartusch/wait-for-netlify-action@v1.4
|
||||
id: waitFor200
|
||||
with:
|
||||
site_name: 'actualbudget'
|
||||
max_timeout: 240
|
||||
- name: Wait for Netlify build to finish
|
||||
id: netlify
|
||||
env:
|
||||
COMMIT_SHA: ${{ github.event.pull_request.head.sha }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./bin/netlify-wait-for-build
|
||||
- name: Run E2E Tests on Netlify URL
|
||||
run: yarn e2e
|
||||
env:
|
||||
E2E_START_URL: https://deploy-preview-${{env.GITHUB_PR_NUMBER}}--actualbudget.netlify.app
|
||||
E2E_START_URL: ${{ steps.netlify.outputs.url }}
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: always()
|
||||
with:
|
||||
|
||||
40
bin/netlify-wait-for-build
Executable file
40
bin/netlify-wait-for-build
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
current_commit=$(git rev-parse HEAD)
|
||||
|
||||
echo "Running on commit $COMMIT_SHA"
|
||||
|
||||
function get_status() {
|
||||
echo "::group::API Response"
|
||||
curl --header "Authorization: Bearer $GITHUB_TOKEN" "https://api.github.com/repos/actualbudget/actual/commits/$COMMIT_SHA/statuses" > /tmp/status.json
|
||||
cat /tmp/status.json
|
||||
echo "::endgroup::"
|
||||
netlify=$(jq '[.[] | select(.context == "netlify/actualbudget/deploy-preview")][0]' /tmp/status.json)
|
||||
state=$(jq -r '.state' <<< "$netlify")
|
||||
echo "::group::Netlify Status"
|
||||
echo "$netlify"
|
||||
echo "::endgroup::"
|
||||
}
|
||||
|
||||
get_status
|
||||
|
||||
while [ "$netlify" == "null" ]; do
|
||||
echo "Waiting for Netlify to start building..."
|
||||
sleep 10
|
||||
get_status
|
||||
done
|
||||
|
||||
while [ "$state" == "pending" ]; do
|
||||
echo "Waiting for Netlify to finish building..."
|
||||
sleep 10
|
||||
get_status
|
||||
done
|
||||
|
||||
if [ "$state" == "success" ]; then
|
||||
echo -e "\033[0;32mNetlify build succeeded!\033[0m"
|
||||
jq -r '"url=" + .target_url' <<< "$netlify" > $GITHUB_OUTPUT
|
||||
exit 0
|
||||
else
|
||||
echo -e "\033[0;31mNetlify build failed. Cancelling end-to-end tests.\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
6
upcoming-release-notes/758.md
Normal file
6
upcoming-release-notes/758.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
category: Maintenance
|
||||
authors: [j-f1]
|
||||
---
|
||||
|
||||
Fix end-to-end testing workflow
|
||||
Reference in New Issue
Block a user