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'
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 }}

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) {
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,

View File

@ -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);