mirror of
https://github.com/samuelthomas2774/nxapi.git
synced 2026-09-10 20:35:10 -05:00
Build deb package
This commit is contained in:
112
.gitlab-ci.yml
112
.gitlab-ci.yml
@@ -20,37 +20,6 @@ build:
|
||||
- "node -e \"fs.writeFileSync('package.json', JSON.stringify((json => {json.version = process.env.VERSION || json.version; json.__nxapi_release = process.env.CI_COMMIT_TAG; return json;})(JSON.parse(fs.readFileSync('package.json', 'utf-8'))), null, 4) + '\\n', 'utf-8')\""
|
||||
- PACKAGE=`npm --color="always" pack`
|
||||
- mv "$PACKAGE" nxapi.tgz
|
||||
|
||||
- npx electron-builder build --macos zip --linux --publish never
|
||||
- mv dist/app/package app
|
||||
|
||||
- |
|
||||
if [ "$CI_COMMIT_BRANCH" = "main" -a "$VERSION" != "" ]; then
|
||||
if [ "$NPM_PUBLISH_NEXT" = "true" -a "$NPM_TOKEN" != "" ]; then
|
||||
echo "Publishing $VERSION to npm"
|
||||
# Prerelease version was already written to package.json
|
||||
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc
|
||||
npm --color="always" publish --tag next
|
||||
fi
|
||||
|
||||
if [ "$GITLAB_NPM_PUBLISH_NEXT" = "true" -a "$GITLAB_NPM_PACKAGE_NAME" != "" ]; then
|
||||
echo "Publishing $VERSION to GitLab"
|
||||
node -e "fs.writeFileSync('package.json', JSON.stringify((json => {json.name = process.env.GITLAB_NPM_PACKAGE_NAME; json.publishConfig = {access: 'public'}; return json;})(JSON.parse(fs.readFileSync('package.json', 'utf-8'))), null, 4) + '\n', 'utf-8')"
|
||||
node -e "fs.writeFileSync('package-lock.json', JSON.stringify((json => {json.name = process.env.GITLAB_NPM_PACKAGE_NAME; return json;})(JSON.parse(fs.readFileSync('package-lock.json', 'utf-8'))), null, 4) + '\n', 'utf-8')"
|
||||
|
||||
echo "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}" | sed s/^https:// > .npmrc
|
||||
npm --color="always" --registry=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/npm/ publish --tag next
|
||||
fi
|
||||
|
||||
if [ "$GITHUB_NPM_PUBLISH_NEXT" = "true" -a "$GITHUB_NPM_PACKAGE_NAME" != "" -a "$GITHUB_REPOSITORY" != "" -a "$GITHUB_NPM_TOKEN" != "" ]; then
|
||||
echo "Publishing $VERSION to GitHub"
|
||||
node -e "fs.writeFileSync('package.json', JSON.stringify((json => {json.name = process.env.GITHUB_NPM_PACKAGE_NAME; json.publishConfig = {access: 'public'}; json.repository = {type: 'git', url: 'https://github.com/' + process.env.GITHUB_REPOSITORY + '.git'}; return json;})(JSON.parse(fs.readFileSync('package.json', 'utf-8'))), null, 4) + '\n', 'utf-8')"
|
||||
node -e "fs.writeFileSync('package-lock.json', JSON.stringify((json => {json.name = process.env.GITHUB_NPM_PACKAGE_NAME; return json;})(JSON.parse(fs.readFileSync('package-lock.json', 'utf-8'))), null, 4) + '\n', 'utf-8')"
|
||||
|
||||
echo "//npm.pkg.github.com/:_authToken=${GITHUB_NPM_TOKEN}" > .npmrc
|
||||
npm --color="always" --registry=https://npm.pkg.github.com/ publish --tag next
|
||||
fi
|
||||
fi
|
||||
artifacts:
|
||||
paths:
|
||||
- dist
|
||||
@@ -121,20 +90,40 @@ build-docker:
|
||||
cache:
|
||||
policy: pull
|
||||
|
||||
build-app:
|
||||
stage: build
|
||||
script:
|
||||
- "node -e \"fs.writeFileSync('package.json', JSON.stringify((json => {json.__nxapi_release = process.env.CI_COMMIT_TAG; return json;})(JSON.parse(fs.readFileSync('package.json', 'utf-8'))), null, 4) + '\\n', 'utf-8')\""
|
||||
|
||||
- npx electron-builder build --macos zip --linux deb snap appimage --publish never
|
||||
- mv dist/app/package app
|
||||
dependencies:
|
||||
- build
|
||||
artifacts:
|
||||
paths:
|
||||
- app
|
||||
exclude:
|
||||
- app/mac/**/*
|
||||
- app/win-unpacked/**/*
|
||||
- app/linux-unpacked/**/*
|
||||
only:
|
||||
variables:
|
||||
- $BUILD_APP == "true"
|
||||
cache:
|
||||
paths:
|
||||
- node_modules/
|
||||
policy: pull
|
||||
|
||||
build-windows:
|
||||
stage: build
|
||||
image: electronuserland/builder:wine
|
||||
script:
|
||||
- npx tsc
|
||||
# Uses CI_COMMIT_TAG
|
||||
- NODE_ENV=production npx rollup --config
|
||||
|
||||
- node bin/nxapi.js util validate-discord-titles
|
||||
|
||||
- "node -e \"fs.writeFileSync('package.json', JSON.stringify((json => {json.__nxapi_release = process.env.CI_COMMIT_TAG; return json;})(JSON.parse(fs.readFileSync('package.json', 'utf-8'))), null, 4) + '\\n', 'utf-8')\""
|
||||
|
||||
- npx electron-builder build --win nsis --publish never
|
||||
- mv dist/app/package app
|
||||
dependencies:
|
||||
- build
|
||||
artifacts:
|
||||
paths:
|
||||
- app
|
||||
@@ -153,6 +142,8 @@ build-windows:
|
||||
publish-npm:
|
||||
stage: deploy
|
||||
script:
|
||||
- "node -e \"fs.writeFileSync('package.json', JSON.stringify((json => {json.__nxapi_release = process.env.CI_COMMIT_TAG; return json;})(JSON.parse(fs.readFileSync('package.json', 'utf-8'))), null, 4) + '\\n', 'utf-8')\""
|
||||
|
||||
- echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc
|
||||
- npm --color="always" publish
|
||||
dependencies:
|
||||
@@ -173,7 +164,7 @@ publish-gitlab:
|
||||
stage: deploy
|
||||
script:
|
||||
# Update the package.json and package-lock.json
|
||||
- "node -e \"fs.writeFileSync('package.json', JSON.stringify((json => {json.name = process.env.GITLAB_NPM_PACKAGE_NAME; json.publishConfig = {access: 'public'}; return json;})(JSON.parse(fs.readFileSync('package.json', 'utf-8'))), null, 4) + '\\n', 'utf-8')\""
|
||||
- "node -e \"fs.writeFileSync('package.json', JSON.stringify((json => {json.name = process.env.GITLAB_NPM_PACKAGE_NAME; json.publishConfig = {access: 'public'}; json.__nxapi_release = process.env.CI_COMMIT_TAG; return json;})(JSON.parse(fs.readFileSync('package.json', 'utf-8'))), null, 4) + '\\n', 'utf-8')\""
|
||||
- "node -e \"fs.writeFileSync('package-lock.json', JSON.stringify((json => {json.name = process.env.GITLAB_NPM_PACKAGE_NAME; return json;})(JSON.parse(fs.readFileSync('package-lock.json', 'utf-8'))), null, 4) + '\\n', 'utf-8')\""
|
||||
|
||||
- echo "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}" | sed s/^https:// > .npmrc
|
||||
@@ -197,7 +188,7 @@ publish-github:
|
||||
stage: deploy
|
||||
script:
|
||||
# Update the package.json and package-lock.json
|
||||
- "node -e \"fs.writeFileSync('package.json', JSON.stringify((json => {json.name = process.env.GITHUB_NPM_PACKAGE_NAME; json.publishConfig = {access: 'public'}; json.repository = {type: 'git', url: 'https://github.com/' + process.env.GITHUB_REPOSITORY + '.git'}; return json;})(JSON.parse(fs.readFileSync('package.json', 'utf-8'))), null, 4) + '\\n', 'utf-8')\""
|
||||
- "node -e \"fs.writeFileSync('package.json', JSON.stringify((json => {json.name = process.env.GITHUB_NPM_PACKAGE_NAME; json.publishConfig = {access: 'public'}; json.repository = {type: 'git', url: 'https://github.com/' + process.env.GITHUB_REPOSITORY + '.git'}; json.__nxapi_release = process.env.CI_COMMIT_TAG; return json;})(JSON.parse(fs.readFileSync('package.json', 'utf-8'))), null, 4) + '\\n', 'utf-8')\""
|
||||
- "node -e \"fs.writeFileSync('package-lock.json', JSON.stringify((json => {json.name = process.env.GITHUB_NPM_PACKAGE_NAME; return json;})(JSON.parse(fs.readFileSync('package-lock.json', 'utf-8'))), null, 4) + '\\n', 'utf-8')\""
|
||||
|
||||
- echo "//npm.pkg.github.com/:_authToken=${GITHUB_NPM_TOKEN}" > .npmrc
|
||||
@@ -217,3 +208,46 @@ publish-github:
|
||||
paths:
|
||||
- node_modules/
|
||||
policy: pull
|
||||
|
||||
publish-next:
|
||||
stage: deploy
|
||||
script:
|
||||
- |
|
||||
export VERSION=`[ "$CI_COMMIT_BRANCH" != "main" ] || node resources/build/ci-main-version.js`
|
||||
"node -e \"fs.writeFileSync('package.json', JSON.stringify((json => {json.version = process.env.VERSION || json.version; json.__nxapi_release = process.env.CI_COMMIT_TAG; return json;})(JSON.parse(fs.readFileSync('package.json', 'utf-8'))), null, 4) + '\\n', 'utf-8')\""
|
||||
|
||||
if [ "$CI_COMMIT_BRANCH" = "main" -a "$VERSION" != "" ]; then
|
||||
if [ "$NPM_PUBLISH_NEXT" = "true" -a "$NPM_TOKEN" != "" ]; then
|
||||
echo "Publishing $VERSION to npm"
|
||||
# Prerelease version was already written to package.json
|
||||
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc
|
||||
npm --color="always" publish --tag next
|
||||
fi
|
||||
|
||||
if [ "$GITLAB_NPM_PUBLISH_NEXT" = "true" -a "$GITLAB_NPM_PACKAGE_NAME" != "" ]; then
|
||||
echo "Publishing $VERSION to GitLab"
|
||||
node -e "fs.writeFileSync('package.json', JSON.stringify((json => {json.name = process.env.GITLAB_NPM_PACKAGE_NAME; json.publishConfig = {access: 'public'}; return json;})(JSON.parse(fs.readFileSync('package.json', 'utf-8'))), null, 4) + '\n', 'utf-8')"
|
||||
node -e "fs.writeFileSync('package-lock.json', JSON.stringify((json => {json.name = process.env.GITLAB_NPM_PACKAGE_NAME; return json;})(JSON.parse(fs.readFileSync('package-lock.json', 'utf-8'))), null, 4) + '\n', 'utf-8')"
|
||||
|
||||
echo "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}" | sed s/^https:// > .npmrc
|
||||
npm --color="always" --registry=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/npm/ publish --tag next
|
||||
fi
|
||||
|
||||
if [ "$GITHUB_NPM_PUBLISH_NEXT" = "true" -a "$GITHUB_NPM_PACKAGE_NAME" != "" -a "$GITHUB_REPOSITORY" != "" -a "$GITHUB_NPM_TOKEN" != "" ]; then
|
||||
echo "Publishing $VERSION to GitHub"
|
||||
node -e "fs.writeFileSync('package.json', JSON.stringify((json => {json.name = process.env.GITHUB_NPM_PACKAGE_NAME; json.publishConfig = {access: 'public'}; json.repository = {type: 'git', url: 'https://github.com/' + process.env.GITHUB_REPOSITORY + '.git'}; return json;})(JSON.parse(fs.readFileSync('package.json', 'utf-8'))), null, 4) + '\n', 'utf-8')"
|
||||
node -e "fs.writeFileSync('package-lock.json', JSON.stringify((json => {json.name = process.env.GITHUB_NPM_PACKAGE_NAME; return json;})(JSON.parse(fs.readFileSync('package-lock.json', 'utf-8'))), null, 4) + '\n', 'utf-8')"
|
||||
|
||||
echo "//npm.pkg.github.com/:_authToken=${GITHUB_NPM_TOKEN}" > .npmrc
|
||||
npm --color="always" --registry=https://npm.pkg.github.com/ publish --tag next
|
||||
fi
|
||||
fi
|
||||
dependencies:
|
||||
- build
|
||||
only:
|
||||
refs:
|
||||
- main
|
||||
cache:
|
||||
paths:
|
||||
- node_modules/
|
||||
policy: pull
|
||||
|
||||
@@ -72,6 +72,9 @@ node Nintendo\ Switch\ Online.app/Contents/Resources/app/dist/bundle/cli-bundle.
|
||||
|
||||
# Windows
|
||||
node 'Nintendo Switch Online/resources/app/dist/bundle/cli-bundle.js' ...
|
||||
|
||||
# Linux, installed via dpkg
|
||||
node /opt/Nintendo\ Switch\ Online/resources/app/dist/bundle/cli-bundle.js ...
|
||||
```
|
||||
|
||||
#### Do I need a Nintendo Switch Online membership?
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"version": "1.4.0",
|
||||
"description": "Nintendo Switch app APIs",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"author": "Samuel Elliott",
|
||||
"author": "Samuel Elliott <samuel+nxapi@fancy.org.uk>",
|
||||
"main": "dist/index.js",
|
||||
"type": "module",
|
||||
"repository": {
|
||||
|
||||
Reference in New Issue
Block a user