diff --git a/.github/workflows/plugin-linting.yml b/.github/workflows/plugin-linting.yml index 38a2fbf..6161090 100644 --- a/.github/workflows/plugin-linting.yml +++ b/.github/workflows/plugin-linting.yml @@ -6,15 +6,19 @@ on: - main pull_request: +concurrency: + group: plugin-linting-${{ format('{0}-{1}', github.head_ref || github.run_number, github.job) }} + cancel-in-progress: true + jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Node.js - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: 16 cache: yarn @@ -46,7 +50,7 @@ jobs: - name: Ember template lint if: ${{ always() }} - run: yarn ember-template-lint assets/javascripts + run: yarn ember-template-lint --no-error-on-unmatched-pattern assets/javascripts - name: Rubocop if: ${{ always() }} diff --git a/.github/workflows/plugin-tests.yml b/.github/workflows/plugin-tests.yml index 5c16009..5832d38 100644 --- a/.github/workflows/plugin-tests.yml +++ b/.github/workflows/plugin-tests.yml @@ -6,12 +6,16 @@ on: - main pull_request: +concurrency: + group: plugin-tests-${{ format('{0}-{1}', github.head_ref || github.run_number, github.job) }} + cancel-in-progress: true + jobs: build: name: ${{ matrix.build_type }} runs-on: ubuntu-latest - container: discourse/discourse_test:slim${{ matrix.build_type == 'frontend' && '-browsers' || '' }} - timeout-minutes: 60 + container: discourse/discourse_test:slim${{ startsWith(matrix.build_type, 'frontend') && '-browsers' || '' }} + timeout-minutes: 30 env: DISCOURSE_HOSTNAME: www.example.com @@ -24,16 +28,16 @@ jobs: fail-fast: false matrix: - build_type: ["backend", "frontend"] + build_type: ["backend", "frontend-legacy", "frontend"] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: repository: discourse/discourse fetch-depth: 1 - name: Install plugin - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: path: plugins/${{ github.event.repository.name }} fetch-depth: 1 @@ -46,7 +50,7 @@ jobs: - name: Start redis run: | redis-server /etc/redis/redis.conf & - + - name: Start Postgres run: | chown -R postgres /var/run/postgresql @@ -54,7 +58,7 @@ jobs: sudo -u postgres psql -c "CREATE ROLE $PGUSER LOGIN SUPERUSER PASSWORD '$PGPASSWORD';" - name: Bundler cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: vendor/bundle key: ${{ runner.os }}-gem-${{ hashFiles('**/Gemfile.lock') }} @@ -63,6 +67,7 @@ jobs: - name: Setup gems run: | + gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock) bundle config --local path vendor/bundle bundle config --local deployment true bundle config --local without development @@ -78,7 +83,7 @@ jobs: run: echo "::set-output name=dir::$(yarn cache dir)" - name: Yarn cache - uses: actions/cache@v2 + uses: actions/cache@v3 id: yarn-cache with: path: ${{ steps.yarn-cache-dir.outputs.dir }} @@ -90,16 +95,13 @@ jobs: run: yarn install - name: Fetch app state cache - uses: actions/cache@v2 + uses: actions/cache@v3 id: app-cache with: path: tmp/app-cache - key: >- # postgres version, hash of migrations, "parallel?" - ${{ runner.os }}- + key: >- ${{ hashFiles('.github/workflows/tests.yml') }}- - ${{ matrix.postgres }}- ${{ hashFiles('db/**/*', 'plugins/**/db/**/*') }}- - ${{ env.USES_PARALLEL_DATABASES }} - name: Restore database from cache if: steps.app-cache.outputs.cache-hit == 'true' @@ -144,6 +146,11 @@ jobs: fi - name: Plugin QUnit + if: matrix.build_type == 'frontend-legacy' && steps.check_qunit.outputs.files_exist == 'true' + run: QUNIT_EMBER_CLI=0 bundle exec rake plugin:qunit['${{ github.event.repository.name }}','1200000'] + timeout-minutes: 10 + + - name: Plugin QUnit (Ember CLI) if: matrix.build_type == 'frontend' && steps.check_qunit.outputs.files_exist == 'true' - run: bundle exec rake plugin:qunit['${{ github.event.repository.name }}','1200000'] - timeout-minutes: 30 + run: QUNIT_EMBER_CLI=1 bundle exec rake plugin:qunit['${{ github.event.repository.name }}','1200000'] + timeout-minutes: 10