Skip to content

Commit

Permalink
fix(trigger-release): removed existing trigger-release jobs
Browse files Browse the repository at this point in the history
  • Loading branch information
travi committed Nov 12, 2022
1 parent 00e6e22 commit 2cc279b
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 3 deletions.
30 changes: 30 additions & 0 deletions src/semantic-release/ci-providers/github-workflows/lifter-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,36 @@ suite('github-workflows lifter for semantic-release', () => {
);
});

test('that the dispatched release job is replaced', async () => {
const existingJobs = {...jobs, 'trigger-release': legacyReleaseJob};
fs.readFile.withArgs(`${workflowsDirectory}/node-ci.yml`, 'utf-8').resolves(verificationWorkflowContents);
releaseTriggerNeeds.default.withArgs(jobs).returns(neededJobsToTriggerRelease);
jsYaml.load
.withArgs(verificationWorkflowContents)
.returns({
...parsedVerificationWorkflowContents,
on: {push: {branches: [...branchTriggers, 'alpha', 'beta', ...moreBranchTriggers]}},
jobs: existingJobs
});

await lift({projectRoot});

assert.calledWith(releaseWorkflowLifter.default, {projectRoot});
assert.calledWith(
core.writeConfigFile,
{
format: core.fileTypes.YAML,
name: 'node-ci',
path: workflowsDirectory,
config: {
...parsedVerificationWorkflowContents,
on: {push: {branches: [...branchTriggers, 'beta', ...moreBranchTriggers]}},
jobs: {...jobs, release: modernReleaseJobDefinition}
}
}
);
});

test('that a modern release job is left as-is', async () => {
const existingJobs = {...jobs, release: modernReleaseJobDefinition};
releaseTriggerNeeds.default.withArgs(existingJobs).returns(neededJobsToTriggerRelease);
Expand Down
6 changes: 3 additions & 3 deletions src/semantic-release/ci-providers/github-workflows/lifter.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ export default async function ({projectRoot}) {
...!parsedVerificationWorkflowDetails.on.push.branches.includes('beta') ? ['beta'] : []
];

const {jobs} = parsedVerificationWorkflowDetails;
const {'trigger-release': triggerRelease, ...otherJobs} = parsedVerificationWorkflowDetails.jobs;

parsedVerificationWorkflowDetails.jobs = {
...removeCycjimmyActionFrom(jobs),
...removeCycjimmyActionFrom(otherJobs),
release: {
needs: determineTriggerNeedsFrom(jobs),
needs: determineTriggerNeedsFrom(otherJobs),
uses: 'form8ion/.github/.github/workflows/release-package.yml@master',
// eslint-disable-next-line no-template-curly-in-string
secrets: {NPM_TOKEN: '${{ secrets.NPM_PUBLISH_TOKEN }}'}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@ Then('the verification workflow calls the reusable release workflow', async func
assert.include(branchTriggers, 'dependency-updater/**');

const verificationWorkflowJobs = verificationWorkflowDefinition.jobs;

assert.notInclude(Object.keys(verificationWorkflowJobs), 'trigger-release');

const releaseJob = verificationWorkflowJobs.release;

assert.deepEqual(releaseJob.needs, ['verify']);
Expand Down

0 comments on commit 2cc279b

Please sign in to comment.