You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-12-14 23:26:58 +02:00
Compare commits
18 Commits
v3.4.3
...
test-gh-ac
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
32025a1fcd | ||
|
|
7e9e0f9959 | ||
|
|
9d9e0547fe | ||
|
|
eb0f5cc28c | ||
|
|
be7e7ceed8 | ||
|
|
9f6388da63 | ||
|
|
b0f3eaa4ac | ||
|
|
b9258a316d | ||
|
|
35feaa65bf | ||
|
|
2cbe913baa | ||
|
|
f825452189 | ||
|
|
6b1624bc35 | ||
|
|
f4fc55461b | ||
|
|
7fa544b4a2 | ||
|
|
7b81317d93 | ||
|
|
d74526eafa | ||
|
|
caaa3ac517 | ||
|
|
d4e25b9225 |
127
.github/scripts/run_ci.sh
vendored
Executable file
127
.github/scripts/run_ci.sh
vendored
Executable file
@@ -0,0 +1,127 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# Setup environment variables
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||||
|
ROOT_DIR="$SCRIPT_DIR/../.."
|
||||||
|
|
||||||
|
IS_PULL_REQUEST=0
|
||||||
|
IS_DEV_BRANCH=0
|
||||||
|
IS_LINUX=0
|
||||||
|
IS_MACOS=0
|
||||||
|
|
||||||
|
if [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then
|
||||||
|
IS_PULL_REQUEST=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$GITHUB_REF" == "refs/heads/dev" ]; then
|
||||||
|
IS_DEV_BRANCH=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$RUNNER_OS" == "Linux" ]; then
|
||||||
|
IS_LINUX=1
|
||||||
|
IS_MACOS=0
|
||||||
|
else
|
||||||
|
IS_LINUX=0
|
||||||
|
IS_MACOS=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# Print environment
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
echo "GITHUB_WORKFLOW=$GITHUB_WORKFLOW"
|
||||||
|
echo "GITHUB_EVENT_NAME=$GITHUB_EVENT_NAME"
|
||||||
|
echo "GITHUB_REF=$GITHUB_REF"
|
||||||
|
echo "RUNNER_OS=$RUNNER_OS"
|
||||||
|
echo "GIT_TAG_NAME=$GIT_TAG_NAME"
|
||||||
|
|
||||||
|
echo "IS_PULL_REQUEST=$IS_PULL_REQUEST"
|
||||||
|
echo "IS_DEV_BRANCH=$IS_DEV_BRANCH"
|
||||||
|
echo "IS_LINUX=$IS_LINUX"
|
||||||
|
echo "IS_MACOS=$IS_MACOS"
|
||||||
|
|
||||||
|
echo "Node $( node -v )"
|
||||||
|
echo "Npm $( npm -v )"
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# Install packages
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
cd "$ROOT_DIR"
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# Run test units. Only do it for pull requests and dev branch because we don't
|
||||||
|
# want it to randomly fail when trying to create a desktop release.
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
if [ "$IS_PULL_REQUEST" == "1" ] || [ "$IS_DEV_BRANCH" = "1" ]; then
|
||||||
|
npm run test-ci
|
||||||
|
testResult=$?
|
||||||
|
if [ $testResult -ne 0 ]; then
|
||||||
|
exit $testResult
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# Run linter for pull requests only. We also don't want this to make the desktop
|
||||||
|
# release randomly fail.
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
if [ "$IS_PULL_REQUEST" != "1" ]; then
|
||||||
|
npm run linter-ci ./
|
||||||
|
testResult=$?
|
||||||
|
if [ $testResult -ne 0 ]; then
|
||||||
|
exit $testResult
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# Validate translations - this is needed as some users manually edit .po files
|
||||||
|
# (and often make mistakes) instead of using a proper tool like poedit. Doing it
|
||||||
|
# for Linux only is sufficient.
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
if [ "$IS_PULL_REQUEST" == "1" ]; then
|
||||||
|
if [ "$IS_LINUX" == "1" ]; then
|
||||||
|
node packages/tools/validate-translation.js
|
||||||
|
testResult=$?
|
||||||
|
if [ $testResult -ne 0 ]; then
|
||||||
|
exit $testResult
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# Find out if we should run the build or not. Electron-builder gets stuck when
|
||||||
|
# building PRs so we disable it in this case. The Linux build should provide
|
||||||
|
# enough info if the app builds or not.
|
||||||
|
# https://github.com/electron-userland/electron-builder/issues/4263
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
if [ "$IS_PULL_REQUEST" == "1" ]; then
|
||||||
|
if [ "$IS_MACOS" == "1" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# Prepare the Electron app and build it
|
||||||
|
#
|
||||||
|
# If the current tag is a desktop release tag (starts with "v", such as
|
||||||
|
# "v1.4.7"), we build and publish to github
|
||||||
|
#
|
||||||
|
# Otherwise we only build but don't publish to GitHub. It helps finding
|
||||||
|
# out any issue in pull requests and dev branch.
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
cd "$ROOT_DIR/packages/app-desktop"
|
||||||
|
|
||||||
|
if [[ $GIT_TAG_NAME = v* ]]; then
|
||||||
|
USE_HARD_LINKS=false npm run dist
|
||||||
|
else
|
||||||
|
USE_HARD_LINKS=false npm run dist -- --publish=never
|
||||||
|
fi
|
||||||
37
.github/workflows/github-actions-main.yml
vendored
Normal file
37
.github/workflows/github-actions-main.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
name: Joplin Continuous Integration
|
||||||
|
on: [push]
|
||||||
|
jobs:
|
||||||
|
Main:
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [macos-latest, ubuntu-latest]
|
||||||
|
steps:
|
||||||
|
|
||||||
|
# Silence apt-get update errors (for example when a module doesn't
|
||||||
|
# exist) since otherwise it will make the whole build fails, even though
|
||||||
|
# it might work without update. libsecret-1-dev is required for keytar -
|
||||||
|
# https://github.com/atom/node-keytar
|
||||||
|
- name: Install Linux dependencies
|
||||||
|
if: runner.os == 'Linux'
|
||||||
|
run: |
|
||||||
|
sudo apt-get update || true
|
||||||
|
sudo apt-get install -y gettext
|
||||||
|
sudo apt-get install -y libsecret-1-dev
|
||||||
|
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: olegtarasov/get-tag@v2.1
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: '12'
|
||||||
|
|
||||||
|
- name: Run script...
|
||||||
|
env:
|
||||||
|
APPLE_ASC_PROVIDER: ${{ secrets.APPLE_ASC_PROVIDER }}
|
||||||
|
APPLE_ID: ${{ secrets.APPLE_ID }}
|
||||||
|
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
|
||||||
|
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
|
||||||
|
CSC_LINK: ${{ secrets.CSC_LINK }}
|
||||||
|
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||||
|
run: |
|
||||||
|
"${GITHUB_WORKSPACE}/.github/scripts/run_ci.sh"
|
||||||
138
.travis.yml
138
.travis.yml
@@ -1,138 +0,0 @@
|
|||||||
# Only build tags (Doesn't work - doesn't build anything)
|
|
||||||
if: tag IS present OR type = pull_request OR branch = dev
|
|
||||||
|
|
||||||
rvm: 2.3.3
|
|
||||||
|
|
||||||
# It's important to only build production branches otherwise Electron Builder
|
|
||||||
# might take assets from dev branches and overwrite those of production.
|
|
||||||
# https://docs.travis-ci.com/user/customizing-the-build/#Building-Specific-Branches
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- dev
|
|
||||||
- /^v\d+\.\d+(\.\d+)?(-\S*)?$/
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: osx
|
|
||||||
osx_image: xcode12
|
|
||||||
language: node_js
|
|
||||||
node_js: "12"
|
|
||||||
cache:
|
|
||||||
npm: false
|
|
||||||
# Cache was disabled because when changing from node_js 10 to node_js 12
|
|
||||||
# it was still using build files from Node 10 when building SQLite which
|
|
||||||
# was making it fail. Might be ok to re-enable later on, although it doesn't
|
|
||||||
# make build that much faster.
|
|
||||||
#
|
|
||||||
# env:
|
|
||||||
# - ELECTRON_CACHE=$HOME/.cache/electron
|
|
||||||
# - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder
|
|
||||||
|
|
||||||
- os: linux
|
|
||||||
sudo: required
|
|
||||||
dist: trusty
|
|
||||||
language: node_js
|
|
||||||
node_js: "12"
|
|
||||||
cache:
|
|
||||||
npm: false
|
|
||||||
# env:
|
|
||||||
# - ELECTRON_CACHE=$HOME/.cache/electron
|
|
||||||
# - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder
|
|
||||||
|
|
||||||
# cache:
|
|
||||||
# directories:
|
|
||||||
# - node_modules
|
|
||||||
# - $HOME/.cache/electron
|
|
||||||
# - $HOME/.cache/electron-builder
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
# HOMEBREW_NO_AUTO_UPDATE needed so that Homebrew doesn't upgrade to the next
|
|
||||||
# version, which requires Ruby 2.3, which is not available on the Travis VM.
|
|
||||||
|
|
||||||
# Silence apt-get update errors (for example when a module doesn't exist) since
|
|
||||||
# otherwise it will make the whole build fails, even though all we need is yarn.
|
|
||||||
|
|
||||||
# libsecret-1-dev is required for keytar - https://github.com/atom/node-keytar
|
|
||||||
- |
|
|
||||||
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
|
||||||
HOMEBREW_NO_AUTO_UPDATE=1 brew install yarn
|
|
||||||
else
|
|
||||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
|
|
||||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
|
|
||||||
sudo apt-get update || true
|
|
||||||
sudo apt-get install -y yarn
|
|
||||||
sudo apt-get install -y gettext
|
|
||||||
sudo apt-get install -y libsecret-1-dev
|
|
||||||
fi
|
|
||||||
|
|
||||||
script:
|
|
||||||
- |
|
|
||||||
# Prints some env variables
|
|
||||||
echo "TRAVIS_OS_NAME=$TRAVIS_OS_NAME"
|
|
||||||
echo "TRAVIS_BRANCH=$TRAVIS_BRANCH"
|
|
||||||
echo "TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST"
|
|
||||||
echo "TRAVIS_TAG=$TRAVIS_TAG"
|
|
||||||
|
|
||||||
# Install tools
|
|
||||||
npm install
|
|
||||||
|
|
||||||
# Run test units.
|
|
||||||
# Only do it for pull requests because Travis randomly fails to run them
|
|
||||||
# and that would break the desktop release.
|
|
||||||
if [ "$TRAVIS_PULL_REQUEST" != "false" ] || [ "$TRAVIS_BRANCH" = "dev" ]; then
|
|
||||||
npm run test-ci
|
|
||||||
testResult=$?
|
|
||||||
if [ $testResult -ne 0 ]; then
|
|
||||||
exit $testResult
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Run linter for pull requests only - this is so that
|
|
||||||
# bypassing eslint is allowed for urgent fixes.
|
|
||||||
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
|
|
||||||
npm run linter-ci ./
|
|
||||||
testResult=$?
|
|
||||||
if [ $testResult -ne 0 ]; then
|
|
||||||
exit $testResult
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Validate translations - this is needed as some users manually
|
|
||||||
# edit .po files (and often make mistakes) instead of using a proper
|
|
||||||
# tool like poedit. Doing it for Linux only is sufficient.
|
|
||||||
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
|
|
||||||
if [ "$TRAVIS_OS_NAME" != "osx" ]; then
|
|
||||||
node packages/tools/validate-translation.js
|
|
||||||
testResult=$?
|
|
||||||
if [ $testResult -ne 0 ]; then
|
|
||||||
exit $testResult
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Find out if we should run the build or not. Electron-builder gets stuck when
|
|
||||||
# building PRs so we disable it in this case. The Linux build should provide
|
|
||||||
# enough info if the app builds or not.
|
|
||||||
# https://github.com/electron-userland/electron-builder/issues/4263
|
|
||||||
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
|
|
||||||
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Prepare the Electron app and build it
|
|
||||||
#
|
|
||||||
# If the current tag is a desktop release tag (starts with "v", such as
|
|
||||||
# "v1.4.7"), we build and publish to github
|
|
||||||
#
|
|
||||||
# Otherwise we only build but don't publish to GitHub. It helps finding
|
|
||||||
# out any issue in pull requests and dev branch.
|
|
||||||
|
|
||||||
cd packages/app-desktop
|
|
||||||
|
|
||||||
if [[ $TRAVIS_TAG = v* ]]; then
|
|
||||||
USE_HARD_LINKS=false npm run dist
|
|
||||||
else
|
|
||||||
USE_HARD_LINKS=false npm run dist -- --publish=never
|
|
||||||
fi
|
|
||||||
Reference in New Issue
Block a user