@@ -2,73 +2,80 @@ name: Release build
2
2
3
3
on :
4
4
push :
5
- tags :
6
- - v*
5
+ branches :
6
+ - master
7
+ - develop
7
8
8
9
jobs :
9
- release :
10
- name : Build runners distribution
10
+ prepare :
11
+ name : Create dist
11
12
runs-on : ubuntu-latest
12
13
container : node:12
13
- env :
14
- lambda_webhook_name : webhook
15
- lambda_runners_name : runners
16
- lambda_syncer_name : runner-binaries-syncer
14
+ strategy :
15
+ matrix :
16
+ lambda : ["modules/webhook/lambdas/webhook", "modules/runner-binaries-syncer/lambdas/runner-binaries-syncer", "modules/runners/lambdas/runners"]
17
17
steps :
18
- - name : Create Release
19
- id : create_release
20
- uses : actions/create-release@latest
18
+ - name : Extract lambda name
19
+ id : lambda
21
20
env :
22
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
23
- with :
24
- tag_name : ${{ github.ref }}
25
- release_name : Release ${{ github.ref }}
26
- draft : true
27
- prerelease : true
28
- - name : Extract tag name
29
- id : tag_name
30
- run : echo ::set-output name=TAG::${GITHUB_REF##*/}
21
+ LAMBDA : ${{ matrix.lambda }}
22
+ run : echo ::set-output name=name::${LAMBDA##*/}
31
23
- uses : actions/checkout@v2
32
24
- name : Add zip
33
25
run : apt update && apt install zip
26
+ - name : Build dist
27
+ working-directory : ${{ matrix.lambda }}
28
+ run : yarn install && yarn run test && yarn dist
29
+ - uses : actions/upload-artifact@v2
30
+ with :
31
+ name : ${{ steps.lambda.outputs.name }}
32
+ path : ${{ matrix.lambda }}/${{ steps.lambda.outputs.name }}.zip
33
+ retention-days : 1
34
34
35
- - name : Lambda webhook - build
36
- working-directory : modules/webhook/lambdas/webhook
37
- run : yarn install && yarn dist
38
- - name : Lambda webhook - Upload asset
39
- uses : actions/upload-release-asset@v1
40
- env :
41
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
35
+ release :
36
+ runs-on : ubuntu-latest
37
+ needs :
38
+ prepare
39
+ steps :
40
+ - uses : actions/checkout@v2
41
+ with :
42
+ fetch-depth : 0
43
+ - uses : actions/download-artifact@v2
44
+ with :
45
+ name : webhook
46
+ path : artifacts
47
+ - uses : actions/download-artifact@v2
48
+ with :
49
+ name : runners
50
+ path : artifacts
51
+ - uses : actions/download-artifact@v2
42
52
with :
43
- upload_url : ${{ steps.create_release.outputs.upload_url }}
44
- asset_path : modules/${{ env.lambda_webhook_name }}/lambdas/${{ env.lambda_webhook_name }}/${{ env.lambda_webhook_name }}.zip
45
- asset_name : ${{ env.lambda_webhook_name }}-${{ steps.tag_name.outputs.TAG }}.zip
46
- asset_content_type : application/zip
53
+ name : runner-binaries-syncer
54
+ path : artifacts
47
55
48
- - name : Lambda syncer - build
49
- working-directory : modules/runner-binaries-syncer/lambdas/runner-binaries-syncer
50
- run : yarn install && yarn dist
51
- - name : Lambda syncer - Upload asset
52
- uses : actions/upload-release-asset@v1
53
- env :
54
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
56
+ - name : Get installation token
57
+
58
+ id : app-token
55
59
with :
56
- upload_url : ${{ steps.create_release.outputs.upload_url }}
57
- asset_path : modules/ ${{ env.lambda_syncer_name }}/lambdas/${{ env.lambda_syncer_name }}/${{ env.lambda_syncer_name }}.zip
58
- asset_name : ${{ env.lambda_syncer_name }}-${{ steps.tag_name.outputs.TAG }}.zip
59
- asset_content_type : application/zip
60
+ appId : ${{ secrets.FOREST_RELEASER_APP_ID }}
61
+ appPrivateKeyBase64 : ${{ secrets.FOREST_RELEASER_APP_PRIVATE_KEY_BASE64 }}
62
+ appInstallationType : repo
63
+ appInstallationValue : ${{ github.repository }}
60
64
61
- - name : Lambda runners - build
65
+ - name : Release
66
+ if : github.event_name != 'pull_request' && contains('refs/heads/master', github.ref)
62
67
env :
63
- lambda_path : modules/runners/lambdas/runners
64
- working-directory : modules/runners/lambdas/runners
65
- run : yarn install && yarn dist
66
- - name : Lambda runners - Upload asset
67
- uses : actions/upload-release-asset@v1
68
+ GITHUB_TOKEN : ${{ steps.app-token.outputs.token }}
69
+ run : |
70
+ cp .release/* .
71
+ yarn
72
+ yarn release -d --repositoryUrl https://x-access-token:[email protected] /$GITHUB_REPOSITORY.git
73
+
74
+ - name : Dry run release
75
+ if : github.event_name != 'pull_request'
68
76
env :
69
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
70
- with :
71
- upload_url : ${{ steps.create_release.outputs.upload_url }}
72
- asset_path : modules/${{ env.lambda_runners_name }}/lambdas/${{ env.lambda_runners_name }}/${{ env.lambda_runners_name }}.zip
73
- asset_name : ${{ env.lambda_runners_name }}-${{ steps.tag_name.outputs.TAG }}.zip
74
- asset_content_type : application/zip
77
+ GITHUB_TOKEN : ${{ steps.app-token.outputs.token }}
78
+ run : |
79
+ cp .release/* .
80
+ yarn
81
+ yarn release -d --repositoryUrl https://x-access-token:[email protected] /$GITHUB_REPOSITORY.git
0 commit comments