forked from laurent22/joplin
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Tools: Migrated Continuous Integration to GitHub Actions (laurent22#5061
- Loading branch information
Showing
3 changed files
with
164 additions
and
138 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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/[email protected] | ||
- 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" |
This file was deleted.
Oops, something went wrong.