12
12
schedule :
13
13
- cron : ' 0 3 * * *' # run every day at 3AM (https://docs.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events-schedule)
14
14
15
- env :
16
- IS_NIGHTLY : ${{ github.event_name == 'schedule' || github.head_ref == 'gh-actions' }} # TODO: remove OR once PR is merged.
17
- IS_RELEASE : ${{ startsWith(github.ref, 'refs/tags/v') }}
18
-
19
15
jobs :
16
+
20
17
build :
21
18
strategy :
22
19
matrix :
23
20
config :
24
21
- os : windows-2016
25
22
- os : ubuntu-latest
26
23
- os : turin-macmini # self-hosted macOS
27
-
28
24
runs-on : ${{ matrix.config.os }}
29
-
25
+ timeout-minutes : 30
30
26
steps :
31
27
- name : Checkout
32
28
uses : actions/checkout@v2
@@ -42,48 +38,86 @@ jobs:
42
38
with :
43
39
python-version : ' 2.7'
44
40
45
- - name : Build
46
- env :
47
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
48
- PUPPETEER_SKIP_CHROMIUM_DOWNLOAD : true
49
- run : yarn
50
-
51
- - name : Test
52
- run : yarn test
41
+ - name : Update Keychain [macOS]
42
+ if : runner.OS == 'macOS'
43
+ run : |
44
+ echo "${{ secrets.KEYCHAIN }}" | base64 --decode > ~/Library/Keychains/apple-developer.keychain-db
45
+ security list-keychains -s ~/Library/Keychains/apple-developer.keychain-db
46
+ security unlock-keychain -p "${{ secrets.KEYCHAIN_PASSWORD }}" ~/Library/Keychains/apple-developer.keychain-db
53
47
54
48
- name : Package
55
49
shell : bash
56
50
env :
57
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
58
- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }} # https://github.com/Microsoft/vscode/issues/28434#issuecomment-346199674
59
51
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD : true
52
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
60
53
AC_USERNAME : ${{ secrets.AC_USERNAME }}
61
54
AC_PASSWORD : ${{ secrets.AC_PASSWORD }}
62
55
AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
63
56
AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
57
+ IS_NIGHTLY : ${{ github.event_name == 'schedule' }}
58
+ IS_RELEASE : ${{ startsWith(github.ref, 'refs/tags/v') }}
64
59
run : |
65
- if [ "$RUNNER_OS" == "macOS" ]; then
66
- echo ">>> Detected macOS runner. Updating keychain for the app signing..."
67
- echo "${{ secrets.KEYCHAIN }}" | base64 --decode > ~/Library/Keychains/apple-developer.keychain-db
68
- security list-keychains -s ~/Library/Keychains/apple-developer.keychain-db
69
- security unlock-keychain -p "${{ secrets.KEYCHAIN_PASSWORD }}" ~/Library/Keychains/apple-developer.keychain-db
70
- echo "<<< The keychain has been successfully updated."
71
- fi
72
60
yarn --cwd ./electron/packager/
73
61
yarn --cwd ./electron/packager/ package
74
62
75
63
- name : Upload [GitHub Actions]
76
64
uses : actions/upload-artifact@v2
77
65
with :
78
- name : ${{ runner.os }}
66
+ name : build-artifacts
79
67
path : electron/build/dist/build-artifacts/
80
68
81
- - name : Upload [S3]
82
- if : env.IS_NIGHTLY == 'true'
69
+ publish :
70
+ needs : build
71
+ if : github.event_name == 'schedule'
72
+ runs-on : ubuntu-latest
73
+ steps :
74
+ - name : Download [GitHub Actions]
75
+ uses : actions/download-artifact@v2
76
+ with :
77
+ name : build-artifacts
78
+ path : build-artifacts
79
+
80
+ - name : Publish Nightly [S3]
83
81
uses : kittaakos/upload-s3-action@v0.0.1
84
82
with :
85
83
aws_key_id : ${{ secrets.AWS_ACCESS_KEY_ID }}
86
84
aws_secret_access_key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
87
85
aws_bucket : ${{ secrets.DOWNLOADS_BUCKET }}
88
- source_dir : electron/build/dist/ build-artifacts/
86
+ source_dir : build-artifacts/
89
87
destination_dir : arduino-pro-ide/nightly/
88
+
89
+ release :
90
+ needs : build
91
+ if : startsWith(github.ref, 'refs/tags/v')
92
+ runs-on : ubuntu-latest
93
+ steps :
94
+ - name : Download [GitHub Actions]
95
+ uses : actions/download-artifact@v2
96
+ with :
97
+ name : build-artifacts
98
+ path : build-artifacts
99
+
100
+ - name : Create Release [GitHub]
101
+ uses : actions/create-release@v1
102
+ env :
103
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
104
+ with :
105
+ tag_name : ${{ github.ref }}
106
+ release_name : ${{ github.ref }}
107
+
108
+ - name : Publish Release [GitHub]
109
+ uses : svenstaro/upload-release-action@v1-release
110
+ with :
111
+ repo_token : ${{ secrets.GITHUB_TOKEN }}
112
+ file : build-artifacts/*
113
+ tag : ${{ github.ref }}
114
+ file_glob : true
115
+
116
+ - name : Publish Release [S3]
117
+ uses : kittaakos/upload-s3-action@v0.0.1
118
+ with :
119
+ aws_key_id : ${{ secrets.AWS_ACCESS_KEY_ID }}
120
+ aws_secret_access_key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
121
+ aws_bucket : ${{ secrets.DOWNLOADS_BUCKET }}
122
+ source_dir : build-artifacts/
123
+ destination_dir : arduino-pro-ide/
0 commit comments