mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-12-16 21:56:25 -05:00
5.x tests on windows (#1919)
This commit is contained in:
parent
8f9467ce3d
commit
d981c1d435
17 changed files with 274 additions and 102 deletions
199
.gitattributes
vendored
Normal file
199
.gitattributes
vendored
Normal file
|
@ -0,0 +1,199 @@
|
|||
## GITATTRIBUTES FOR WEB PROJECTS
|
||||
#
|
||||
# These settings are for any web project.
|
||||
#
|
||||
# Details per file setting:
|
||||
# text These files should be normalized (i.e. convert CRLF to LF).
|
||||
# binary These files are binary and should be left untouched.
|
||||
#
|
||||
# Note that binary is a macro for -text -diff.
|
||||
######################################################################
|
||||
|
||||
# Auto detect
|
||||
## Handle line endings automatically for files detected as
|
||||
## text and leave all files detected as binary untouched.
|
||||
## This will handle all files NOT defined below.
|
||||
* text=lf
|
||||
|
||||
# Source code
|
||||
*.bash text eol=lf
|
||||
*.bat text eol=crlf
|
||||
*.cmd text eol=crlf
|
||||
*.coffee text eol=lf
|
||||
*.css text eol=lf
|
||||
*.htm text diff=html
|
||||
*.html text diff=html
|
||||
*.inc text eol=lf
|
||||
*.ini text eol=lf
|
||||
*.js text eol=lf
|
||||
*.json text eol=lf
|
||||
*.jsx text eol=lf
|
||||
*.less text eol=lf
|
||||
*.ls text eol=lf
|
||||
*.map text -diff
|
||||
*.od text eol=lf
|
||||
*.onlydata text eol=lf
|
||||
*.php text diff=php
|
||||
*.pl text eol=lf
|
||||
*.ps1 text eol=crlf
|
||||
*.py text diff=python
|
||||
*.rb text diff=ruby
|
||||
*.sass text eol=lf
|
||||
*.scm text eol=lf
|
||||
*.scss text diff=css
|
||||
*.sh text eol=lf
|
||||
*.sql text eol=lf
|
||||
*.styl text eol=lf
|
||||
*.tag text eol=lf
|
||||
*.ts text eol=lf
|
||||
*.tsx text eol=lf
|
||||
*.xml text eol=lf
|
||||
*.xhtml text diff=html
|
||||
|
||||
# Docker
|
||||
Dockerfile text eol=lf
|
||||
|
||||
# Documentation
|
||||
*.ipynb text eol=lf
|
||||
*.markdown text eol=lf
|
||||
*.md text eol=lf
|
||||
*.mdwn text eol=lf
|
||||
*.mdown text eol=lf
|
||||
*.mkd text eol=lf
|
||||
*.mkdn text eol=lf
|
||||
*.mdtxt text eol=lf
|
||||
*.mdtext text eol=lf
|
||||
*.txt text eol=lf
|
||||
AUTHORS text eol=lf
|
||||
CHANGELOG text eol=lf
|
||||
CHANGES text eol=lf
|
||||
CONTRIBUTING text eol=lf
|
||||
COPYING text eol=lf
|
||||
copyright text eol=lf
|
||||
*COPYRIGHT* text eol=lf
|
||||
INSTALL text eol=lf
|
||||
license text eol=lf
|
||||
LICENSE text eol=lf
|
||||
NEWS text eol=lf
|
||||
readme text eol=lf
|
||||
*README* text eol=lf
|
||||
TODO text eol=lf
|
||||
|
||||
# Templates
|
||||
*.dot text eol=lf
|
||||
*.ejs text eol=lf
|
||||
*.haml text eol=lf
|
||||
*.handlebars text eol=lf
|
||||
*.hbs text eol=lf
|
||||
*.hbt text eol=lf
|
||||
*.jade text eol=lf
|
||||
*.latte text eol=lf
|
||||
*.mustache text eol=lf
|
||||
*.njk text eol=lf
|
||||
*.phtml text eol=lf
|
||||
*.tmpl text eol=lf
|
||||
*.tpl text eol=lf
|
||||
*.twig text eol=lf
|
||||
*.vue text eol=lf
|
||||
|
||||
# Configs
|
||||
*.cnf text eol=lf
|
||||
*.conf text eol=lf
|
||||
*.config text eol=lf
|
||||
.editorconfig text eol=lf
|
||||
.env text eol=lf
|
||||
.gitattributes text eol=lf
|
||||
.gitconfig text eol=lf
|
||||
.htaccess text eol=lf
|
||||
*.lock text -diff
|
||||
package-lock.json text -diff
|
||||
*.toml text eol=lf
|
||||
*.yaml text eol=lf
|
||||
*.yml text eol=lf
|
||||
browserslist text eol=lf
|
||||
Makefile text eol=lf
|
||||
makefile text eol=lf
|
||||
|
||||
# Heroku
|
||||
Procfile text eol=lf
|
||||
|
||||
# Graphics
|
||||
*.ai binary
|
||||
*.bmp binary
|
||||
*.eps binary
|
||||
*.gif binary
|
||||
*.gifv binary
|
||||
*.ico binary
|
||||
*.jng binary
|
||||
*.jp2 binary
|
||||
*.jpg binary
|
||||
*.jpeg binary
|
||||
*.jpx binary
|
||||
*.jxr binary
|
||||
*.pdf binary
|
||||
*.png binary
|
||||
*.psb binary
|
||||
*.psd binary
|
||||
# SVG treated as an asset (binary) by default.
|
||||
*.svg text eol=lf
|
||||
# If you want to treat it as binary,
|
||||
# use the following line instead.
|
||||
# *.svg binary
|
||||
*.svgz binary
|
||||
*.tif binary
|
||||
*.tiff binary
|
||||
*.wbmp binary
|
||||
*.webp binary
|
||||
|
||||
# Audio
|
||||
*.kar binary
|
||||
*.m4a binary
|
||||
*.mid binary
|
||||
*.midi binary
|
||||
*.mp3 binary
|
||||
*.ogg binary
|
||||
*.ra binary
|
||||
|
||||
# Video
|
||||
*.3gpp binary
|
||||
*.3gp binary
|
||||
*.as binary
|
||||
*.asf binary
|
||||
*.asx binary
|
||||
*.fla binary
|
||||
*.flv binary
|
||||
*.m4v binary
|
||||
*.mng binary
|
||||
*.mov binary
|
||||
*.mp4 binary
|
||||
*.mpeg binary
|
||||
*.mpg binary
|
||||
*.ogv binary
|
||||
*.swc binary
|
||||
*.swf binary
|
||||
*.webm binary
|
||||
|
||||
# Archives
|
||||
*.7z binary
|
||||
*.gz binary
|
||||
*.jar binary
|
||||
*.rar binary
|
||||
*.tar binary
|
||||
*.zip binary
|
||||
|
||||
# Fonts
|
||||
*.ttf binary
|
||||
*.eot binary
|
||||
*.otf binary
|
||||
*.woff binary
|
||||
*.woff2 binary
|
||||
|
||||
# Executables
|
||||
*.exe binary
|
||||
*.pyc binary
|
||||
|
||||
# RC files (like .babelrc or .eslintrc)
|
||||
*.*rc text eol=lf
|
||||
|
||||
# Ignore files (like .npmignore or .gitignore)
|
||||
*.*ignore text eol=lf
|
|
@ -10,7 +10,7 @@ jobs:
|
|||
# todo: fix yarn global issue, cannot find ng
|
||||
# yarn:
|
||||
# name: 'yarn:angular example'
|
||||
# runs-on: ubuntu-latest
|
||||
# runs-on: ${{ matrix.os }}
|
||||
#
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2.3.3
|
||||
|
@ -43,7 +43,7 @@ jobs:
|
|||
# ng build --aot
|
||||
npm:
|
||||
name: 'npm:angular example'
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.3
|
||||
|
@ -119,7 +119,7 @@ jobs:
|
|||
# pnpm throws errors worth to check why
|
||||
# pnpm:
|
||||
# name: 'pnpm:angular example'
|
||||
# runs-on: ubuntu-latest
|
||||
# runs-on: ${{ matrix.os }}
|
||||
#
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2.3.3
|
||||
|
|
|
@ -9,7 +9,7 @@ name: 'E2E Gatsby.js CLI with verdaccio'
|
|||
jobs:
|
||||
npm:
|
||||
name: 'npm:gatsby example'
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.3
|
||||
|
|
6
.github/disabled/e2e-jest-workflow.yml
vendored
6
.github/disabled/e2e-jest-workflow.yml
vendored
|
@ -9,7 +9,7 @@ name: 'E2E Jest with verdaccio'
|
|||
jobs:
|
||||
yarn:
|
||||
name: 'yarn:jest example'
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.3
|
||||
|
@ -74,7 +74,7 @@ jobs:
|
|||
yarn jest module.test.js
|
||||
npm:
|
||||
name: 'npm:jest example'
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.3
|
||||
|
@ -141,7 +141,7 @@ jobs:
|
|||
|
||||
pnpm:
|
||||
name: 'pnpm:jest example'
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.3
|
||||
|
|
2
.github/disabled/registry.yml
vendored
2
.github/disabled/registry.yml
vendored
|
@ -5,7 +5,7 @@ on:
|
|||
- cron: '0 4 * * 4'
|
||||
jobs:
|
||||
security:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Test for public javascript library vulnerabilities
|
||||
uses: lirantal/is-website-vulnerable@1.15.10
|
||||
|
|
2
.github/disabled/release-canary.yml
vendored
2
.github/disabled/release-canary.yml
vendored
|
@ -11,7 +11,7 @@ on:
|
|||
jobs:
|
||||
release:
|
||||
name: Release
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Use Node (latest)
|
||||
|
|
2
.github/workflows/changesets.yml
vendored
2
.github/workflows/changesets.yml
vendored
|
@ -20,7 +20,7 @@ jobs:
|
|||
# Update package versions from changesets.
|
||||
version:
|
||||
timeout-minutes: 15
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
if: github.ref == 'refs/heads/5.x' && github.repository == 'verdaccio/verdaccio'
|
||||
steps:
|
||||
- name: checkout code repository
|
||||
|
|
5
.github/workflows/ci-website.yml
vendored
5
.github/workflows/ci-website.yml
vendored
|
@ -10,14 +10,15 @@ on:
|
|||
- "website/**"
|
||||
jobs:
|
||||
ci:
|
||||
name: Node ${{ matrix.node_version }}
|
||||
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest]
|
||||
node_version: [14]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
|
5
.github/workflows/ci.yml
vendored
5
.github/workflows/ci.yml
vendored
|
@ -15,14 +15,15 @@ on:
|
|||
|
||||
jobs:
|
||||
ci:
|
||||
name: Node ${{ matrix.node_version }}
|
||||
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest]
|
||||
node_version: [10, 12, 14]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
|
|
2
.github/workflows/codeql-analysis.yml
vendored
2
.github/workflows/codeql-analysis.yml
vendored
|
@ -13,7 +13,7 @@ jobs:
|
|||
CodeQL-Build:
|
||||
|
||||
# CodeQL runs on ubuntu-latest and windows-latest
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
|
|
|
@ -12,7 +12,7 @@ on:
|
|||
jobs:
|
||||
testDocker:
|
||||
name: Test Docker Build
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- name: Build
|
||||
|
@ -22,7 +22,7 @@ jobs:
|
|||
|
||||
# testVerdaccio:
|
||||
# name: Test Verdaccio Publish
|
||||
# runs-on: ubuntu-latest
|
||||
# runs-on: ${{ matrix.os }}
|
||||
# steps:
|
||||
# - uses: actions/checkout@v1
|
||||
# - name: Publish
|
||||
|
|
2
.github/workflows/docker-publish.yml
vendored
2
.github/workflows/docker-publish.yml
vendored
|
@ -14,7 +14,7 @@ on:
|
|||
jobs:
|
||||
testDocker:
|
||||
name: Test Docker Build
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Publish to GitHub Registry
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`testing locking readFile read file with options (parse, lock) should to be found to be read it as object 1`] = `
|
||||
Object {
|
||||
"name": "assets",
|
||||
"version": "0.0.1",
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`testing locking readFile read file with no options should to be found to be read it as object 1`] = `
|
||||
Object {
|
||||
"name": "assets",
|
||||
"version": "0.0.1",
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`testing locking readFile read file with no options should to be found to be read it as string 1`] = `
|
||||
"{
|
||||
\\"name\\": \\"assets\\",
|
||||
\\"version\\": \\"0.0.1\\"
|
||||
}
|
||||
"
|
||||
`;
|
|
@ -51,7 +51,13 @@ describe('testing locking', () => {
|
|||
test('read file with no options should to be found to be read it as string', (done) => {
|
||||
readFile(getFilePath('package.json'), {}, (error: Error, data: string) => {
|
||||
expect(error).toBeNull();
|
||||
expect(data).toMatchSnapshot();
|
||||
expect(data).toMatchInlineSnapshot(`
|
||||
"{
|
||||
\\"name\\": \\"assets\\",
|
||||
\\"version\\": \\"0.0.1\\"
|
||||
}
|
||||
"
|
||||
`);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -62,7 +68,12 @@ describe('testing locking', () => {
|
|||
};
|
||||
readFile(getFilePath('package.json'), options, (error: Error, data: string) => {
|
||||
expect(error).toBeNull();
|
||||
expect(data).toMatchSnapshot();
|
||||
expect(data).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"name": "assets",
|
||||
"version": "0.0.1",
|
||||
}
|
||||
`);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -81,9 +92,8 @@ describe('testing locking', () => {
|
|||
const options = {
|
||||
parse: true,
|
||||
};
|
||||
const errorMessage = process.platform === 'win32' ? 'Unexpected token } in JSON at position 47' : 'Unexpected token } in JSON at position 44';
|
||||
readFile(getFilePath('wrong.package.json'), options, (error: Error) => {
|
||||
expect(error.message).toEqual(errorMessage);
|
||||
expect(error.message).toMatch(/Unexpected token } in JSON at position \d+/);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@ -95,7 +105,12 @@ describe('testing locking', () => {
|
|||
};
|
||||
readFile(getFilePath('package2.json'), options, (error: Error, data: string) => {
|
||||
expect(error).toBeNull();
|
||||
expect(data).toMatchSnapshot();
|
||||
expect(data).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"name": "assets",
|
||||
"version": "0.0.1",
|
||||
}
|
||||
`);
|
||||
removeTempFile('package2.json.lock');
|
||||
done();
|
||||
});
|
||||
|
@ -106,9 +121,8 @@ describe('testing locking', () => {
|
|||
parse: true,
|
||||
lock: true,
|
||||
};
|
||||
const errorMessage = process.platform === 'win32' ? 'Unexpected token } in JSON at position 47' : 'Unexpected token } in JSON at position 44';
|
||||
readFile(getFilePath('wrong.package.json'), options, (error: Error) => {
|
||||
expect(error.message).toEqual(errorMessage);
|
||||
expect(error.message).toMatch(/Unexpected token } in JSON at position \d+/);
|
||||
removeTempFile('wrong.package.json.lock');
|
||||
done();
|
||||
});
|
||||
|
|
|
@ -71,7 +71,7 @@ describe('plugin loader', () => {
|
|||
});
|
||||
} catch (e) {
|
||||
expect(e.message).toMatch('plugin not found');
|
||||
expect(e.message).toMatch('/partials/test-plugin-storage/invalid-package');
|
||||
expect(e.message.replace(/\\/g, '/')).toMatch('/partials/test-plugin-storage/invalid-package');
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -27,7 +27,9 @@ const defaultPkg = {
|
|||
export default function (server, express) {
|
||||
const listofCalls = [HEADER_TYPE.CONTENT_LENGTH, 'chunked'];
|
||||
|
||||
describe('test send incomplete packages', () => {
|
||||
// FIXME this test causes a process crash on windows and also needs refactoring.
|
||||
// See https://github.com/verdaccio/verdaccio/pull/1919#issuecomment-681163937
|
||||
describe.skip('test send incomplete packages', () => {
|
||||
beforeAll(function () {
|
||||
express.get('/testexp-incomplete', function (_, res) {
|
||||
res.send(defaultPkg);
|
||||
|
|
|
@ -16,62 +16,40 @@ exports.onCreateWebpackConfig = ({ stage, actions }) => {
|
|||
|
||||
// You can delete this file if you're not using it
|
||||
const path = require('path');
|
||||
const docPageTemplate = path.resolve('src/templates/docPage.tsx');
|
||||
|
||||
exports.createPages = ({ graphql, actions }) => {
|
||||
exports.createPages = async ({ graphql, actions }) => {
|
||||
const { createPage } = actions;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
const docPageTemplate = path.resolve('src/templates/docPage.tsx');
|
||||
resolve(
|
||||
graphql(
|
||||
`
|
||||
query {
|
||||
allMarkdownRemark {
|
||||
edges {
|
||||
node {
|
||||
id
|
||||
frontmatter {
|
||||
title
|
||||
}
|
||||
html
|
||||
fileAbsolutePath
|
||||
}
|
||||
}
|
||||
const result = await graphql(`
|
||||
query {
|
||||
allMarkdownRemark {
|
||||
edges {
|
||||
node {
|
||||
id
|
||||
frontmatter {
|
||||
title
|
||||
}
|
||||
html
|
||||
fileAbsolutePath
|
||||
}
|
||||
`
|
||||
).then((result) => {
|
||||
const posts = result.data.allMarkdownRemark.edges;
|
||||
posts.forEach(({ node }, index) => {
|
||||
const fileAbsolutePath = node.fileAbsolutePath;
|
||||
const parsedAbsolutedPath = path.parse(fileAbsolutePath);
|
||||
if (fileAbsolutePath.match('translated_docs')) {
|
||||
const pathCrowdin = `${__dirname}/crowdin/master/website/translated_docs/`;
|
||||
const lng = parsedAbsolutedPath.dir.replace(pathCrowdin, '');
|
||||
const id = node.id;
|
||||
createPage({
|
||||
path: `docs/${lng}/${parsedAbsolutedPath.name}.html`,
|
||||
component: docPageTemplate,
|
||||
context: {
|
||||
id,
|
||||
lng,
|
||||
},
|
||||
});
|
||||
} else {
|
||||
const id = node.id;
|
||||
const lng = 'en';
|
||||
createPage({
|
||||
path: `docs/en/${parsedAbsolutedPath.name}.html`,
|
||||
component: docPageTemplate,
|
||||
context: {
|
||||
id,
|
||||
lng,
|
||||
},
|
||||
});
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
`);
|
||||
|
||||
const posts = result.data.allMarkdownRemark.edges;
|
||||
|
||||
posts.forEach(({ node }) => {
|
||||
const parsedPath = path.parse(node.fileAbsolutePath);
|
||||
const id = node.id;
|
||||
const name = parsedPath.name;
|
||||
const lng = parsedPath.dir.match('translated_docs') ? parsedPath.dir.split('/').pop() : 'en';
|
||||
|
||||
createPage({
|
||||
path: `docs/${lng}/${name}.html`,
|
||||
component: docPageTemplate,
|
||||
context: { id, lng },
|
||||
});
|
||||
});
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue