diff --git a/.github/workflows/full_build.yml b/.github/workflows/full_build.yml deleted file mode 100644 index fab101da..00000000 --- a/.github/workflows/full_build.yml +++ /dev/null @@ -1,253 +0,0 @@ -name: Houdini build -on: [push, pull_request] -jobs: - install_gems: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - node: [14.6.0] - ruby: [2.6.6] - steps: - - uses: actions/checkout@v2 - - name: Set up Ruby - # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby, - # change this to (see https://github.com/ruby/setup-ruby#versioning): - # uses: ruby/setup-ruby@v1 - uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0 - - uses: actions/cache@v1 - name: Use Gem cache - with: - path: vendor/bundle - key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}- - - name: bundle install - run: | - bundle config deployment true - bundle config path vendor/bundle - bundle install --jobs 4 - install_yarn: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - node: [14.6.0] - ruby: [2.6.6] - steps: - - uses: actions/checkout@v2 - - name: Setup Node.js environment - uses: actions/setup-node@v1.4.2 - - uses: actions/cache@v1 - name: Use Node package cache - with: - path: node_modules - key: bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('**/yarn.lock', '**/package.json') }} - restore-keys: | - bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}- - - name: install node packages - run: yarn install --frozen-lockfile - - notice_ruby: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - node: [14.6.0] - ruby: [2.6.6] - needs: ['install_gems'] - steps: - - uses: actions/checkout@v2 - - name: Set up Ruby - # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby, - # change this to (see https://github.com/ruby/setup-ruby#versioning): - # uses: ruby/setup-ruby@v1 - uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0 - - uses: actions/cache@v1 - name: Use Gem cache - with: - path: vendor/bundle - key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}- - - name: bundle setup - run: | - bundle config deployment true - bundle config path vendor/bundle - - name: run notice:ruby:verify - run: | - bin/rails notice:ruby:verify - notice_js: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - node: [14.6.0] - ruby: [2.6.6] - needs: ['install_gems', 'install_yarn'] - steps: - - uses: actions/checkout@v2 - - name: Set up Ruby - # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby, - # change this to (see https://github.com/ruby/setup-ruby#versioning): - # uses: ruby/setup-ruby@v1 - uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0 - - name: Setup Node.js environment - uses: actions/setup-node@v1.4.2 - - uses: actions/cache@v1 - name: Use Node package cache - with: - path: node_modules - key: bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('**/yarn.lock', '**/package.json') }} - restore-keys: | - bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}- - - uses: actions/cache@v1 - name: Use Gem cache - with: - path: vendor/bundle - key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}- - - name: bundle setup - run: | - bundle config deployment true - bundle config path vendor/bundle - - name: run notice:js:verify - run: | - bin/rails notice:js:verify - jest: - needs: ['install_yarn'] - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - node: [14.6.0] - steps: - - uses: actions/checkout@v2 - - name: Setup Node.js environment - uses: actions/setup-node@v1.4.2 - - uses: actions/cache@v1 - name: Use Node package cache - with: - path: node_modules - key: bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('**/yarn.lock', '**/package.json') }} - restore-keys: | - bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}- - - name: run jest - run: yarn jest - lint: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - node: [14.6.0] - needs: ['install_yarn'] - steps: - - uses: actions/checkout@v2 - - name: Setup Node.js environment - uses: actions/setup-node@v1.4.2 - - uses: actions/cache@v1 - name: Use Node package cache - with: - path: node_modules - key: bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('**/yarn.lock', '**/package.json') }} - restore-keys: | - bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}- - - name: run yarn eslint - run: | - yarn eslint - - name: run yarn markdownlint - run: | - yarn markdownlint - main_build: - needs: ['install_yarn', 'install_gems'] - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - node: [14.6.0] - ruby: [2.6.6] - steps: - - uses: actions/checkout@v2 - - name: Setup PostgreSQL with PostgreSQL extensions and unprivileged user - uses: Daniel-Marynicz/postgresql-action@0.1.0 - with: - postgres_image_tag: 12-alpine - postgres_user: houdini_user - postgres_password: password - - name: Set up Ruby - # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby, - # change this to (see https://github.com/ruby/setup-ruby#versioning): - # uses: ruby/setup-ruby@v1 - uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0 - - name: Setup Node.js environment - uses: actions/setup-node@v1.4.2 - - uses: actions/cache@v1 - name: Use Gem cache - with: - path: vendor/bundle - key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}- - - name: bundle setup - run: | - bundle config deployment true - bundle config path vendor/bundle - - uses: actions/cache@v1 - name: Use Node package cache - with: - path: node_modules - key: bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('**/yarn.lock', '**/package.json') }} - restore-keys: | - bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}- - - name: run setup - run: bin/setup ci - - name: run spec - run: bin/rails spec - webpack: - needs: ['install_yarn', 'install_gems'] - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - node: [14.6.0] - ruby: [2.6.6] - steps: - - uses: actions/checkout@v2 - - name: Setup PostgreSQL with PostgreSQL extensions and unprivileged user - uses: Daniel-Marynicz/postgresql-action@0.1.0 - with: - postgres_image_tag: 11-alpine - postgres_user: houdini_user - postgres_password: password - - name: Set up Ruby - # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby, - # change this to (see https://github.com/ruby/setup-ruby#versioning): - # uses: ruby/setup-ruby@v1 - uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0 - - name: Setup Node.js environment - uses: actions/setup-node@v1.4.2 - - uses: actions/cache@v1 - name: Use Gem cache - with: - path: vendor/bundle - key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}- - - name: bundle setup - run: | - bundle config deployment true - bundle config path vendor/bundle - - uses: actions/cache@v1 - name: Use Node package cache - with: - path: node_modules - key: bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('**/yarn.lock', '**/package.json') }} - restore-keys: | - bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}- - - name: run setup - run: bin/setup ci - - name: Webpack compile everything - run: bin/webpack - - name: Verify storybook compiles - run: npm run build-storybook \ No newline at end of file diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml new file mode 100644 index 00000000..17ec57b3 --- /dev/null +++ b/.github/workflows/js.yml @@ -0,0 +1,102 @@ +# License: LGPL-3.0-or-later +name: Javascript build and test +on: + push: + paths-ignore: + - "**.md" + pull_request: + paths-ignore: + - "**.md" +jobs: + lint: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + node: [14.6.0] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1.4.2 + with: + node-version: ${{ matrix.node }} + - uses: actions/cache@v1 + name: Use Node package cache + with: + path: node_modules + key: bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('**/yarn.lock', '**/package.json') }} + restore-keys: | + bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}- + - run: yarn install --frozen-lockfile + - name: run eslint + run: yarn eslint + jest: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + node: [14.6.0] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1.4.2 + with: + node-version: ${{ matrix.node }} + - uses: actions/cache@v1 + name: Use Node package cache + with: + path: node_modules + key: bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('**/yarn.lock', '**/package.json') }} + restore-keys: | + bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}- + - run: yarn install --frozen-lockfile + - name: run jest + run: yarn jest + webpack: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + node: [14.6.0] + ruby: [2.6.6] + steps: + - uses: actions/checkout@v2 + - name: Setup PostgreSQL with PostgreSQL extensions and unprivileged user + uses: Daniel-Marynicz/postgresql-action@0.1.0 + with: + postgres_image_tag: 11-alpine + postgres_user: houdini_user + postgres_password: password + - uses: actions/setup-node@v1.4.2 + with: + node-version: ${{ matrix.node }} + - uses: actions/cache@v1 + name: Use Node package cache + with: + path: node_modules + key: bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('**/yarn.lock', '**/package.json') }} + restore-keys: | + bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}- + - run: yarn install --frozen-lockfile + - uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0 + with: + ruby-version: ${{ matrix.ruby }} + - uses: actions/cache@v1 + name: Use Gem cache + with: + path: vendor/bundle + key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }} + restore-keys: | + bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}- + - run: | + bundle config deployment true + bundle config path vendor/bundle + bundle install --jobs 4 + - name: run setup + run: bin/setup ci + - name: Webpack compile everything + run: bin/webpack + - name: Verify storybook compiles + run: yarn build-storybook + + + + \ No newline at end of file diff --git a/.github/workflows/js_placeholder.yml b/.github/workflows/js_placeholder.yml new file mode 100644 index 00000000..04ed03bd --- /dev/null +++ b/.github/workflows/js_placeholder.yml @@ -0,0 +1,35 @@ +# License: LGPL-3.0-or-later +# These jobs must pass even on builds where it shouldn't run +# We address this by making a placeholder action +name: Placeholder for Javascript build and test +on: [push, pull_request] +jobs: + lint: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + node: [14.6.0] + steps: + - run: 'echo "Placeholder for lint"' + jest: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + node: [14.6.0] + steps: + - run: 'echo "Placeholder for jest"' + webpack: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + node: [14.6.0] + ruby: [2.6.6] + steps: + - run: 'echo "Placeholder for webpack"' + + + + \ No newline at end of file diff --git a/.github/workflows/markdown.yml b/.github/workflows/markdown.yml new file mode 100644 index 00000000..55e16881 --- /dev/null +++ b/.github/workflows/markdown.yml @@ -0,0 +1,18 @@ +# License: LGPL-3.0-or-later +name: Markdown lint +on: + push: + paths: ["**.md"] + pull_request: + paths: ["**.md"] +jobs: + markdownlint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Setup Node.js environment + uses: actions/setup-node@v1.4.2 + with: + node-version: 14.6.0 + - name: lint Markdown + run: yarn markdownlint \ No newline at end of file diff --git a/.github/workflows/notice_js.yml b/.github/workflows/notice_js.yml new file mode 100644 index 00000000..76264831 --- /dev/null +++ b/.github/workflows/notice_js.yml @@ -0,0 +1,33 @@ +# License: LGPL-3.0-or-later +name: NOTICE-js verification +on: + push: + paths: + - yarn.lock + - package.json + - included.json + - NOTICE-js + pull_request: + paths: + - yarn.lock + - package.json + - included.json + - NOTICE-js +jobs: + notice_js: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1.4.2 + with: + node-version: 14.6.0 + - uses: actions/cache@v1 + name: Use Node package cache + with: + path: node_modules + key: bundle-use-node-js-ubuntu-latest-14.6.0-${{ hashFiles('**/yarn.lock', '**/package.json') }} + restore-keys: | + bundle-use-node-js-ubuntu-latest-14.6.0- + - run: yarn install --frozen-lockfile + - name: Verify NOTICE-js + run: yarn notice:js \ No newline at end of file diff --git a/.github/workflows/notice_js_placeholder.yml b/.github/workflows/notice_js_placeholder.yml new file mode 100644 index 00000000..faecabd0 --- /dev/null +++ b/.github/workflows/notice_js_placeholder.yml @@ -0,0 +1,10 @@ +# License: LGPL-3.0-or-later +# notice_js must pass even on builds where it shouldn't run +# We address this by making a placeholder action +name: Placeholder for NOTICE-js verification +on: ['push', 'pull_request'] +jobs: + notice_js: + runs-on: ubuntu-latest + steps: + - run: 'echo "Placeholder for notice_js"' \ No newline at end of file diff --git a/.github/workflows/notice_ruby.yml b/.github/workflows/notice_ruby.yml new file mode 100644 index 00000000..ceea679f --- /dev/null +++ b/.github/workflows/notice_ruby.yml @@ -0,0 +1,35 @@ +# License: LGPL-3.0-or-later +name: NOTICE-ruby verification +on: + push: + paths: + - Gemfile + - Gemfile.lock + - NOTICE-ruby + pull_request: + paths: + - Gemfile + - Gemfile.lock + - NOTICE-ruby +jobs: + notice_ruby: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0 + with: + ruby-version: 2.6.6 + - uses: actions/cache@v1 + name: Use Gem cache + with: + path: vendor/bundle + key: bundle-use-ruby-ubuntu-latest-2.6.6-${{ hashFiles('**/Gemfile.lock') }} + restore-keys: | + bundle-use-ruby-ubuntu-latest-2.6.6- + - run: | + bundle config deployment true + bundle config path vendor/bundle + bundle install --jobs 4 + - name: run notice:ruby:verify + run: | + bin/rails notice:ruby:verify diff --git a/.github/workflows/notice_ruby_placeholder.yml b/.github/workflows/notice_ruby_placeholder.yml new file mode 100644 index 00000000..b9659e1a --- /dev/null +++ b/.github/workflows/notice_ruby_placeholder.yml @@ -0,0 +1,9 @@ +# notice_ruby must pass even on builds where it shouldn't run +# We address this by making a placeholder action +name: Placeholder for NOTICE-ruby verification +on: ['push', 'pull_request'] +jobs: + notice_ruby: + runs-on: ubuntu-latest + steps: + - run: 'echo "Placeholder for notice_ruby"' diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml new file mode 100644 index 00000000..f7adc48b --- /dev/null +++ b/.github/workflows/ruby.yml @@ -0,0 +1,66 @@ +# License: LGPL-3.0-or-later +name: Ruby test and build +on: + push: + paths-ignore: + - "**.[jt]sx?" + - "**.es6" + - "**.md" + - "NOTICE-js" + - "NOTICE-ruby" + - "package.json" + - "yarn.lock" + pull_request: + paths-ignore: + - "**.[jt]sx?" + - "**.es6" + - "**.md" + - "**.md" + - "NOTICE-js" + - "NOTICE-ruby" + - "package.json" + - "yarn.lock" +jobs: + main_build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + node: [14.6.0] + ruby: [2.6.6] + steps: + - uses: actions/checkout@v2 + - name: Setup PostgreSQL with PostgreSQL extensions and unprivileged user + uses: Daniel-Marynicz/postgresql-action@0.1.0 + with: + postgres_image_tag: 11-alpine + postgres_user: houdini_user + postgres_password: password + - uses: actions/setup-node@v1.4.2 + with: + node-version: ${{ matrix.node }} + - uses: actions/cache@v1 + name: Use Node package cache + with: + path: node_modules + key: bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('**/yarn.lock', '**/package.json') }} + restore-keys: | + bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}- + - run: yarn install --frozen-lockfile + - uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0 + with: + ruby-version: ${{ matrix.ruby }} + - uses: actions/cache@v1 + name: Use Gem cache + with: + path: vendor/bundle + key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }} + restore-keys: | + bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}- + - run: | + bundle config deployment true + bundle config path vendor/bundle + bundle install --jobs 4 + - run: bin/setup ci + - name: run spec + run: bin/rails spec \ No newline at end of file diff --git a/.github/workflows/ruby_placeholder.yml b/.github/workflows/ruby_placeholder.yml new file mode 100644 index 00000000..1e95a82f --- /dev/null +++ b/.github/workflows/ruby_placeholder.yml @@ -0,0 +1,15 @@ +# License: LGPL-3.0-or-later +# main_build must pass even on builds where it shouldn't run +# We address this by making a placeholder action +name: Placeholder for Ruby test and build +on: [push, pull_request] +jobs: + main_build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + node: [14.6.0] + ruby: [2.6.6] + steps: + - run: 'echo "Placeholder for main_build"' \ No newline at end of file