Skip to content
Snippets Groups Projects
Unverified Commit 5a14d643 authored by Matthew Clarkson's avatar Matthew Clarkson
Browse files

fix: add ECMAscript module

_Ideally_, we would just want to export it as ECMAscript module.

For now, to support both, we can use a shared JSON file.

It would be nice to use the `import cfg from "./config.js" assert { "json" };` but
that is experimental.
parent 894a43ba
No related branches found
No related tags found
No related merge requests found
Pipeline #31684 passed with stages
in 1 minute and 28 seconds
// eslint-disable-next-line unicorn/prefer-module
module.exports = {
plugins: [
'@semantic-release/commit-analyzer',
'@semantic-release/release-notes-generator',
'@semantic-release/changelog',
{
path: '@semantic-release/exec',
prepareCmd: 'npx prettier -w CHANGELOG.md',
},
'@semantic-release/bzlmod',
{
path: '@semantic-release/git',
assets: [
'MODULE.bazel',
'CHANGELOG.md',
],
},
{
path: '@semantic-release/bzlmod',
source: {
// eslint-disable-next-line no-template-curly-in-string
prefix: '${CI_PROJECT_NAME}-v${version}',
// eslint-disable-next-line no-template-curly-in-string
archive: '${CI_PROJECT_NAME}-v${version}.tar.gz',
// eslint-disable-next-line no-template-curly-in-string
url: '${CI_PROJECT_URL}/-/releases/v${version}/downloads/src.tar.gz',
},
},
{
path: '@semantic-release/gitlab',
assets: [
{
path: 'MODULE.bazel',
label: 'MODULE.bazel',
type: 'package',
// eslint-disable-next-line no-template-curly-in-string
filepath: '/modules/${env.CI_PROJECT_NAME}/${nextRelease.version}/MODULE.bazel',
target: 'generic_package',
status: 'hidden',
},
{
path: 'source.json',
label: 'source.json',
type: 'package',
// eslint-disable-next-line no-template-curly-in-string
filepath: '/modules/${env.CI_PROJECT_NAME}/${nextRelease.version}/source.json',
target: 'generic_package',
status: 'hidden',
},
{
path: 'icon.svg',
type: 'image',
},
{
// eslint-disable-next-line no-template-curly-in-string
path: '${env.CI_PROJECT_NAME}-v${nextRelease.version}.tar.gz',
// eslint-disable-next-line no-template-curly-in-string
label: '${env.CI_PROJECT_NAME}-v${nextRelease.version}.tar.gz',
type: 'package',
filepath: '/src.tar.gz',
target: 'generic_package',
status: 'hidden',
},
{
path: 'metadata.json',
label: 'metadata.json',
type: 'package',
// eslint-disable-next-line no-template-curly-in-string
filepath: '/modules/${env.CI_PROJECT_NAME}/metadata.json',
target: 'generic_package',
status: 'hidden',
},
],
},
],
};
const cfg = require('./config.json');
// eslint-disable-next-line unicorn/prefer-module
module.exports = cfg;
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
{
"path": "@semantic-release/exec",
"prepareCmd": "npx prettier -w CHANGELOG.md"
},
"@semantic-release/bzlmod",
{
"path": "@semantic-release/git",
"assets": ["MODULE.bazel", "CHANGELOG.md"]
},
{
"path": "@semantic-release/bzlmod",
"source": {
"prefix": "${CI_PROJECT_NAME}-v${version}",
"archive": "${CI_PROJECT_NAME}-v${version}.tar.gz",
"url": "${CI_PROJECT_URL}/-/releases/v${version}/downloads/src.tar.gz"
}
},
{
"path": "@semantic-release/gitlab",
"assets": [
{
"path": "MODULE.bazel",
"label": "MODULE.bazel",
"type": "package",
"filepath": "/modules/${env.CI_PROJECT_NAME}/${nextRelease.version}/MODULE.bazel",
"target": "generic_package",
"status": "hidden"
},
{
"path": "source.json",
"label": "source.json",
"type": "package",
"filepath": "/modules/${env.CI_PROJECT_NAME}/${nextRelease.version}/source.json",
"target": "generic_package",
"status": "hidden"
},
{
"path": "icon.svg",
"type": "image"
},
{
"path": "${env.CI_PROJECT_NAME}-v${nextRelease.version}.tar.gz",
"label": "${env.CI_PROJECT_NAME}-v${nextRelease.version}.tar.gz",
"type": "package",
"filepath": "/src.tar.gz",
"target": "generic_package",
"status": "hidden"
},
{
"path": "metadata.json",
"label": "metadata.json",
"type": "package",
"filepath": "/modules/${env.CI_PROJECT_NAME}/metadata.json",
"target": "generic_package",
"status": "hidden"
}
]
}
]
}
// eslint-disable-next-line import/order
import {createRequire} from 'node:module';
const require = createRequire(import.meta.url);
const cfg = require('./config.json');
export default cfg;
......@@ -3,11 +3,14 @@
"version": "0.0.0",
"description": "A `semantic release` configuration for Bazel `MODULE.bazel` projects hosted on GitLab",
"exports": {
"import": "./config.mjs",
"require": "./config.js"
},
"main": "config.js",
"modules": "config.mjs",
"files": [
"config.js"
"config.js",
"config.mjs"
],
"scripts": {
"lint": "xo",
......
import test from 'ava';
test('Can load the ECMAscript module', async t => {
const {default: {plugins}} = await import('../config.mjs');
t.is(plugins.length, 8);
});
  • Congregate Migrate @congregate_migrate

    mentioned in commit 9e8c602c

    By GITLAB_TOKEN on 2023-12-01T22:22:30

    · Imported

    mentioned in commit 9e8c602c

    By GITLAB_TOKEN on 2023-12-01T22:22:30

    Toggle commit list
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment