@@ -15,23 +15,14 @@ jobs:
15
15
uses : actions/setup-node@v2
16
16
with :
17
17
node-version : 14.x
18
- # - name: Merge master into release
19
- # uses: actions/github-script@v6
20
- # with:
21
- # github-token: ${{ secrets.GITHUB_TOKEN }}
22
- # script: |
23
- # github.rest.repos.merge({
24
- # owner: context.repo.owner,
25
- # repo: context.repo.repo,
26
- # base: 'release',
27
- # head: 'master'
28
- # })
29
18
- name : Checkout master branch (with history)
30
19
uses : actions/checkout@master
31
20
with :
32
21
# Release script requires git history and tags.
33
22
fetch-depth : 0
34
23
ref : master
24
+ # Merging locally and pushing instead of using a github-scripts
25
+ # REST call because we can't detect when that merge finishes.
35
26
- name : Merge master into release
36
27
run : |
37
28
git config user.name "GitHub Actions Bot"
@@ -49,106 +40,106 @@ jobs:
49
40
# pull master so changeset can diff against it
50
41
run : |
51
42
yarn ts-node-script scripts/ci/add_changeset.ts
52
- # - name: Create Release Pull Request
53
- # uses: changesets/action@v1
54
- # env:
55
- # GITHUB_TOKEN: ${{ secrets.OSS_BOT_GITHUB_TOKEN }}
56
- # - name: Go back to release branch
57
- # # changesets/action created and checked out a new branch
58
- # # return to `release` branch.
59
- # run: git checkout release
60
- # - name: Publish to NPM
61
- # # --skipTests No need to run tests
62
- # # --skipReinstall Yarn install has already been run
63
- # # --ignoreUnstaged Adding the @firebase/app changeset file means
64
- # # there's unstaged changes. Ignore.
65
- # # TODO: Make these flags defaults in the release script.
66
- # run: yarn release --releaseType Staging --ci --skipTests --skipReinstall --ignoreUnstaged
67
- # env:
68
- # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
69
- # NPM_TOKEN_ANALYTICS: ${{secrets.NPM_TOKEN_ANALYTICS}}
70
- # NPM_TOKEN_ANALYTICS_INTEROP_TYPES: ${{secrets.NPM_TOKEN_ANALYTICS_INTEROP_TYPES}}
71
- # NPM_TOKEN_ANALYTICS_TYPES: ${{secrets.NPM_TOKEN_ANALYTICS_TYPES}}
72
- # NPM_TOKEN_APP: ${{secrets.NPM_TOKEN_APP}}
73
- # NPM_TOKEN_APP_TYPES: ${{secrets.NPM_TOKEN_APP_TYPES}}
74
- # NPM_TOKEN_APP_CHECK: ${{secrets.NPM_TOKEN_APP_CHECK}}
75
- # NPM_TOKEN_APP_CHECK_INTEROP_TYPES: ${{secrets.NPM_TOKEN_APP_CHECK_INTEROP_TYPES}}
76
- # NPM_TOKEN_APP_CHECK_TYPES: ${{secrets.NPM_TOKEN_APP_CHECK_TYPES}}
77
- # NPM_TOKEN_AUTH: ${{secrets.NPM_TOKEN_AUTH}}
78
- # NPM_TOKEN_AUTH_INTEROP_TYPES: ${{secrets.NPM_TOKEN_AUTH_INTEROP_TYPES}}
79
- # NPM_TOKEN_AUTH_TYPES: ${{secrets.NPM_TOKEN_AUTH_TYPES}}
80
- # NPM_TOKEN_COMPONENT: ${{secrets.NPM_TOKEN_COMPONENT}}
81
- # NPM_TOKEN_DATABASE: ${{secrets.NPM_TOKEN_DATABASE}}
82
- # NPM_TOKEN_DATABASE_TYPES: ${{secrets.NPM_TOKEN_DATABASE_TYPES}}
83
- # NPM_TOKEN_FIRESTORE: ${{secrets.NPM_TOKEN_FIRESTORE}}
84
- # NPM_TOKEN_FIRESTORE_TYPES: ${{secrets.NPM_TOKEN_FIRESTORE_TYPES}}
85
- # NPM_TOKEN_FUNCTIONS: ${{secrets.NPM_TOKEN_FUNCTIONS}}
86
- # NPM_TOKEN_FUNCTIONS_TYPES: ${{secrets.NPM_TOKEN_FUNCTIONS_TYPES}}
87
- # NPM_TOKEN_INSTALLATIONS: ${{secrets.NPM_TOKEN_INSTALLATIONS}}
88
- # NPM_TOKEN_INSTALLATIONS_TYPES: ${{secrets.NPM_TOKEN_INSTALLATIONS_TYPES}}
89
- # NPM_TOKEN_LOGGER: ${{secrets.NPM_TOKEN_LOGGER}}
90
- # NPM_TOKEN_MESSAGING: ${{secrets.NPM_TOKEN_MESSAGING}}
91
- # NPM_TOKEN_MESSAGING_TYPES: ${{secrets.NPM_TOKEN_MESSAGING_TYPES}}
92
- # NPM_TOKEN_PERFORMANCE: ${{secrets.NPM_TOKEN_PERFORMANCE}}
93
- # NPM_TOKEN_PERFORMANCE_TYPES: ${{secrets.NPM_TOKEN_PERFORMANCE_TYPES}}
94
- # NPM_TOKEN_POLYFILL: ${{secrets.NPM_TOKEN_POLYFILL}}
95
- # NPM_TOKEN_REMOTE_CONFIG: ${{secrets.NPM_TOKEN_REMOTE_CONFIG}}
96
- # NPM_TOKEN_REMOTE_CONFIG_TYPES: ${{secrets.NPM_TOKEN_REMOTE_CONFIG_TYPES}}
97
- # NPM_TOKEN_RULES_UNIT_TESTING: ${{secrets.NPM_TOKEN_RULES_UNIT_TESTING}}
98
- # NPM_TOKEN_STORAGE: ${{secrets.NPM_TOKEN_STORAGE}}
99
- # NPM_TOKEN_STORAGE_TYPES: ${{secrets.NPM_TOKEN_STORAGE_TYPES}}
100
- # NPM_TOKEN_TESTING: ${{secrets.NPM_TOKEN_TESTING}}
101
- # NPM_TOKEN_UTIL: ${{secrets.NPM_TOKEN_UTIL}}
102
- # NPM_TOKEN_WEBCHANNEL_WRAPPER: ${{secrets.NPM_TOKEN_WEBCHANNEL_WRAPPER}}
103
- # NPM_TOKEN_FIREBASE: ${{secrets.NPM_TOKEN_FIREBASE}}
104
- # NPM_TOKEN_APP_COMPAT: ${{ secrets.NPM_TOKEN_APP_COMPAT }}
105
- # NPM_TOKEN_INSTALLATIONS_COMPAT: ${{ secrets.NPM_TOKEN_INSTALLATIONS_COMPAT }}
106
- # NPM_TOKEN_ANALYTICS_COMPAT: ${{ secrets.NPM_TOKEN_ANALYTICS_COMPAT }}
107
- # NPM_TOKEN_AUTH_COMPAT: ${{ secrets.NPM_TOKEN_AUTH_COMPAT }}
108
- # NPM_TOKEN_MESSAGING_INTEROP_TYPES: ${{ secrets.NPM_TOKEN_MESSAGING_INTEROP_TYPES }}
109
- # NPM_TOKEN_FUNCTIONS_COMPAT: ${{ secrets.NPM_TOKEN_FUNCTIONS_COMPAT }}
110
- # NPM_TOKEN_MESSAGING_COMPAT: ${{ secrets.NPM_TOKEN_MESSAGING_COMPAT }}
111
- # NPM_TOKEN_PERFORMANCE_COMPAT: ${{ secrets.NPM_TOKEN_PERFORMANCE_COMPAT }}
112
- # NPM_TOKEN_REMOTE_CONFIG_COMPAT: ${{ secrets.NPM_TOKEN_REMOTE_CONFIG_COMPAT }}
113
- # NPM_TOKEN_DATABASE_COMPAT: ${{ secrets.NPM_TOKEN_DATABASE_COMPAT }}
114
- # NPM_TOKEN_FIRESTORE_COMPAT: ${{ secrets.NPM_TOKEN_FIRESTORE_COMPAT }}
115
- # NPM_TOKEN_STORAGE_COMPAT: ${{ secrets.NPM_TOKEN_STORAGE_COMPAT }}
116
- # NPM_TOKEN_APP_CHECK_COMPAT: ${{ secrets.NPM_TOKEN_APP_CHECK_COMPAT }}
117
- # NPM_TOKEN_API_DOCUMENTER: ${{ secrets.NPM_TOKEN_API_DOCUMENTER }}
118
- # CI: true
119
- # - name: Get release version
120
- # id: get-version
121
- # # STAGING_VERSION = version with staging hash, e.g. 1.2.3-20430523
122
- # # BASE_VERSION = version without staging hash, e.g. 1.2.3
123
- # run: |
124
- # VERSION_SCRIPT="const pkg = require('./packages/firebase/package.json'); console.log(pkg.version);"
125
- # VERSION=`node -e "${VERSION_SCRIPT}"`
126
- # echo "::set-output name=STAGING_VERSION::$VERSION"
127
- # BASE_VERSION=$(echo $VERSION | cut -d "-" -f 1)
128
- # echo "::set-output name=BASE_VERSION::$BASE_VERSION"
129
- # - name: Echo versions in shell
130
- # run: |
131
- # echo "Staging release ${{ steps.get-version.outputs.STAGING_VERSION }}"
132
- # echo "Base version: ${{ steps.get-version.outputs.BASE_VERSION }}"
133
- # - name: Launch E2E tests workflow
134
- # # Trigger e2e-test.yml
135
- # run: |
136
- # OSS_BOT_GITHUB_TOKEN=${{ secrets.OSS_BOT_GITHUB_TOKEN }}
137
- # VERSION_OR_TAG=${{ steps.get-version.outputs.STAGING_VERSION }}
138
- # curl -X POST \
139
- # -H "Content-Type:application/json" \
140
- # -H "Accept:application/vnd.github.v3+json" \
141
- # -H "Authorization:Bearer $OSS_BOT_GITHUB_TOKEN" \
142
- # -d "{\"event_type\":\"staging-tests\", \"client_payload\":{\"versionOrTag\":\"$VERSION_OR_TAG\"}}" \
143
- # https://api.github.com/repos/firebase/firebase-js-sdk/dispatches
144
- # - name: Log to release tracker
145
- # # Sends release information to cloud functions endpoint of release tracker.
146
- # run: |
147
- # DATE=$(date +'%m/%d/%Y')
148
- # BASE_VERSION=${{ steps.get-version.outputs.BASE_VERSION }}
149
- # STAGING_VERSION=${{ steps.get-version.outputs.STAGING_VERSION }}
150
- # OPERATOR=${{ github.actor }}
151
- # RELEASE_TRACKER_URL=${{ secrets.RELEASE_TRACKER_URL }}
152
- # curl -X POST -H "Content-Type:application/json" \
153
- # -d "{\"version\":\"$BASE_VERSION\",\"tag\":\"$STAGING_VERSION\",\"date\":\"$DATE\",\"operator\":\"$OPERATOR\"}" \
154
- # $RELEASE_TRACKER_URL/logStaging
43
+ - name : Create Release Pull Request
44
+ uses : changesets/action@v1
45
+ env :
46
+ GITHUB_TOKEN : ${{ secrets.OSS_BOT_GITHUB_TOKEN }}
47
+ - name : Go back to release branch
48
+ # changesets/action created and checked out a new branch
49
+ # return to `release` branch.
50
+ run : git checkout release
51
+ - name : Publish to NPM
52
+ # --skipTests No need to run tests
53
+ # --skipReinstall Yarn install has already been run
54
+ # --ignoreUnstaged Adding the @firebase/app changeset file means
55
+ # there's unstaged changes. Ignore.
56
+ # TODO: Make these flags defaults in the release script.
57
+ run : yarn release --releaseType Staging --ci --skipTests --skipReinstall --ignoreUnstaged
58
+ env :
59
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
60
+ NPM_TOKEN_ANALYTICS : ${{secrets.NPM_TOKEN_ANALYTICS}}
61
+ NPM_TOKEN_ANALYTICS_INTEROP_TYPES : ${{secrets.NPM_TOKEN_ANALYTICS_INTEROP_TYPES}}
62
+ NPM_TOKEN_ANALYTICS_TYPES : ${{secrets.NPM_TOKEN_ANALYTICS_TYPES}}
63
+ NPM_TOKEN_APP : ${{secrets.NPM_TOKEN_APP}}
64
+ NPM_TOKEN_APP_TYPES : ${{secrets.NPM_TOKEN_APP_TYPES}}
65
+ NPM_TOKEN_APP_CHECK : ${{secrets.NPM_TOKEN_APP_CHECK}}
66
+ NPM_TOKEN_APP_CHECK_INTEROP_TYPES : ${{secrets.NPM_TOKEN_APP_CHECK_INTEROP_TYPES}}
67
+ NPM_TOKEN_APP_CHECK_TYPES : ${{secrets.NPM_TOKEN_APP_CHECK_TYPES}}
68
+ NPM_TOKEN_AUTH : ${{secrets.NPM_TOKEN_AUTH}}
69
+ NPM_TOKEN_AUTH_INTEROP_TYPES : ${{secrets.NPM_TOKEN_AUTH_INTEROP_TYPES}}
70
+ NPM_TOKEN_AUTH_TYPES : ${{secrets.NPM_TOKEN_AUTH_TYPES}}
71
+ NPM_TOKEN_COMPONENT : ${{secrets.NPM_TOKEN_COMPONENT}}
72
+ NPM_TOKEN_DATABASE : ${{secrets.NPM_TOKEN_DATABASE}}
73
+ NPM_TOKEN_DATABASE_TYPES : ${{secrets.NPM_TOKEN_DATABASE_TYPES}}
74
+ NPM_TOKEN_FIRESTORE : ${{secrets.NPM_TOKEN_FIRESTORE}}
75
+ NPM_TOKEN_FIRESTORE_TYPES : ${{secrets.NPM_TOKEN_FIRESTORE_TYPES}}
76
+ NPM_TOKEN_FUNCTIONS : ${{secrets.NPM_TOKEN_FUNCTIONS}}
77
+ NPM_TOKEN_FUNCTIONS_TYPES : ${{secrets.NPM_TOKEN_FUNCTIONS_TYPES}}
78
+ NPM_TOKEN_INSTALLATIONS : ${{secrets.NPM_TOKEN_INSTALLATIONS}}
79
+ NPM_TOKEN_INSTALLATIONS_TYPES : ${{secrets.NPM_TOKEN_INSTALLATIONS_TYPES}}
80
+ NPM_TOKEN_LOGGER : ${{secrets.NPM_TOKEN_LOGGER}}
81
+ NPM_TOKEN_MESSAGING : ${{secrets.NPM_TOKEN_MESSAGING}}
82
+ NPM_TOKEN_MESSAGING_TYPES : ${{secrets.NPM_TOKEN_MESSAGING_TYPES}}
83
+ NPM_TOKEN_PERFORMANCE : ${{secrets.NPM_TOKEN_PERFORMANCE}}
84
+ NPM_TOKEN_PERFORMANCE_TYPES : ${{secrets.NPM_TOKEN_PERFORMANCE_TYPES}}
85
+ NPM_TOKEN_POLYFILL : ${{secrets.NPM_TOKEN_POLYFILL}}
86
+ NPM_TOKEN_REMOTE_CONFIG : ${{secrets.NPM_TOKEN_REMOTE_CONFIG}}
87
+ NPM_TOKEN_REMOTE_CONFIG_TYPES : ${{secrets.NPM_TOKEN_REMOTE_CONFIG_TYPES}}
88
+ NPM_TOKEN_RULES_UNIT_TESTING : ${{secrets.NPM_TOKEN_RULES_UNIT_TESTING}}
89
+ NPM_TOKEN_STORAGE : ${{secrets.NPM_TOKEN_STORAGE}}
90
+ NPM_TOKEN_STORAGE_TYPES : ${{secrets.NPM_TOKEN_STORAGE_TYPES}}
91
+ NPM_TOKEN_TESTING : ${{secrets.NPM_TOKEN_TESTING}}
92
+ NPM_TOKEN_UTIL : ${{secrets.NPM_TOKEN_UTIL}}
93
+ NPM_TOKEN_WEBCHANNEL_WRAPPER : ${{secrets.NPM_TOKEN_WEBCHANNEL_WRAPPER}}
94
+ NPM_TOKEN_FIREBASE : ${{secrets.NPM_TOKEN_FIREBASE}}
95
+ NPM_TOKEN_APP_COMPAT : ${{ secrets.NPM_TOKEN_APP_COMPAT }}
96
+ NPM_TOKEN_INSTALLATIONS_COMPAT : ${{ secrets.NPM_TOKEN_INSTALLATIONS_COMPAT }}
97
+ NPM_TOKEN_ANALYTICS_COMPAT : ${{ secrets.NPM_TOKEN_ANALYTICS_COMPAT }}
98
+ NPM_TOKEN_AUTH_COMPAT : ${{ secrets.NPM_TOKEN_AUTH_COMPAT }}
99
+ NPM_TOKEN_MESSAGING_INTEROP_TYPES : ${{ secrets.NPM_TOKEN_MESSAGING_INTEROP_TYPES }}
100
+ NPM_TOKEN_FUNCTIONS_COMPAT : ${{ secrets.NPM_TOKEN_FUNCTIONS_COMPAT }}
101
+ NPM_TOKEN_MESSAGING_COMPAT : ${{ secrets.NPM_TOKEN_MESSAGING_COMPAT }}
102
+ NPM_TOKEN_PERFORMANCE_COMPAT : ${{ secrets.NPM_TOKEN_PERFORMANCE_COMPAT }}
103
+ NPM_TOKEN_REMOTE_CONFIG_COMPAT : ${{ secrets.NPM_TOKEN_REMOTE_CONFIG_COMPAT }}
104
+ NPM_TOKEN_DATABASE_COMPAT : ${{ secrets.NPM_TOKEN_DATABASE_COMPAT }}
105
+ NPM_TOKEN_FIRESTORE_COMPAT : ${{ secrets.NPM_TOKEN_FIRESTORE_COMPAT }}
106
+ NPM_TOKEN_STORAGE_COMPAT : ${{ secrets.NPM_TOKEN_STORAGE_COMPAT }}
107
+ NPM_TOKEN_APP_CHECK_COMPAT : ${{ secrets.NPM_TOKEN_APP_CHECK_COMPAT }}
108
+ NPM_TOKEN_API_DOCUMENTER : ${{ secrets.NPM_TOKEN_API_DOCUMENTER }}
109
+ CI : true
110
+ - name : Get release version
111
+ id : get-version
112
+ # STAGING_VERSION = version with staging hash, e.g. 1.2.3-20430523
113
+ # BASE_VERSION = version without staging hash, e.g. 1.2.3
114
+ run : |
115
+ VERSION_SCRIPT="const pkg = require('./packages/firebase/package.json'); console.log(pkg.version);"
116
+ VERSION=`node -e "${VERSION_SCRIPT}"`
117
+ echo "::set-output name=STAGING_VERSION::$VERSION"
118
+ BASE_VERSION=$(echo $VERSION | cut -d "-" -f 1)
119
+ echo "::set-output name=BASE_VERSION::$BASE_VERSION"
120
+ - name : Echo versions in shell
121
+ run : |
122
+ echo "Staging release ${{ steps.get-version.outputs.STAGING_VERSION }}"
123
+ echo "Base version: ${{ steps.get-version.outputs.BASE_VERSION }}"
124
+ - name : Launch E2E tests workflow
125
+ # Trigger e2e-test.yml
126
+ run : |
127
+ OSS_BOT_GITHUB_TOKEN=${{ secrets.OSS_BOT_GITHUB_TOKEN }}
128
+ VERSION_OR_TAG=${{ steps.get-version.outputs.STAGING_VERSION }}
129
+ curl -X POST \
130
+ -H "Content-Type:application/json" \
131
+ -H "Accept:application/vnd.github.v3+json" \
132
+ -H "Authorization:Bearer $OSS_BOT_GITHUB_TOKEN" \
133
+ -d "{\"event_type\":\"staging-tests\", \"client_payload\":{\"versionOrTag\":\"$VERSION_OR_TAG\"}}" \
134
+ https://api.github.com/repos/firebase/firebase-js-sdk/dispatches
135
+ - name : Log to release tracker
136
+ # Sends release information to cloud functions endpoint of release tracker.
137
+ run : |
138
+ DATE=$(date +'%m/%d/%Y')
139
+ BASE_VERSION=${{ steps.get-version.outputs.BASE_VERSION }}
140
+ STAGING_VERSION=${{ steps.get-version.outputs.STAGING_VERSION }}
141
+ OPERATOR=${{ github.actor }}
142
+ RELEASE_TRACKER_URL=${{ secrets.RELEASE_TRACKER_URL }}
143
+ curl -X POST -H "Content-Type:application/json" \
144
+ -d "{\"version\":\"$BASE_VERSION\",\"tag\":\"$STAGING_VERSION\",\"date\":\"$DATE\",\"operator\":\"$OPERATOR\"}" \
145
+ $RELEASE_TRACKER_URL/logStaging
0 commit comments