Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
e429100
ci: setup CI
Stef-Rousset Dec 16, 2024
cfc84fd
ci: add lint to CI
Stef-Rousset Dec 16, 2024
057cdec
fix: typo in ci file
Stef-Rousset Dec 16, 2024
1eb154f
fix: update CI to run tests
Stef-Rousset Dec 16, 2024
81e613c
fix: add working directory to CI
Stef-Rousset Dec 16, 2024
bbce57a
fix: update CI with test_command and missing working-directory
Stef-Rousset Dec 16, 2024
e6bd7a2
fix: delete parallel test from test_app file
Stef-Rousset Dec 16, 2024
1bc6289
fix: update working-directory
Stef-Rousset Dec 16, 2024
e8cfb5b
fix: try updating workflow
Stef-Rousset Dec 16, 2024
c568046
fix: another try to fix ci workflow
Stef-Rousset Dec 16, 2024
cd1ff65
fix: add bundle install in test_app file
Stef-Rousset Dec 16, 2024
481d29a
fix: lint in test_app file
Stef-Rousset Dec 16, 2024
50b9600
fix: update test_app ci file
Stef-Rousset Dec 16, 2024
8195fb9
fix: update ci to run all tests together
Stef-Rousset Dec 16, 2024
8bf08ec
fix: command in ci
Stef-Rousset Dec 17, 2024
e5072c3
fix: remove workin directory for rspec
Stef-Rousset Dec 17, 2024
9feaf03
fix: add command for test database
Stef-Rousset Dec 17, 2024
984214d
fix: update test_app file
Stef-Rousset Dec 17, 2024
45789d8
fix: update working directory
Stef-Rousset Dec 17, 2024
98128cd
fix: another update of test_app
Stef-Rousset Dec 17, 2024
e1ba884
fix: update in test_app and ci file
Stef-Rousset Dec 17, 2024
c092b6a
fix: updating again test_app and ci
Stef-Rousset Dec 17, 2024
fde3e21
fix: add create db and load schema in test_app
Stef-Rousset Dec 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions .github/workflows/build_app.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
on:
workflow_call:
inputs:
ruby_version:
description: 'Ruby Version'
default: "3.2.2"
type: string
required: false
node_version:
description: 'Node version'
default: '18.17.1'
required: false
type: string
jobs:
build_app:
name: Build app
runs-on: ubuntu-22.04
if: "!startsWith(github.head_ref, 'chore/l10n')"
timeout-minutes: 60
env:
DATABASE_USERNAME: postgres
DATABASE_PASSWORD: postgres
DATABASE_HOST: localhost
RUBYOPT: '-W:no-deprecated'
services:
postgres:
image: postgres:14
ports: ["5432:5432"]
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
POSTGRES_PASSWORD: postgres
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ inputs.ruby_version }}
bundler-cache: true
- uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node_version }}
cache: 'npm'
cache-dependency-path: ./package-lock.json
- uses: actions/cache@v4
id: app-cache
with:
path: ./spec/decidim_dummy_app/
key: app-${{ github.sha }}
restore-keys: app-${{ github.sha }}
- run: bundle exec rake test_app
name: Create test app
shell: "bash"
- run: mkdir -p ./spec/decidim_dummy_app/tmp/screenshots
name: Create the screenshots folder
shell: "bash"
- run: RAILS_ENV=test bundle exec rails shakapacker:compile
name: Precompile assets
working-directory: ./spec/decidim_dummy_app/
shell: "bash"
env:
NODE_ENV: "test"
81 changes: 27 additions & 54 deletions .github/workflows/ci_additional_authorization_handler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,70 +8,43 @@ on:
pull_request:
branches-ignore:
- "chore/l10n*"
paths:
- "*"
- ".github/**"

env:
CI: "true"
RUBY_VERSION: 3.2.2
NODE_VERSION: 18.17.1

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true

jobs:
main:
name: Tests
build_app:
uses: ./.github/workflows/build_app.yml
secrets: inherit
name: Build test application

