-
Notifications
You must be signed in to change notification settings - Fork 35
68 lines (66 loc) · 2.25 KB
/
snapshot-test.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
name: Snapshot test
on:
pull_request:
workflow_dispatch:
env:
DOCKER_TAG: bigomics/omicsplayground:latest
jobs:
unittest:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Shinytest docker
id: test-snapshot
run: |
docker build --build-arg GITHUB_SHA=${{ github.sha }} --build-arg HEAD_REF=${{ github.head_ref }} -t ${{ env.DOCKER_TAG }} -f ./.github/workflows/snapshot-test-resources/Dockerfile .
docker run --name run_tests bigomics/omicsplayground:latest
docker cp run_tests:omicsplayground/tests .
-
name: Upload snapshots as artifact
if: always()
uses: actions/upload-artifact@v3
with:
name: testthat-snapshots
path: ./tests/*
if-no-files-found: ignore
-
name: Configure Git
if: always()
run: |
git config --local user.name "$GITHUB_ACTOR"
git config --local user.email "[email protected]"
# -
# name: Setup upterm session
# uses: lhotari/action-upterm@v1
# with:
# ## limits ssh access and adds the ssh public key for the user which triggered the workflow
# limit-access-to-actor: true
# ## limits ssh access and adds the ssh public keys of the listed GitHub users
# limit-access-to-users: ESCRI11
# wait-timeout-minutes: 120
-
name: Commit and push snapshots
if: always()
run: |
cd ${{ github.workspace }}
if [[ `git status --porcelain` ]]; then
git checkout -b "${GITHUB_HEAD_REF}"
git add ./tests/*
git fetch origin "${GITHUB_HEAD_REF}"
git commit -m "Snapshot test failed: use snapshot_review('snapshot/') (GHA)"
git push --force-with-lease origin "${GITHUB_HEAD_REF}"
echo "snapshots pushed to repo"
fi
-
name: Fail GHA if snapshot test failed
if: always()
run: |
if [[ "${{ steps.test-snapshot.outputs.test_result }}" == "FALSE" ]]; then
exit 1
fi