mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-14 16:52:26 +08:00
build(dev-build): correctly pass secrets to publish task (#24194)
This commit is contained in:
63
.github/workflows/dev-build.yml
vendored
63
.github/workflows/dev-build.yml
vendored
@ -1,18 +1,75 @@
|
||||
name: 'Ionic Dev Build'
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
workflow_dispatch
|
||||
|
||||
jobs:
|
||||
dev-build:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
version: ${{ steps.devBuild.outputs.version }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 15.x
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
- name: Install Dependencies
|
||||
run: npm install
|
||||
shell: bash
|
||||
- name: Create Dev Build
|
||||
run: npm run release.dev -- --skip-prompt
|
||||
shell: bash
|
||||
- name: Publish Core
|
||||
run: npm publish --tag dev
|
||||
working-directory: ./core
|
||||
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 }}
|
||||
|
||||
|
@ -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) {
|
||||
const projectRoot = projectPath(package);
|
||||
const pkg = readPkg(package);
|
||||
@ -211,20 +221,20 @@ function prepareDevPackage(tasks, package, version) {
|
||||
title: `${pkg.name}: npm link @ionic/core`,
|
||||
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({
|
||||
title: `${pkg.name}: update ionic/core dep to ${version}`,
|
||||
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 })
|
||||
});
|
||||
|
||||
if (package === 'core' || package === 'packages/react') {
|
||||
if (package === 'core') {
|
||||
projectTasks.push({
|
||||
title: `${pkg.name}: npm link`,
|
||||
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') {
|
||||
// first verify version
|
||||
// verify version
|
||||
packages.forEach(package => {
|
||||
if (package === 'core') {
|
||||
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) {
|
||||
@ -382,6 +365,7 @@ function copyCDNLoader(tasks, version) {
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
installDevPackage,
|
||||
checkTestDist,
|
||||
checkGit,
|
||||
askNpmTag,
|
||||
|
@ -33,7 +33,14 @@ async function main() {
|
||||
|
||||
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 => {
|
||||
common.prepareDevPackage(tasks, package, devVersion);
|
||||
@ -50,10 +57,6 @@ async function main() {
|
||||
console.log('\n', red(err), '\n');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
orgPkg.forEach(pkg => {
|
||||
fs.writeFileSync(pkg.filePath, pkg.packageContent);
|
||||
});
|
||||
}
|
||||
|
||||
async function askDevVersion(devVersion) {
|
||||
@ -83,9 +86,6 @@ async function setPackageVersionChanges(packages, version) {
|
||||
if (package !== 'core') {
|
||||
const pkg = common.readPkg(package);
|
||||
common.updateDependency(pkg, '@ionic/core', version);
|
||||
if(package === 'packages/react-router') {
|
||||
common.updateDependency(pkg, '@ionic/react', version);
|
||||
}
|
||||
common.writePkg(package, pkg);
|
||||
}
|
||||
const projectRoot = common.projectPath(package);
|
||||
|
Reference in New Issue
Block a user