Skip to content

Commit 310e7e0

Browse files
authored
Merge pull request SmartThingsCommunity#2852 from SmartThingsCommunity/jenkins-backwards-lualibs-integration-testing
Setting up driver tests to run against previous versions of lua libs through jenkins pipeline
2 parents 144ddea + 905bf50 commit 310e7e0

2 files changed

Lines changed: 45 additions & 42 deletions

File tree

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Run Jenkins driver tests
2+
on:
3+
pull_request:
4+
paths:
5+
- 'drivers/**'
6+
7+
jobs:
8+
trigger-driver-test:
9+
strategy:
10+
matrix:
11+
version:
12+
[ 60 ]
13+
14+
runs-on: ubuntu-latest
15+
steps:
16+
17+
- name: Create Commit Status (Pending)
18+
id: status
19+
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd
20+
with:
21+
script: |
22+
core.setOutput('status_url', (await github.rest.repos.createCommitStatus({
23+
owner: context.repo.owner,
24+
repo: context.repo.repo,
25+
sha: context.sha,
26+
state: 'pending',
27+
description: 'Jenkins job triggered...',
28+
context: 'Driver Tests (${{ matrix.version }})'
29+
})).data.url);
30+
- name: Trigger Jenkins Generic Webhook
31+
env:
32+
JENKINS_WEBHOOK_TOKEN: ${{ secrets.JENKINS_WEBHOOK_TOKEN }}
33+
JENKINS_WEBHOOK_URL: ${{ secrets.JENKINS_WEBHOOK_URL }}
34+
STATUS_URL: ${{ steps.status.outputs.status_url }}
35+
run: |
36+
set +x
37+
curl -s -o /dev/null -X POST \
38+
-H "Content-Type: application/json" \
39+
-H "Authorization: Bearer ${JENKINS_WEBHOOK_TOKEN}" \
40+
-d "{\"status_url\": \"$STATUS_URL\",
41+
\"version\": ${{ matrix.version }},
42+
\"commit\": ${{ github.event.pull_request.head.sha }} }" \
43+
"${JENKINS_WEBHOOK_URL}"
44+
set -x

.github/workflows/run-tests.yml

Lines changed: 1 addition & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -39,51 +39,10 @@ jobs:
3939
id: cache_key
4040
run: echo "CACHE_KEY=${{ steps.lib-version.outputs.url }}-v1" >> $GITHUB_OUTPUT
4141

42-
get-dev-artifact:
43-
runs-on: ubuntu-latest
44-
outputs:
45-
cache_key: ${{ steps.cache_key.outputs.CACHE_KEY }}
46-
if: ${{ contains(join(github.event.pull_request.labels.*.name), 'release-') && github.event.pull_request.head.repo.fork != 'true' }}
47-
steps:
48-
- name: Get the version from the label
49-
id: label-version
50-
run: |
51-
echo "${{ join(github.event.pull_request.labels.*.name) }}" | grep -oP "release-\d+.\d+" | xargs > out
52-
echo "LIBRARY_VERSION=$(cat out)" >> $GITHUB_OUTPUT
53-
mkdir /home/runner/work/lua_libs
54-
- name: Find latest artifact
55-
id: latest
56-
env:
57-
ARTIFACTORY_URL: ${{ format('https://smartthings.jfrog.io/artifactory/edge-driver-libs/{0}/', steps.label-version.outputs.LIBRARY_VERSION) }}
58-
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
59-
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
60-
run: |
61-
wget --user=$ARTIFACTORY_USERNAME --password=$ARTIFACTORY_PASSWORD $ARTIFACTORY_URL -q -O - | grep '.zip' | awk -F' ' '{print $3"-"$4"\t"$2}' | sort -t - -k3n -k2M -k1n -k4n | tail -1 | grep -o 'lua_libs_[a-z0-9_]*.zip' | head -1 > out
62-
echo "ZIP_FILE=$(cat out)" >> $GITHUB_OUTPUT
63-
- name: Try to retrieve cache
64-
id: cached-libs
65-
uses: actions/cache@v3
66-
with:
67-
path: '/home/runner/work/lua_libs'
68-
key: ${{ steps.latest.outputs.ZIP_FILE }}-v1
69-
- name: Download and unpack specified version
70-
if: steps.cached-libs.outputs.cache-hit != 'true'
71-
env:
72-
ARTIFACTORY_URL: ${{ format('https://smartthings.jfrog.io/artifactory/edge-driver-libs/{0}/{1}', steps.label-version.outputs.LIBRARY_VERSION, steps.latest.outputs.ZIP_FILE) }}
73-
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
74-
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
75-
working-directory: '/home/runner/work/lua_libs'
76-
run: |
77-
wget --user=$ARTIFACTORY_USERNAME --password=$ARTIFACTORY_PASSWORD $ARTIFACTORY_URL -O lua_libs.zip
78-
unzip lua_libs.zip
79-
- name: Set output
80-
id: cache_key
81-
run: echo "CACHE_KEY=${{ steps.latest.outputs.ZIP_FILE }}-v1" >> $GITHUB_OUTPUT
82-
8342
run-driver-tests:
8443
runs-on: ubuntu-latest
8544
needs:
86-
[ get-latest-release-artifact, get-dev-artifact ]
45+
[ get-latest-release-artifact ]
8746
if: ${{ always() && contains(needs.*.result, 'success') && !contains(needs.*.result, 'failure') }}
8847
steps:
8948
- name: Set cache key

0 commit comments

Comments
 (0)