build(dev-build): correctly pass secrets to publish task (#24194)

This commit is contained in:
Liam DeBeasi
2021-11-10 12:52:00 -05:00
committed by GitHub
parent 928dfa52ca
commit 64dd070d67
3 changed files with 90 additions and 49 deletions

View File

@ -1,18 +1,75 @@
name: 'Ionic Dev Build' name: 'Ionic Dev Build'
on: on:
workflow_dispatch: workflow_dispatch
jobs: jobs:
dev-build: dev-build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs:
version: ${{ steps.devBuild.outputs.version }}
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: actions/setup-node@v1 - uses: actions/setup-node@v2
with: with:
node-version: 15.x node-version: 15.x
registry-url: 'https://registry.npmjs.org'
- name: Install Dependencies
run: npm install
shell: bash
- name: Create Dev Build - name: Create Dev Build
run: npm run release.dev -- --skip-prompt run: npm run release.dev -- --skip-prompt
shell: bash shell: bash
- name: Publish Core
run: npm publish --tag dev
working-directory: ./core
env: env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish Docs
run: npm publish --tag dev
working-directory: ./docs
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish Angular
run: npm publish --tag dev
working-directory: ./angular
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish Angular Server
run: npm publish --tag dev
working-directory: ./packages/angular-server
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish React
run: npm publish --tag dev
working-directory: ./packages/react
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish React Router
run: npm publish --tag dev
working-directory: ./packages/react-router
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish Vue
run: npm publish --tag dev
working-directory: ./packages/vue
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish Vue Router
run: npm publish --tag dev
working-directory: ./packages/vue-router
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Wrap Up
id: devBuild
run: |
val=$(grep version package.json | sed 's/.*"version": "\(.*\)".*/\1/')
echo "::set-output name=version::$val"
working-directory: ./core
get-version:
name: Get your dev build!
runs-on: ubuntu-latest
needs: [dev-build]
steps:
- run: echo ${{ needs.dev-build.outputs.version }}

View File

@ -199,6 +199,16 @@ function preparePackage(tasks, package, version, install) {
}); });
} }
function installDevPackage(tasks, package) {
const projectRoot = projectPath(package);
const pkg = readPkg(package);
tasks.push({
title: `${pkg.name}: npm install`,
task: () => execa('npm', ['install', '--legacy-peer-deps'], { cwd: projectRoot })
});
}
function prepareDevPackage(tasks, package, version) { function prepareDevPackage(tasks, package, version) {
const projectRoot = projectPath(package); const projectRoot = projectPath(package);
const pkg = readPkg(package); const pkg = readPkg(package);
@ -211,20 +221,20 @@ function prepareDevPackage(tasks, package, version) {
title: `${pkg.name}: npm link @ionic/core`, title: `${pkg.name}: npm link @ionic/core`,
task: () => execa('npm', ['link', '@ionic/core', '--legacy-peer-deps'], { cwd: projectRoot }) task: () => execa('npm', ['link', '@ionic/core', '--legacy-peer-deps'], { cwd: projectRoot })
}); });
if (package === 'packages/react-router') {
projectTasks.push({
title: `${pkg.name}: npm link @ionic/react`,
task: () => execa('npm', ['link', '@ionic/react', '--legacy-peer-deps'], { cwd: projectRoot })
});
}
} }
projectTasks.push({ projectTasks.push({
title: `${pkg.name}: update ionic/core dep to ${version}`, title: `${pkg.name}: update ionic/core dep to ${version}`,
task: () => { task: () => {
updateDependency(pkg, '@ionic/core', version);
writePkg(package, pkg); /**
* At this point, the version for the package
* has been changed so we need to re-fetch the
* package contents so we do not overwrite it.
*/
const updatedPackage = readPkg(package);
updateDependency(updatedPackage, '@ionic/core', version);
writePkg(package, updatedPackage);
} }
}); });
@ -233,7 +243,7 @@ function prepareDevPackage(tasks, package, version) {
task: () => execa('npm', ['run', 'build'], { cwd: projectRoot }) task: () => execa('npm', ['run', 'build'], { cwd: projectRoot })
}); });
if (package === 'core' || package === 'packages/react') { if (package === 'core') {
projectTasks.push({ projectTasks.push({
title: `${pkg.name}: npm link`, title: `${pkg.name}: npm link`,
task: () => execa('npm', ['link'], { cwd: projectRoot }) task: () => execa('npm', ['link'], { cwd: projectRoot })
@ -278,17 +288,6 @@ function updatePackageVersions(tasks, packages, version) {
} }
}); });
} }
if (package === 'packages/react-router') {
tasks.push({
title: `${package} update @ionic/react dependency, if present ${dim(`(${version})`)}`,
task: async () => {
const pkg = readPkg(package);
updateDependency(pkg, '@ionic/react', version);
writePkg(package, pkg);
}
});
}
}); });
} }
@ -320,7 +319,7 @@ function copyPackageToDist(tasks, packages) {
} }
function publishPackages(tasks, packages, version, npmTag = 'latest') { function publishPackages(tasks, packages, version, npmTag = 'latest') {
// first verify version // verify version
packages.forEach(package => { packages.forEach(package => {
if (package === 'core') { if (package === 'core') {
return; return;
@ -337,22 +336,6 @@ function publishPackages(tasks, packages, version, npmTag = 'latest') {
} }
}); });
}); });
// Publish
packages.forEach(package => {
let projectRoot = projectPath(package);
if (package === 'packages/angular-server' || package === 'angular') {
projectRoot = path.join(projectRoot, 'dist')
}
tasks.push({
title: `${package}: publish to ${npmTag} tag`,
task: async () => {
await execa('npm', ['publish', '--tag', npmTag], { cwd: projectRoot });
}
});
});
} }
function updateDependency(pkg, dependency, version) { function updateDependency(pkg, dependency, version) {
@ -382,6 +365,7 @@ function copyCDNLoader(tasks, version) {
} }
module.exports = { module.exports = {
installDevPackage,
checkTestDist, checkTestDist,
checkGit, checkGit,
askNpmTag, askNpmTag,

View File

@ -33,7 +33,14 @@ async function main() {
const tasks = []; const tasks = [];
await setPackageVersionChanges(packages, devVersion); packages.forEach(package => {
common.installDevPackage(tasks, package);
});
tasks.push({
title: 'Set package version changes',
task: async () => await setPackageVersionChanges(packages, devVersion)
})
packages.forEach(package => { packages.forEach(package => {
common.prepareDevPackage(tasks, package, devVersion); common.prepareDevPackage(tasks, package, devVersion);
@ -50,10 +57,6 @@ async function main() {
console.log('\n', red(err), '\n'); console.log('\n', red(err), '\n');
process.exit(1); process.exit(1);
} }
orgPkg.forEach(pkg => {
fs.writeFileSync(pkg.filePath, pkg.packageContent);
});
} }
async function askDevVersion(devVersion) { async function askDevVersion(devVersion) {
@ -83,9 +86,6 @@ async function setPackageVersionChanges(packages, version) {
if (package !== 'core') { if (package !== 'core') {
const pkg = common.readPkg(package); const pkg = common.readPkg(package);
common.updateDependency(pkg, '@ionic/core', version); common.updateDependency(pkg, '@ionic/core', version);
if(package === 'packages/react-router') {
common.updateDependency(pkg, '@ionic/react', version);
}
common.writePkg(package, pkg); common.writePkg(package, pkg);
} }
const projectRoot = common.projectPath(package); const projectRoot = common.projectPath(package);