File tree Expand file tree Collapse file tree 5 files changed +87
-72
lines changed Expand file tree Collapse file tree 5 files changed +87
-72
lines changed Original file line number Diff line number Diff line change 1+ import writePrettyFile from "./write-pretty-file.js" ;
2+ import getTemplateFileContent from "./get-template-file-content.js" ;
3+
4+ export default async function createGitHubAction ( actionFileName , options = { } ) {
5+ let fileContent = getTemplateFileContent ( `github-actions/${ actionFileName } ` ) ;
6+
7+ if ( options . replace ) {
8+ fileContent = fileContent . replace (
9+ options . replace . searchValue ,
10+ options . replace . replaceValue
11+ ) ;
12+ }
13+
14+ await writePrettyFile ( `.github/workflows/${ actionFileName } ` , fileContent ) ;
15+ }
Original file line number Diff line number Diff line change 1- import writePrettyFile from "./write-pretty-file .js" ;
1+ import createGitHubAction from "./create-github-action .js" ;
22
33export default async function createReleaseAction ( { owner } ) {
44 const npmTokenSecretName =
55 owner === "octoherd" ? "NPM_AUTOMATION_TOKEN" : "NPM_TOKEN" ;
6- await writePrettyFile (
7- ".github/workflows/release.yml" ,
8- `name: Release
9- on:
10- push:
11- branches:
12- - main
136
14- jobs:
15- release:
16- name: release
17- runs-on: ubuntu-latest
18- steps:
19- - uses: actions/checkout@v2
20- - uses: actions/setup-node@v2
21- with:
22- node-version: 12
23- - uses: actions/cache@v1
24- with:
25- path: ~/.npm
26- key: \${{ runner.os }}-node-\${{ hashFiles('**/package-lock.json') }}
27- restore-keys: |
28- \${{ runner.os }}-node-
29- - run: npm ci
30- - run: npx semantic-release
31- env:
32- GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}
33- NPM_TOKEN: \${{ secrets.${ npmTokenSecretName } }}
34- `
35- ) ;
7+ await createGitHubAction ( "release.yml" , {
8+ replace : {
9+ searchValue : "__npmTokenSecretName__" ,
10+ replaceValue : npmTokenSecretName ,
11+ } ,
12+ } ) ;
3613}
Original file line number Diff line number Diff line change 1- import writePrettyFile from "./write-pretty-file .js" ;
1+ import createGitHubAction from "./create-github-action .js" ;
22
33export default async function createTestAction ( ) {
4- await writePrettyFile (
5- ".github/workflows/test.yml" ,
6- `name: Test
7- on:
8- push:
9- branches:
10- - main
11- pull_request:
12- types: [opened, synchronize]
13-
14- jobs:
15- test_matrix:
16- runs-on: ubuntu-latest
17- strategy:
18- matrix:
19- node_version: ["12", "14"]
20-
21- steps:
22- - uses: actions/checkout@v2
23- - name: Use Node.js \${{ matrix.node_version }}
24- uses: actions/setup-node@v2
25- with:
26- node-version: \${{ matrix.node_version }}
27- - uses: actions/cache@v2
28- with:
29- path: ~/.npm
30- key: \${{ runner.os }}-node-\${{ hashFiles('**/package-lock.json') }}
31- restore-keys: |
32- \${{ runner.os }}-node-
33- - run: npm ci
34- - run: npm test
35-
36- # The "test" step can be required in branch protection and does not
37- # change each time the test matrix changes.
38- test:
39- runs-on: ubuntu-latest
40- needs: test_matrix
41- steps:
42- - run: echo ok
43- `
44- ) ;
4+ await createGitHubAction ( "test.yml" ) ;
455}
Original file line number Diff line number Diff line change 1+ name : Release
2+ on :
3+ push :
4+ branches :
5+ - main
6+
7+ jobs :
8+ release :
9+ name : release
10+ runs-on : ubuntu-latest
11+ steps :
12+ - uses : actions/checkout@v2
13+ - uses : actions/setup-node@v2
14+ with :
15+ node-version : 12
16+ - uses : actions/cache@v1
17+ with :
18+ path : ~/.npm
19+ key : ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
20+ restore-keys : |
21+ ${{ runner.os }}-node-
22+ - run : npm ci
23+ - run : npx semantic-release
24+ env :
25+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
26+ NPM_TOKEN : ${{ secrets.__npmTokenSecretName__ }}
Original file line number Diff line number Diff line change 1+ name : Test
2+ on :
3+ push :
4+ branches :
5+ - main
6+ pull_request :
7+ types : [opened, synchronize]
8+
9+ jobs :
10+ test_matrix :
11+ runs-on : ubuntu-latest
12+ strategy :
13+ matrix :
14+ node_version : ["12", "14"]
15+
16+ steps :
17+ - uses : actions/checkout@v2
18+ - name : Use Node.js ${{ matrix.node_version }}
19+ uses : actions/setup-node@v2
20+ with :
21+ node-version : ${{ matrix.node_version }}
22+ - uses : actions/cache@v2
23+ with :
24+ path : ~/.npm
25+ key : ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
26+ restore-keys : |
27+ ${{ runner.os }}-node-
28+ - run : npm ci
29+ - run : npm test
30+
31+ # The "test" step can be required in branch protection and does not
32+ # change each time the test matrix changes.
33+ test :
34+ runs-on : ubuntu-latest
35+ needs : test_matrix
36+ steps :
37+ - run : echo ok
You can’t perform that action at this time.
0 commit comments