mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-24 10:27:10 +02:00
Tools: Allow building Docker image from CI
This commit is contained in:
parent
c5c38a323f
commit
8459b46cd0
@ -1604,6 +1604,9 @@ packages/renderer/pathUtils.js.map
|
|||||||
packages/renderer/utils.d.ts
|
packages/renderer/utils.d.ts
|
||||||
packages/renderer/utils.js
|
packages/renderer/utils.js
|
||||||
packages/renderer/utils.js.map
|
packages/renderer/utils.js.map
|
||||||
|
packages/tools/buildServerDocker.d.ts
|
||||||
|
packages/tools/buildServerDocker.js
|
||||||
|
packages/tools/buildServerDocker.js.map
|
||||||
packages/tools/generate-database-types.d.ts
|
packages/tools/generate-database-types.d.ts
|
||||||
packages/tools/generate-database-types.js
|
packages/tools/generate-database-types.js
|
||||||
packages/tools/generate-database-types.js.map
|
packages/tools/generate-database-types.js.map
|
||||||
|
6
.github/scripts/run_ci.sh
vendored
6
.github/scripts/run_ci.sh
vendored
@ -122,7 +122,13 @@ fi
|
|||||||
cd "$ROOT_DIR/packages/app-desktop"
|
cd "$ROOT_DIR/packages/app-desktop"
|
||||||
|
|
||||||
if [[ $GIT_TAG_NAME = v* ]]; then
|
if [[ $GIT_TAG_NAME = v* ]]; then
|
||||||
|
echo "Building and publishing desktop application..."
|
||||||
USE_HARD_LINKS=false npm run dist
|
USE_HARD_LINKS=false npm run dist
|
||||||
|
elif [[ $GIT_TAG_NAME = server-v* ]] && [[ $IS_LINUX = 1 ]]; then
|
||||||
|
echo "Building Docker Image..."
|
||||||
|
cd "$ROOT_DIR"
|
||||||
|
npm run buildServerDocker -- --tag-name $GIT_TAG_NAME
|
||||||
else
|
else
|
||||||
|
echo "Building but *not* publishing desktop application..."
|
||||||
USE_HARD_LINKS=false npm run dist -- --publish=never
|
USE_HARD_LINKS=false npm run dist -- --publish=never
|
||||||
fi
|
fi
|
||||||
|
22
.github/workflows/github-actions-main.yml
vendored
22
.github/workflows/github-actions-main.yml
vendored
@ -12,6 +12,7 @@ jobs:
|
|||||||
# exist) since otherwise it will make the whole build fails, even though
|
# exist) since otherwise it will make the whole build fails, even though
|
||||||
# it might work without update. libsecret-1-dev is required for keytar -
|
# it might work without update. libsecret-1-dev is required for keytar -
|
||||||
# https://github.com/atom/node-keytar
|
# https://github.com/atom/node-keytar
|
||||||
|
|
||||||
- name: Install Linux dependencies
|
- name: Install Linux dependencies
|
||||||
if: runner.os == 'Linux'
|
if: runner.os == 'Linux'
|
||||||
run: |
|
run: |
|
||||||
@ -19,12 +20,33 @@ jobs:
|
|||||||
sudo apt-get install -y gettext
|
sudo apt-get install -y gettext
|
||||||
sudo apt-get install -y libsecret-1-dev
|
sudo apt-get install -y libsecret-1-dev
|
||||||
|
|
||||||
|
- name: Install Docker Engine
|
||||||
|
if: runner.os == 'Linux'
|
||||||
|
run: |
|
||||||
|
sudo apt-get install -y apt-transport-https
|
||||||
|
sudo apt-get install -y ca-certificates
|
||||||
|
sudo apt-get install -y curl
|
||||||
|
sudo apt-get install -y gnupg
|
||||||
|
sudo apt-get install -y lsb-release
|
||||||
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||||
|
echo \
|
||||||
|
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
|
||||||
|
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
sudo apt-get update || true
|
||||||
|
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
|
||||||
|
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: olegtarasov/get-tag@v2.1
|
- uses: olegtarasov/get-tag@v2.1
|
||||||
- uses: actions/setup-node@v2
|
- uses: actions/setup-node@v2
|
||||||
with:
|
with:
|
||||||
node-version: '12'
|
node-version: '12'
|
||||||
|
|
||||||
|
- uses: docker/login-action@v1
|
||||||
|
if: runner.os == 'Linux'
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Run script...
|
- name: Run script...
|
||||||
env:
|
env:
|
||||||
APPLE_ASC_PROVIDER: ${{ secrets.APPLE_ASC_PROVIDER }}
|
APPLE_ASC_PROVIDER: ${{ secrets.APPLE_ASC_PROVIDER }}
|
||||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -1590,6 +1590,9 @@ packages/renderer/pathUtils.js.map
|
|||||||
packages/renderer/utils.d.ts
|
packages/renderer/utils.d.ts
|
||||||
packages/renderer/utils.js
|
packages/renderer/utils.js
|
||||||
packages/renderer/utils.js.map
|
packages/renderer/utils.js.map
|
||||||
|
packages/tools/buildServerDocker.d.ts
|
||||||
|
packages/tools/buildServerDocker.js
|
||||||
|
packages/tools/buildServerDocker.js.map
|
||||||
packages/tools/generate-database-types.d.ts
|
packages/tools/generate-database-types.d.ts
|
||||||
packages/tools/generate-database-types.js
|
packages/tools/generate-database-types.js
|
||||||
packages/tools/generate-database-types.js.map
|
packages/tools/generate-database-types.js.map
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
"releaseIOS": "node packages/tools/release-ios.js",
|
"releaseIOS": "node packages/tools/release-ios.js",
|
||||||
"releasePluginGenerator": "node packages/tools/release-plugin-generator.js",
|
"releasePluginGenerator": "node packages/tools/release-plugin-generator.js",
|
||||||
"releaseServer": "node packages/tools/release-server.js",
|
"releaseServer": "node packages/tools/release-server.js",
|
||||||
|
"buildServerDocker": "node packages/tools/buildServerDocker.js",
|
||||||
"setupNewRelease": "node ./packages/tools/setupNewRelease",
|
"setupNewRelease": "node ./packages/tools/setupNewRelease",
|
||||||
"test-ci": "lerna run test-ci --stream",
|
"test-ci": "lerna run test-ci --stream",
|
||||||
"test": "lerna run test --stream",
|
"test": "lerna run test --stream",
|
||||||
|
2
packages/server/package-lock.json
generated
2
packages/server/package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@joplin/server",
|
"name": "@joplin/server",
|
||||||
"version": "2.0.6",
|
"version": "2.0.7",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@joplin/server",
|
"name": "@joplin/server",
|
||||||
"version": "2.0.6",
|
"version": "2.0.7",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start-dev": "nodemon --config nodemon.json --ext ts,js,mustache,css,tsx dist/app.js --env dev",
|
"start-dev": "nodemon --config nodemon.json --ext ts,js,mustache,css,tsx dist/app.js --env dev",
|
||||||
|
39
packages/tools/buildServerDocker.ts
Normal file
39
packages/tools/buildServerDocker.ts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import { execCommand2, rootDir } from './tool-utils';
|
||||||
|
|
||||||
|
function getVersionFromTag(tagName: string): string {
|
||||||
|
if (tagName.indexOf('server-') !== 0) throw new Error(`Invalid tag: ${tagName}`);
|
||||||
|
const s = tagName.split('-');
|
||||||
|
return s[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
function getIsPreRelease(tagName: string): boolean {
|
||||||
|
return tagName.indexOf('-beta') > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
const argv = require('yargs').argv;
|
||||||
|
if (!argv.tagName) throw new Error('--tag-name not provided');
|
||||||
|
|
||||||
|
const tagName = argv.tagName;
|
||||||
|
const imageVersion = getVersionFromTag(tagName);
|
||||||
|
const isPreRelease = getIsPreRelease(tagName);
|
||||||
|
|
||||||
|
process.chdir(rootDir);
|
||||||
|
console.info(`Running from: ${process.cwd()}`);
|
||||||
|
|
||||||
|
console.info('tagName:', tagName);
|
||||||
|
console.info('imageVersion:', imageVersion);
|
||||||
|
console.info('isPreRelease:', isPreRelease);
|
||||||
|
|
||||||
|
await execCommand2(`docker build -t "joplin/server:${imageVersion}" -f Dockerfile.server .`);
|
||||||
|
await execCommand2(`docker tag "joplin/server:${imageVersion}" "joplin/server:latest"`);
|
||||||
|
await execCommand2(`docker push joplin/server:${imageVersion}`);
|
||||||
|
|
||||||
|
if (!isPreRelease) await execCommand2('docker push joplin/server:latest');
|
||||||
|
}
|
||||||
|
|
||||||
|
main().catch((error) => {
|
||||||
|
console.error('Fatal error');
|
||||||
|
console.error(error);
|
||||||
|
process.exit(1);
|
||||||
|
});
|
@ -11,18 +11,8 @@ async function main() {
|
|||||||
|
|
||||||
process.chdir(serverDir);
|
process.chdir(serverDir);
|
||||||
const version = (await execCommand2('npm version patch')).trim();
|
const version = (await execCommand2('npm version patch')).trim();
|
||||||
const versionShort = version.substr(1);
|
const versionSuffix = isPreRelease ? '-beta' : '';
|
||||||
const imageVersion = versionShort + (isPreRelease ? '-beta' : '');
|
const tagName = `server-${version}${versionSuffix}`;
|
||||||
const tagName = `server-${version}`;
|
|
||||||
|
|
||||||
process.chdir(rootDir);
|
|
||||||
console.info(`Running from: ${process.cwd()}`);
|
|
||||||
|
|
||||||
await execCommand2(`docker build -t "joplin/server:${imageVersion}" -f Dockerfile.server .`);
|
|
||||||
await execCommand2(`docker tag "joplin/server:${imageVersion}" "joplin/server:latest"`);
|
|
||||||
await execCommand2(`docker push joplin/server:${imageVersion}`);
|
|
||||||
|
|
||||||
if (!isPreRelease) await execCommand2('docker push joplin/server:latest');
|
|
||||||
|
|
||||||
const changelogPath = `${rootDir}/readme/changelog_server.md`;
|
const changelogPath = `${rootDir}/readme/changelog_server.md`;
|
||||||
await completeReleaseWithChangelog(changelogPath, version, tagName, 'Server', isPreRelease);
|
await completeReleaseWithChangelog(changelogPath, version, tagName, 'Server', isPreRelease);
|
||||||
|
@ -1,5 +1,12 @@
|
|||||||
# Joplin Server Changelog
|
# Joplin Server Changelog
|
||||||
|
|
||||||
|
## [server-v2.0.7](https://github.com/laurent22/joplin/releases/tag/server-v2.0.7) (Pre-release) - 2021-06-11T15:34:30Z
|
||||||
|
|
||||||
|
- New: Add navbar on login and sign up page (7a3a208)
|
||||||
|
- New: Added option to enable or disable stack traces (5614eb9)
|
||||||
|
- Improved: Handle custom user content URLs (a36b13d)
|
||||||
|
- Fixed: Fixed error when creating user (594084e)
|
||||||
|
|
||||||
## [server-v2.0.6](https://github.com/laurent22/joplin/releases/tag/server-v2.0.6) (Pre-release) - 2021-06-07T17:27:27Z
|
## [server-v2.0.6](https://github.com/laurent22/joplin/releases/tag/server-v2.0.6) (Pre-release) - 2021-06-07T17:27:27Z
|
||||||
|
|
||||||
- New: Add Stripe integration (770af6a)
|
- New: Add Stripe integration (770af6a)
|
||||||
|
Loading…
Reference in New Issue
Block a user