mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-16 01:52:19 +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'
|
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 }}
|
||||||
|
|
||||||
|
@ -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,
|
||||||
|
@ -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);
|
||||||
|
Reference in New Issue
Block a user