Welcome to mirror list, hosted at ThFree Co, Russian Federation.

upgrade.yml « workflows « .github - github.com/nextcloud/bookmarks.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 96781b8de70664ac0ca5bbd16a1de8c64606e659 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
name: Upgrade

on:
  pull_request:
  push:
    branches:
      - master
      - stable*

env:
  APP_NAME: bookmarks

permissions:
  contents: read

jobs:
  php:
    runs-on: ubuntu-latest

    strategy:
      # do not stop on another job's failure
      fail-fast: false
      matrix:
        php-versions: ['7.4']
        databases: ['sqlite', 'mysql', 'pgsql']
        server-versions: ['stable22', 'stable23', 'stable24']
        prev-version: ['stable', 'stable10', 'stable4']
        exclude:
          - prev-version: stable4
            server-versions: stable24

    name: Update from ${{ matrix.prev-version }} on ${{ matrix.databases }}-${{ matrix.server-versions }}

    env:
      MYSQL_PORT: 4444
      PGSQL_PORT: 4445

    services:
      mysql:
        image: mariadb:10.5
        ports:
          - 4444:3306/tcp
        env:
          MYSQL_ROOT_PASSWORD: rootpassword
        options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
      postgres:
        image: postgres
        ports:
          - 4445:5432/tcp
        env:
          POSTGRES_USER: root
          POSTGRES_PASSWORD: rootpassword
          POSTGRES_DB: nextcloud
        options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5

    steps:
      - name: Checkout server
        uses: actions/checkout@v2
        with:
          repository: nextcloud/server
          ref: ${{ matrix.server-versions }}

      - name: Checkout submodules
        shell: bash
        run: |
          auth_header="$(git config --local --get http.https://github.com/.extraheader)"
          git submodule sync --recursive
          git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1

      - name: Set up php ${{ matrix.php-versions }}
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-versions }}
          tools: phpunit
          extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_mysql, pdo_sqlite, pgsql, pdo_pgsql, gd, zip

      - name: Checkout app
        uses: actions/checkout@v2
        with:
          repository: nextcloud/bookmarks
          ref: ${{ matrix.prev-version }}
          path: apps/${{ env.APP_NAME }}

      - name: Install app
        working-directory: apps/${{ env.APP_NAME }}
        run: composer install --ignore-platform-req=php --no-dev

      - name: Set up Nextcloud and install app
        if: ${{ matrix.databases != 'pgsql'}}
        run: |
          sleep 25
          mkdir data
          ./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$MYSQL_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
          ./occ app:enable -vvv -f ${{ env.APP_NAME }}
          php -S localhost:8080 &

      - name: Set up Nextcloud and install app
        if: ${{ matrix.databases == 'pgsql'}}
        run: |
          sleep 25
          mkdir data
          ./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$PGSQL_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
          ./occ app:enable -vvv -f ${{ env.APP_NAME }}
          php -S localhost:8080 &

      - name: Import bookmarks
        run: |
          cp ./apps/bookmarks/tests/res/import.file ./apps/bookmarks/tests/res/import.html
          curl -u 'admin:password' -vvv --fail -F 'bm_import=@./apps/bookmarks/tests/res/import.html' http://localhost:8080/index.php/apps/bookmarks/public/rest/v2/folder/-1/import

      - name: Export bookmarks
        run: |
          curl -u 'admin:password' -vvv --fail "http://localhost:8080/index.php/apps/bookmarks/public/rest/v2/bookmark/export" > export.html

      - name: Remove current stable bookmarks
        run: |
          ./occ app:disable ${{ env.APP_NAME }}

      - name: Checkout app
        uses: actions/checkout@v2
        with:
          path: apps/${{ env.APP_NAME }}

      - name: Install app
        working-directory: apps/${{ env.APP_NAME }}
        run: composer install --ignore-platform-req=php

      - name: Run update
        run: |
          ./occ app:enable -vvv ${{ env.APP_NAME }}

      - name: Export bookmarks
        run: |
          curl -u 'admin:password' -vvv --fail "http://localhost:8080/index.php/apps/bookmarks/public/rest/v2/bookmark/export" > export2.html

      - name: Compare exports
        run: |
          diff export.html export2.html