lint:
name: Lint code
runs-on: ubuntu-latest
timeout-minutes: 30
services:
postgres:
image: postgres:14
ports: ["5432:5432"]
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
POSTGRES_PASSWORD: postgres
env:
DATABASE_USERNAME: postgres
DATABASE_PASSWORD: postgres
DATABASE_HOST: localhost
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Get npm cache directory path
id: npm-cache-dir-path
run: echo "dir=$(npm get cache)-additional_authorization_handler" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
id: npm-cache
with:
path: ${{ steps.npm-cache-dir-path.outputs.dir }}
key: npm-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
npm-
- run: bundle exec rake test_app
name: Create test app
- run: mkdir -p ./spec/decidim_dummy_app/tmp/screenshots
name: Create the screenshots folder
- uses: nanasess/setup-chromedriver@v2
- run: RAILS_ENV=test bundle exec rails shakapacker:compile
name: Precompile assets
working-directory: ./spec/decidim_dummy_app/
- run: bundle exec rspec
name: RSpec
- uses: codecov/codecov-action@v4
- uses: actions/upload-artifact@v4
if: always()
- uses: rokroskar/workflow-run-cleanup-action@v0.3.0
if: "github.ref != 'refs/heads/develop'"
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- uses: OpenSourcePolitics/lint-action@master
with:
name: screenshots
path: ./spec/decidim_dummy_app/tmp/screenshots
if-no-files-found: ignore
ruby_version: ${{ env.RUBY_VERSION }}
node_version: ${{ env.NODE_VERSION }}

tests:
name: Tests
needs: build_app
uses: ./.github/workflows/test_app.yml
with:
test_command: "bundle exec rspec --pattern './spec/**/*_spec.rb'"
secrets: inherit
102 changes: 102 additions & 0 deletions .github/workflows/test_app.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
on:
workflow_call:
inputs:
ruby_version:
description: 'Ruby Version'
default: "3.2.2"
required: false
type: string
test_command:
description: 'The testing command to be ran'
required: true
type: string
chrome_version:
description: 'Chrome & Chromedriver version'
required: false
default: "126.0.6478.182"
type: string

jobs:
build_app:
name: Test
runs-on: ubuntu-latest
if: "!startsWith(github.head_ref, 'chore/l10n')"
timeout-minutes: 60
env:
DATABASE_USERNAME: postgres
DATABASE_PASSWORD: postgres
DATABASE_HOST: localhost
RUBYOPT: '-W:no-deprecated'
services:
validator:
image: ghcr.io/validator/validator:latest
ports: ["8888:8888"]
postgres:
image: postgres:14
ports: ["5432:5432"]
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
POSTGRES_PASSWORD: postgres
redis:
image: redis
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ inputs.ruby_version }}
- run: |
sudo apt update
sudo apt install libu2f-udev
wget --no-verbose -O /tmp/chrome.deb https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${{inputs.chrome_version}}-1_amd64.deb
sudo dpkg -i /tmp/chrome.deb
rm /tmp/chrome.deb
- uses: nanasess/setup-chromedriver@v2
with:
chromedriver-version: ${{inputs.chrome_version}}
name: Install Chrome version ${{inputs.chrome_version}}
- uses: actions/cache@v4
id: app-cache
with:
path: ./spec/decidim_dummy_app/
key: app-${{ github.sha }}
restore-keys: app-${{ github.sha }}
- run: |
bundle install
bundle exec rake db:create db:schema:load
name: Install gems and create db
shell: "bash"
working-directory: ./spec/decidim_dummy_app/
- run: |
sudo Xvfb -ac $DISPLAY -screen 0 1920x1084x24 > /dev/null 2>&1 & # optional
${{ inputs.test_command }}
name: RSpec
working-directory: ./
env:
VALIDATOR_HTML_URI: http://localhost:8888/
RUBY_VERSION: ${{ inputs.ruby_version }}
DECIDIM_MODULE: "decidim-module-additional_authorization_handler"
DISPLAY: ":99"
CI: "true"
SIMPLECOV: "true"
SHAKAPACKER_RUNTIME_COMPILE: "false"
NODE_ENV: "test"
- uses: codecov/codecov-action@v3
name: Upload coverage
- uses: actions/upload-artifact@v4
if: always()
with:
name: screenshots
path: ./spec/decidim_dummy_app/tmp/screenshots
if-no-files-found: ignore
overwrite: true
Loading