generated from nhs-england-tools/repository-template
-
Notifications
You must be signed in to change notification settings - Fork 2
72 lines (69 loc) · 3.43 KB
/
cicd-1-pull-request.yaml
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
69
70
71
72
name: CI/CD Pull Request
# The total recommended execution time for the "CI/CD Pull Request" workflow is around 20 minutes.
on:
push:
branches:
- "main"
# pull_request:
# types: [opened, reopened]
jobs:
metadata:
runs-on: ubuntu-latest
timeout-minutes: 1
outputs:
build_datetime_local: ${{ steps.variables.outputs.build_datetime_local }}
build_datetime: ${{ steps.variables.outputs.build_datetime }}
build_timestamp: ${{ steps.variables.outputs.build_timestamp }}
build_epoch: ${{ steps.variables.outputs.build_epoch }}
golang_version: ${{ steps.variables.outputs.golang_version }}
version: ${{ steps.variables.outputs.version }}
does_pull_request_exist: ${{ steps.pr_exists.outputs.does_pull_request_exist }}
steps:
- name: Check out the repository
uses: actions/checkout@v3
- name: Set CI/CD variables
id: variables
run: |
datetime=$(date -u +'%Y-%m-%dT%H:%M:%S%z')
echo "build_datetime_local=$(TZ=Europe/London date --date=$datetime +'%Y-%m-%dT%H:%M:%S%z')" >> $GITHUB_OUTPUT
echo "build_datetime=$datetime" >> $GITHUB_OUTPUT
echo "build_timestamp=$(date --date=$datetime -u +'%Y%m%d%H%M%S')" >> $GITHUB_OUTPUT
echo "build_epoch=$(date --date=$datetime -u +'%s')" >> $GITHUB_OUTPUT
echo "golang_version=$(grep golang .tool-versions | cut -f2 -d' ')" >> $GITHUB_OUTPUT
echo "version=$(cat VERSION)" >> $GITHUB_OUTPUT
- name: Check if pull request exists for this branch
id: pr_exists
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
branch_name=${GITHUB_REF#refs/heads/}
echo "Current branch is '$branch_name'"
if gh pr list --head $branch_name | grep -q .; then
echo "Pull request exists"
echo "does_pull_request_exist=true" >> $GITHUB_OUTPUT
else
echo "Pull request doesn't exist"
echo "does_pull_request_exist=false" >> $GITHUB_OUTPUT
fi
- name: List variables
run: |
export BUILD_DATETIME_LOCAL="${{ steps.variables.outputs.build_datetime_local }}"
export BUILD_DATETIME="${{ steps.variables.outputs.build_datetime }}"
export BUILD_TIMESTAMP="${{ steps.variables.outputs.build_timestamp }}"
export BUILD_EPOCH="${{ steps.variables.outputs.build_epoch }}"
export VERSION="${{ steps.variables.outputs.version }}"
export GOLANG_VERSION="${{ steps.variables.outputs.golang_version }}"
export DOES_PULL_REQUEST_EXIST="${{ steps.pr_exists.outputs.does_pull_request_exist }}"
make list-variables
test-stage: # Recommended maximum execution time is 5 minutes
needs: [metadata] # ,commit-stage]
uses: ./.github/workflows/stage-2-test.yaml
with:
build_datetime: "${{ needs.metadata.outputs.build_datetime }}"
golang_version: "${{ needs.metadata.outputs.golang_version }}"
secrets:
UPDATE_FROM_TEMPLATE_GH_APP_ID: "${{ secrets.UPDATE_FROM_TEMPLATE_GH_APP_ID }}"
UPDATE_FROM_TEMPLATE_GH_APP_PK_CONTENT: "${{ secrets.UPDATE_FROM_TEMPLATE_GH_APP_PK_CONTENT }}"
UPDATE_FROM_TEMPLATE_GH_APP_SK_ID: "${{ secrets.UPDATE_FROM_TEMPLATE_GH_APP_SK_ID }}"
UPDATE_FROM_TEMPLATE_GH_APP_SK_CONTENT: "${{ secrets.UPDATE_FROM_TEMPLATE_GH_APP_SK_CONTENT }}"
UPDATE_FROM_TEMPLATE_GH_APP_SK_PASSPHRASE: "${{ secrets.UPDATE_FROM_TEMPLATE_GH_APP_SK_PASSPHRASE }}"