@@ -2,73 +2,80 @@ name: Release build
22
33on :
44 push :
5- tags :
6- - v*
5+ branches :
6+ - master
7+ - develop
78
89jobs :
9- release :
10- name : Build runners distribution
10+ prepare :
11+ name : Create dist
1112 runs-on : ubuntu-latest
1213 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"]
1717 steps :
18- - name : Create Release
19- id : create_release
20- uses : actions/create-release@latest
18+ - name : Extract lambda name
19+ id : lambda
2120 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##*/}
3123 - uses : actions/checkout@v2
3224 - name : Add zip
3325 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
3434
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
4252 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
4755
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
5559 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 }}
6064
61- - name : Lambda runners - build
65+ - name : Release
66+ if : github.event_name != 'pull_request' && contains('refs/heads/master', github.ref)
6267 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'
6876 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