diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..a5b6702a --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,387 @@ +name: Build + Publish + +on: + push: + branches: + - main + tags: + - 'v*' + +env: + BASE_DEV_VERSION: 2.5.0 + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + permissions: + packages: write + + steps: + - uses: actions/checkout@v2 + + - name: Set Build Variables + run: | + if [[ "$GITHUB_REF" =~ ^refs/tags/v* ]]; then + echo "Using TAG mode: $GITHUB_REF_NAME" + echo "REL_VERSION=$GITHUB_REF_NAME" >> $GITHUB_ENV + echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV + else + echo "Using BRANCH mode: v$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" + echo "REL_VERSION=v$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" >> $GITHUB_ENV + echo "REL_VERSION_STRICT=$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" >> $GITHUB_ENV + fi + + - name: Disable DEV Flag + Set Version + run: | + sudo apt-get install jq -y + mv package.json pkg-temp.json + jq --arg vs "$REL_VERSION_STRICT" -r '. + {dev:false, version:$vs}' pkg-temp.json > package.json + rm pkg-temp.json + cat package.json + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push Docker images + uses: docker/build-push-action@v2.9.0 + with: + context: . + file: dev/build/Dockerfile + push: true + tags: | + requarks/wiki:canary + requarks/wiki:canary-${{ env.REL_VERSION_STRICT }} + ghcr.io/requarks/wiki:canary + ghcr.io/requarks/wiki:canary-${{ env.REL_VERSION_STRICT }} + + - name: Extract compiled files + run: | + mkdir -p _dist + docker create --name wiki ghcr.io/requarks/wiki:canary-$REL_VERSION_STRICT + docker cp wiki:/wiki _dist + docker rm wiki + rm _dist/wiki/config.yml + cp ./config.sample.yml _dist/wiki/config.sample.yml + find _dist/wiki/ -printf "%P\n" | tar -czf wiki-js.tar.gz --no-recursion -C _dist/wiki/ -T - + + - name: Upload a Build Artifact + uses: actions/upload-artifact@v2.3.1 + with: + name: drop + path: wiki-js.tar.gz + + cypress: + name: Run Cypress Tests + runs-on: ubuntu-latest + needs: [build] + + strategy: + matrix: + dbtype: [postgres, mysql, mariadb, mssql, sqlite] + + steps: + - uses: actions/checkout@v2 + + - name: Set Test Variables + run: | + if [[ "$GITHUB_REF" =~ ^refs/tags/v* ]]; then + echo "Using TAG mode: $GITHUB_REF_NAME" + echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV + else + echo "Using BRANCH mode: v$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" + echo "REL_VERSION_STRICT=$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" >> $GITHUB_ENV + fi + + - name: Run Tests + env: + MATRIXENV: ${{ matrix.dbtype }} + CYPRESS_KEY: ${{ secrets.CYPRESS_KEY }} + run: | + chmod u+x dev/cypress/ci-setup.sh + dev/cypress/ci-setup.sh + docker run --name cypress --ipc=host --shm-size 1G -v $GITHUB_WORKSPACE:/e2e -w /e2e cypress/included:4.9.0 --record --key "$CYPRESS_KEY" --headless --group "$MATRIXENV" --ci-build-id "$REL_VERSION_STRICT-run$GITHUB_RUN_NUMBER.$GITHUB_RUN_ATTEMPT" --tag "$REL_VERSION_STRICT" --config baseUrl=http://172.17.0.1:3000 + + arm: + name: ARM Build + runs-on: ubuntu-latest + needs: [cypress] + permissions: + packages: write + + strategy: + matrix: + include: + - platform: linux/arm64 + docker: arm64 + - platform: linux/arm/v7 + docker: armv7 + + steps: + - uses: actions/checkout@v2 + + - name: Set Version Variables + run: | + if [[ "$GITHUB_REF" =~ ^refs/tags/v* ]]; then + echo "Using TAG mode: $GITHUB_REF_NAME" + echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV + else + echo "Using BRANCH mode: v$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" + echo "REL_VERSION_STRICT=$BASE_DEV_VERSION-dev.$GITHUB_RUN_NUMBER" >> $GITHUB_ENV + fi + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Download a Build Artifact + uses: actions/download-artifact@v2.1.0 + with: + name: drop + path: drop + + - name: Extract Build + run: | + mkdir -p build + tar -xzf $GITHUB_WORKSPACE/drop/wiki-js.tar.gz -C $GITHUB_WORKSPACE/build --exclude=node_modules + + - name: Build and push Docker images + uses: docker/build-push-action@v2.9.0 + with: + context: . + file: dev/build-arm/Dockerfile + platforms: ${{ matrix.platform }} + push: true + tags: | + requarks/wiki:canary-${{ matrix.docker }}-${{ env.REL_VERSION_STRICT }} + ghcr.io/requarks/wiki:canary-${{ matrix.docker }}-${{ env.REL_VERSION_STRICT }} + + windows: + name: Windows Build + runs-on: windows-latest + needs: [cypress] + + steps: + - name: Setup Node.js environment + uses: actions/setup-node@v2.5.1 + with: + node-version: 12.x + + - name: Download a Build Artifact + uses: actions/download-artifact@v2.1.0 + with: + name: drop + path: drop + + - name: Extract Build + run: | + mkdir -p win + tar -xzf $env:GITHUB_WORKSPACE\drop\wiki-js.tar.gz -C $env:GITHUB_WORKSPACE\win --exclude=node_modules + + - name: Install Dependencies + run: yarn --production --frozen-lockfile --non-interactive + working-directory: win + + - name: Create Bundle + run: tar -czf wiki-js-windows.tar.gz -C $env:GITHUB_WORKSPACE\win . + + - name: Upload a Build Artifact + uses: actions/upload-artifact@v2.3.1 + with: + name: drop-win + path: wiki-js-windows.tar.gz + + beta: + name: Publish Beta Images + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags/v') + needs: [build, arm, windows] + permissions: + packages: write + + steps: + - name: Set Version Variables + run: | + echo "Using TAG mode: $GITHUB_REF_NAME" + echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Create and Push Manifests + run: | + echo "Creating the manifests..." + + docker manifest create requarks/wiki:beta-$REL_VERSION_STRICT requarks/wiki:canary-$REL_VERSION_STRICT requarks/wiki:canary-arm64-$REL_VERSION_STRICT requarks/wiki:canary-armv7-$REL_VERSION_STRICT + docker manifest create ghcr.io/requarks/wiki:beta-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-arm64-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-armv7-$REL_VERSION_STRICT + + echo "Pushing the manifests..." + + docker manifest push -p requarks/wiki:beta-$REL_VERSION_STRICT + docker manifest push -p ghcr.io/requarks/wiki:beta-$REL_VERSION_STRICT + + release: + name: Publish Release Images + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags/v') + environment: prod + needs: [beta] + permissions: + packages: write + contents: write + + steps: + - name: Set Version Variables + run: | + echo "Using TAG mode: $GITHUB_REF_NAME" + echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Create and Push Manifests + run: | + echo "Fetching semver tool..." + curl -LJO https://static.requarks.io/semver + chmod +x semver + + MAJOR=`./semver get major $REL_VERSION_STRICT` + MINOR=`./semver get minor $REL_VERSION_STRICT` + MAJORMINOR="$MAJOR.$MINOR" + + echo "Using major $MAJOR and minor $MINOR..." + echo "Creating the manifests..." + + docker manifest create requarks/wiki:$REL_VERSION_STRICT requarks/wiki:canary-$REL_VERSION_STRICT requarks/wiki:canary-arm64-$REL_VERSION_STRICT requarks/wiki:canary-armv7-$REL_VERSION_STRICT + docker manifest create requarks/wiki:$MAJOR requarks/wiki:canary-$REL_VERSION_STRICT requarks/wiki:canary-arm64-$REL_VERSION_STRICT requarks/wiki:canary-armv7-$REL_VERSION_STRICT + docker manifest create requarks/wiki:$MAJORMINOR requarks/wiki:canary-$REL_VERSION_STRICT requarks/wiki:canary-arm64-$REL_VERSION_STRICT requarks/wiki:canary-armv7-$REL_VERSION_STRICT + docker manifest create requarks/wiki:latest requarks/wiki:canary-$REL_VERSION_STRICT requarks/wiki:canary-arm64-$REL_VERSION_STRICT requarks/wiki:canary-armv7-$REL_VERSION_STRICT + docker manifest create ghcr.io/requarks/wiki:$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-arm64-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-armv7-$REL_VERSION_STRICT + docker manifest create ghcr.io/requarks/wiki:$MAJOR ghcr.io/requarks/wiki:canary-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-arm64-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-armv7-$REL_VERSION_STRICT + docker manifest create ghcr.io/requarks/wiki:$MAJORMINOR ghcr.io/requarks/wiki:canary-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-arm64-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-armv7-$REL_VERSION_STRICT + docker manifest create ghcr.io/requarks/wiki:latest ghcr.io/requarks/wiki:canary-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-arm64-$REL_VERSION_STRICT ghcr.io/requarks/wiki:canary-armv7-$REL_VERSION_STRICT + + echo "Pushing the manifests..." + + docker manifest push -p requarks/wiki:$REL_VERSION_STRICT + docker manifest push -p requarks/wiki:$MAJOR + docker manifest push -p requarks/wiki:$MAJORMINOR + docker manifest push -p requarks/wiki:latest + docker manifest push -p ghcr.io/requarks/wiki:$REL_VERSION_STRICT + docker manifest push -p ghcr.io/requarks/wiki:$MAJOR + docker manifest push -p ghcr.io/requarks/wiki:$MAJORMINOR + docker manifest push -p ghcr.io/requarks/wiki:latest + + - name: Download Linux Build + uses: actions/download-artifact@v2.1.0 + with: + name: drop + path: drop + + - name: Download Windows Build + uses: actions/download-artifact@v2.1.0 + with: + name: drop-win + path: drop-win + + - name: Generate Changelog + id: changelog + uses: Requarks/changelog-action@v1 + with: + token: ${{ github.token }} + tag: ${{ github.ref_name }} + writeToFile: false + + - name: Update GitHub Release + uses: ncipollo/release-action@v1 + with: + allowUpdates: true + draft: false + name: ${{ github.ref_name }} + body: ${{ steps.changelog.outputs.changes }} + token: ${{ github.token }} + artifacts: 'drop/wiki-js.tar.gz,drop-win/wiki-js-windows.tar.gz' + + - name: Notify Slack Releases Channel + uses: slackapi/slack-github-action@v1.18.0 + with: + payload: | + { + "text": "Wiki.js ${{ github.ref_name }} has been released." + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + + build-do-image: + name: Build DigitalOcean Image + runs-on: ubuntu-latest + needs: [release] + + steps: + - uses: actions/checkout@v2 + + - name: Set Version Variables + run: | + echo "Using TAG mode: $GITHUB_REF_NAME" + echo "REL_VERSION_STRICT=${GITHUB_REF_NAME#?}" >> $GITHUB_ENV + + - name: Install Packer + run: | + curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add - + sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main" + sudo apt-get update && sudo apt-get install packer + + - name: Build Droplet Image + env: + DIGITALOCEAN_API_TOKEN: ${{ secrets.DO_TOKEN }} + WIKI_APP_VERSION: ${{ env.REL_VERSION_STRICT }} + working-directory: dev/packer + run: | + packer build digitalocean.json diff --git a/.github/workflows/helm.yml b/.github/workflows/helm.yml index 5d7bec69..5c27af1e 100644 --- a/.github/workflows/helm.yml +++ b/.github/workflows/helm.yml @@ -3,7 +3,7 @@ name: Helm Chart CI on: # Triggers the workflow on push or pull request events but only for the dev branch push: - branches: [ dev ] + branches: [ main ] paths: [ dev/helm/** ] # Allows you to run this workflow manually from the Actions tab diff --git a/.github/workflows/packer.yml b/.github/workflows/packer.yml new file mode 100644 index 00000000..4ef42f31 --- /dev/null +++ b/.github/workflows/packer.yml @@ -0,0 +1,31 @@ +name: Build DigitalOcean Image + +on: + workflow_dispatch: + inputs: + version: + description: 'App Version' + required: true + type: string + +jobs: + build-do-image: + name: Build DigitalOcean Image + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Install Packer + run: | + curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add - + sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main" + sudo apt-get update && sudo apt-get install packer + + - name: Build Droplet Image + env: + DIGITALOCEAN_API_TOKEN: ${{ secrets.DO_TOKEN }} + WIKI_APP_VERSION: ${{ github.event.inputs.version }} + working-directory: dev/packer + run: | + packer build digitalocean.json diff --git a/README.md b/README.md index 4e81f6b6..f09c667a 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,13 @@ [![Release](https://img.shields.io/github/release/Requarks/wiki.svg?style=flat&maxAge=3600)](https://github.com/Requarks/wiki/releases) [![License](https://img.shields.io/badge/license-AGPLv3-blue.svg?style=flat)](https://github.com/requarks/wiki/blob/master/LICENSE) -[![Backers on Open Collective](https://opencollective.com/wikijs/all/badge.svg)](https://opencollective.com/wikijs) +[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-green.svg?style=flat&logo=javascript&logoColor=white)](http://standardjs.com/) [![Downloads](https://img.shields.io/github/downloads/Requarks/wiki/total.svg?style=flat&logo=github)](https://github.com/Requarks/wiki/releases) [![Docker Pulls](https://img.shields.io/docker/pulls/requarks/wiki.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/requarks/wiki/) -[![Build status](https://dev.azure.com/requarks/wiki/_apis/build/status/build)](https://dev.azure.com/requarks/wiki/_build/latest?definitionId=9) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=wiki&metric=alert_status)](https://sonarcloud.io/dashboard?id=wiki) -[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=wiki&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=wiki) -[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=wiki&metric=security_rating)](https://sonarcloud.io/dashboard?id=wiki) -[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](http://standardjs.com/) -[![Huntr](https://img.shields.io/badge/security%20bounty-disclose-brightgreen.svg?style=flat&logo=cachet)](https://huntr.dev/bounties/disclose) +[![Build + Publish](https://github.com/Requarks/wiki/actions/workflows/build.yml/badge.svg)](https://github.com/Requarks/wiki/actions/workflows/build.yml) +[![Huntr](https://img.shields.io/badge/security%20bounty-disclose-brightgreen.svg?style=flat&logo=cachet&logoColor=white)](https://huntr.dev/bounties/disclose) +[![GitHub Sponsors](https://img.shields.io/github/sponsors/ngpixel?logo=github&color=ea4aaa)](https://github.com/users/NGPixel/sponsorship) +[![Open Collective backers and sponsors](https://img.shields.io/opencollective/all/wikijs?label=backers&color=218bff&logo=opencollective&logoColor=white)](https://opencollective.com/wikijs) [![Chat on Slack](https://img.shields.io/badge/slack-requarks-CC2B5E.svg?style=flat&logo=slack)](https://wiki.requarks.io/slack) [![Twitter Follow](https://img.shields.io/badge/follow-%40requarks-blue.svg?style=flat&logo=twitter)](https://twitter.com/requarks) [![Reddit](https://img.shields.io/badge/reddit-%2Fr%2Fwikijs-orange?logo=reddit&logoColor=white)](https://www.reddit.com/r/wikijs/) @@ -27,7 +25,7 @@ - [Requirements](https://docs.requarks.io/install/requirements) - [Installation](https://docs.requarks.io/install) - [Demo](https://docs.requarks.io/demo) -- [Change Log](https://docs.requarks.io/releases) +- [Changelog](https://docs.requarks.io/releases) - [Feature Requests](https://feedback.js.wiki/wiki) - [Chat with us on Slack](https://wiki.requarks.io/slack) - [Translations](https://docs.requarks.io/dev/translations) *(We need your help!)* @@ -134,7 +132,9 @@ Support this project by becoming a sponsor. Your name will show up in the Contri - + +
+ - Akira Suenami ([@a-suenami](https://github.com/a-suenami)) - Arnaud Marchand ([@snuids](https://github.com/snuids)) @@ -148,15 +148,23 @@ Support this project by becoming a sponsor. Your name will show up in the Contri - Elijah Zobenko ([@he110](https://github.com/he110)) - Ernie ([@iamernie](https://github.com/iamernie)) - Fabio Ferrari ([@devxops](https://github.com/devxops)) +- Finsa S.p.A. ([@finsaspa](https://github.com/finsaspa)) - Florian Moss ([@florianmoss](https://github.com/florianmoss)) +- GoodCorporateCitizen ([@GoodCorporateCitizen](https://github.com/GoodCorporateCitizen)) - HeavenBay ([@HeavenBay](https://github.com/heavenbay)) +- Ian Hyzy ([@ianhyzy](https://github.com/ianhyzy)) - Jaimyn Mayer ([@jabelone](https://github.com/jabelone)) - Jay Lee ([@polyglotm](https://github.com/polyglotm)) - Kelly Wardrop ([@dropcoded](https://github.com/dropcoded)) - Loki ([@binaryloki](https://github.com/binaryloki)) - MaFarine ([@MaFarine](https://github.com/MaFarine)) - Marcilio Leite Neto ([@marclneto](https://github.com/marclneto)) + + + + - Mattias Johnson ([@mattiasJohnson](https://github.com/mattiasJohnson)) +- Max Ricketts-Uy ([@MaxRickettsUy](https://github.com/MaxRickettsUy)) - Mitchell Rowton ([@mrowton](https://github.com/mrowton)) - M. Scott Ford ([@mscottford](https://github.com/mscottford)) - Nick Halase ([@nhalase](https://github.com/nhalase)) @@ -164,7 +172,7 @@ Support this project by becoming a sponsor. Your name will show up in the Contri - Noel Cower ([@nilium](https://github.com/nilium)) - Philipp Schmitt ([@pschmitt](https://github.com/pschmitt)) - Robert Lanzke ([@winkelement](https://github.com/winkelement)) -- Sam Martin ([@winkelement](https://github.com/ABitMoreDepth)) +- Sam Martin ([@ABitMoreDepth](https://github.com/ABitMoreDepth)) - Sean Coffey ([@seanecoffey](https://github.com/seanecoffey)) - Stephan Kristyn ([@stevek-pro](https://github.com/stevek-pro)) - Theodore Chu ([@TheodoreChu](https://github.com/TheodoreChu)) @@ -178,6 +186,9 @@ Support this project by becoming a sponsor. Your name will show up in the Contri - rburckner ([@rburckner](https://github.com/rburckner)) - scorpion ([@scorpion](https://github.com/scorpion)) - valantien ([@valantien](https://github.com/valantien)) + +
+

OpenCollective Sponsors

@@ -313,7 +324,10 @@ Support this project by becoming a sponsor. Your logo will show up in the Contri Thank you to all our patrons! 🙏 [[Become a patron](https://www.patreon.com/requarks)] - +
+
+ + - Al Romano - Alex Balabanov - Alex Zen @@ -330,6 +344,10 @@ Thank you to all our patrons! 🙏 [[Become a patron](https://www.patreon.com/re - hong - Hope - Ian + + + + - Iskander Callos - Josh Stewart - Justin Dunsworth @@ -346,7 +364,9 @@ Thank you to all our patrons! 🙏 [[Become a patron](https://www.patreon.com/re - Stepan Sokolovskyi - Zach Maynard - 张白驹 - + +
+

OpenCollective Backers

diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index 8f4fdb75..00000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,158 +0,0 @@ -name: 2.6.$(Rev:r) - -trigger: -- dev -- latest - -stages: -- stage: build - displayName: Build stage - jobs: - - # ------------------------------- - # BUILD - LINUX - # ------------------------------- - - - job: buildLinux - displayName: Linux Build - timeoutInMinutes: 60 - cancelTimeoutInMinutes: 1 - pool: - name: Azure Pipelines - vmImage: ubuntu-latest - steps: - - task: CmdLine@2 - displayName: Disable dev flag - inputs: - script: | - sudo apt-get install jq -y - mv package.json pkg-temp.json - jq -r '.dev |= false' pkg-temp.json > package.json - rm pkg-temp.json - workingDirectory: '$(Build.SourcesDirectory)' - - - task: CmdLine@2 - displayName: Set Package Version - inputs: - script: | - mv package.json pkg-temp.json - jq -r '.version |= "$(Build.BuildNumber)"' pkg-temp.json > package.json - rm pkg-temp.json - cat package.json - workingDirectory: '$(Build.SourcesDirectory)' - - - task: Docker@2 - displayName: Build Docker image - inputs: - containerRegistry: Docker Hub - repository: requarks/wiki - Dockerfile: dev/build/Dockerfile - buildContext: '$(System.DefaultWorkingDirectory)' - tags: | - canary - canary-$(Build.BuildNumber) - addPipelineData: false - - - task: CmdLine@2 - displayName: Extract compiled files - inputs: - script: | - docker create --name wiki requarks/wiki:canary - docker cp wiki:/wiki $(Build.StagingDirectory) - docker rm wiki - rm $(Build.StagingDirectory)/wiki/config.yml - cp $(System.DefaultWorkingDirectory)/config.sample.yml $(Build.StagingDirectory)/wiki/config.sample.yml - find $(Build.StagingDirectory)/wiki/ -printf "%P\n" | tar -czf wiki-js.tar.gz --no-recursion -C $(Build.StagingDirectory)/wiki/ -T - - workingDirectory: '$(Build.SourcesDirectory)' - - - task: PublishBuildArtifacts@1 - displayName: Publish Build Artifacts - inputs: - PathtoPublish: 'wiki-js.tar.gz' - ArtifactName: 'drop' - - # ------------------------------- - # TESTS - CYPRESS E2E TESTS - # ------------------------------- - - - job: testCypress - displayName: Cypress E2E Tests - dependsOn: buildLinux - strategy: - maxParallel: 5 - matrix: - MariaDB: - MATRIXENV: mariadb - MySQL: - MATRIXENV: mysql - MSSQLServer: - MATRIXENV: mssql - PostgreSQL: - MATRIXENV: postgres - SQLite: - MATRIXENV: sqlite - timeoutInMinutes: 30 - cancelTimeoutInMinutes: 1 - pool: - name: Azure Pipelines - vmImage: ubuntu-latest - steps: - - task: Bash@3 - displayName: Setup Environment - inputs: - targetType: filePath - filePath: './dev/cypress/ci-setup.sh' - workingDirectory: '$(Build.SourcesDirectory)' - - - script: | - docker run --name cypress --ipc=host --shm-size 1G -v $BUILD_SOURCESDIRECTORY:/e2e -w /e2e cypress/included:4.9.0 --record --key "$(CYPRESS_KEY)" --headless --group "$MATRIXENV" --ci-build-id "$BUILD_BUILDNUMBER" --config baseUrl=http://172.17.0.1:3000 - displayName: 'Run Tests' - - # ------------------------------- - # BUILD - WINDOWS - # ------------------------------- - - - job: buildWindows - displayName: Windows Build - dependsOn: buildLinux - pool: - name: Azure Pipelines - vmImage: windows-latest - timeoutInMinutes: 30 - cancelTimeoutInMinutes: 1 - steps: - - task: NodeTool@0 - displayName: 'Use Node 14.x' - inputs: - versionSpec: 14.x - - - task: 'geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3' - displayName: 'Use Yarn 1.x' - - - task: DownloadBuildArtifacts@0 - displayName: 'Download Build Artifacts' - inputs: - artifactName: drop - - - script: | - mkdir -p $(Build.SourcesDirectory)\win - tar -xzf $(System.ArtifactsDirectory)\drop\wiki-js.tar.gz -C $(Build.SourcesDirectory)\win --exclude=node_modules - displayName: 'Extract build' - - script: 'yarn --production --frozen-lockfile --non-interactive' - workingDirectory: win - displayName: 'Install dependencies' - - - task: ArchiveFiles@2 - displayName: 'Archive app' - inputs: - rootFolderOrFile: '$(System.DefaultWorkingDirectory)\win' - includeRootFolder: false - archiveType: tar - archiveFile: 'wiki-js-windows.tar.gz' - - - task: PublishBuildArtifacts@1 - displayName: Publish Build Artifacts - inputs: - PathtoPublish: 'wiki-js-windows.tar.gz' - ArtifactName: 'drop-win' - diff --git a/client/components/editor/editor-markdown.vue b/client/components/editor/editor-markdown.vue index e334f07b..6134524d 100644 --- a/client/components/editor/editor-markdown.vue +++ b/client/components/editor/editor-markdown.vue @@ -290,12 +290,12 @@ const md = new MarkdownIt({ }) .use(underline) .use(mdEmoji) - .use(mdTaskLists, {label: false, labelAfter: false}) + .use(mdTaskLists, { label: false, labelAfter: false }) .use(mdExpandTabs) .use(mdAbbr) .use(mdSup) .use(mdSub) - .use(mdMultiTable, {multiline: true, rowspan: true, headerless: true}) + .use(mdMultiTable, { multiline: true, rowspan: true, headerless: true }) .use(mdMark) .use(mdFootnote) .use(mdImsize) diff --git a/client/components/welcome.vue b/client/components/welcome.vue index 815aa4bf..3e4f4af3 100644 --- a/client/components/welcome.vue +++ b/client/components/welcome.vue @@ -5,9 +5,14 @@ img.animated.fadeIn(src='/_assets/svg/logo-wikijs.svg', alt='Wiki.js') .headline.animated.fadeInUp {{ $t('welcome.title') }} .subtitle-1.mt-3.animated.fadeInUp.wait-p1s {{ $t('welcome.subtitle') }} - v-btn.mt-5.animated.fadeInUp.wait-p2s(color='primary', :href='`/e/` + locale + `/home`', x-large) - v-icon(left) mdi-plus - span {{ $t('welcome.createhome') }} + div + v-btn.mt-5.mx-3.animated.fadeInUp.wait-p2s(color='primary', :href='`/e/` + locale + `/home`', x-large) + v-icon(left) mdi-plus + span {{ $t('welcome.createhome') }} + v-btn.mt-5.mx-3.animated.fadeInUp.wait-p3s(color='primary', href='/a', x-large) + v-icon(left) mdi-view-dashboard + span {{ $t('welcome.goadmin') }} +