Skip to content

Fix DN number validation on submit, closes #5 #1796

Fix DN number validation on submit, closes #5

Fix DN number validation on submit, closes #5 #1796

Workflow file for this run

name: Continuous Integration
on:
push:
branches: ['main', 'devpf', 'masterpf', 'issue/*', 'feature/*', 'hotfix/*']
pull_request:
branches: ['main', 'devpf', 'masterpf', 'issue/*', 'feature/*']
merge_group:
branches: ['main', 'devpf']
jobs:
linters:
name: Linters
runs-on: ubuntu-latest
services:
postgres:
image: postgres:14
env:
POSTGRES_USER: tps_test
POSTGRES_DB: tps_test
POSTGRES_PASSWORD: tps_test
ports: [ "5432:5432" ]
steps:
- uses: actions/checkout@v3
- name: Setup the app code and dependancies
uses: ./.github/actions/ci-setup-rails
- name: Run linters
run: |
bundle exec rake lint
bundle exec rake zeitwerk:check
js_tests:
name: JavaScript tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
cache: 'yarn'
- name: Install Node modules
run: |
node --version
yarn install --frozen-lockfile
shell: bash
- name: Run tests
run: |
yarn test
unit_tests:
name: Unit tests
runs-on: ubuntu-latest
services:
postgres:
image: postgres:14
env:
POSTGRES_USER: tps_test
POSTGRES_DB: tps_test
POSTGRES_PASSWORD: tps_test
ports: ["5432:5432"]
strategy:
matrix:
instances: [0, 1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v3
- name: Setup the app runtime and dependencies
uses: ./.github/actions/ci-setup-rails
- name: Pre-compile assets
uses: ./.github/actions/ci-setup-assets
- name: Setup split tests
uses: ./.github/actions/ci-setup-split-tests
with:
results_path: tmp/*.junit.xml
- name: Run tests
run: |
SPEC_FILES=$(./split_tests -glob='spec/**/*_spec.rb' -exclude-glob='spec/system/**' -split-index=${{ strategy.job-index }} -split-total=${{ strategy.job-total }} -junit -junit-path=tmp/*.junit.xml)
echo "Running tests for bin/rspec $SPEC_FILES"
bin/rspec $SPEC_FILES --format progress --format RspecJunitFormatter --out tmp/rspec_${{ github.job }}_${{ strategy.job-index }}.junit.xml
- name: Upload screenshots if previous test failed
if: failure()
uses: actions/upload-artifact@v2
with:
name: screenshots
path: tmp/screenshots
- name: Upload test results for this instance
uses: actions/upload-artifact@v3
with:
name: test-reports
path: tmp/rspec_${{ github.job }}_${{ strategy.job-index }}.junit.xml
system_tests:
name: System tests
runs-on: ubuntu-latest
services:
postgres:
image: postgres:14
env:
POSTGRES_USER: tps_test
POSTGRES_DB: tps_test
POSTGRES_PASSWORD: tps_test
ports: ["5432:5432"]
strategy:
matrix:
instances: [0, 1]
steps:
- uses: actions/checkout@v3
- name: Setup the app runtime and dependencies
uses: ./.github/actions/ci-setup-rails
- name: Pre-compile assets
uses: ./.github/actions/ci-setup-assets
- name: Setup split tests
uses: ./.github/actions/ci-setup-split-tests
with:
results_path: tmp/*.junit.xml
- name: Run tests
env:
FC_PARTICULIER_ID: MyFCEnvId
GOOGLE_CLIENT_ID: MyGEnvId
run: |
SPEC_FILES=$(./split_tests -glob='spec/system/**/*_spec.rb' -split-index=${{ strategy.job-index }} -split-total=${{ strategy.job-total }} -junit -junit-path=tmp/*.junit.xml)
echo "Running tests for bin/rspec $SPEC_FILES"
RAILS_ENV=test bin/rspec $SPEC_FILES --format progress --format RspecJunitFormatter --out tmp/rspec_${{ github.job }}_${{ strategy.job-index }}.junit.xml
- name: Upload screenshots if previous tests failed
if: failure()
uses: actions/upload-artifact@v2
with:
name: screenshots-${{ strategy.job-index }}
path: tmp/screenshots
- name: Upload test results for this instance
uses: actions/upload-artifact@v3
with:
name: test-reports
path: tmp/rspec_${{ github.job }}_${{ strategy.job-index }}.junit.xml
save_test_reports:
name: Save test reports
needs: [unit_tests, system_tests]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Collect test results from all instances
uses: actions/download-artifact@v3
with:
name: test-reports
path: tmp
- name: Save test results and timing data, to better split future tests
uses: ./.github/actions/ci-save-split-tests
with:
results_path: tmp/*.junit.xml
docker:
runs-on: ubuntu-latest
needs: [system_tests, unit_tests, linters]
env:
repo: "govpf/mes-demarches"
steps:
- uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
# list of Docker images to use as base name for tags
images: ${{ env.repo }}
# generate Docker tags based on the following events/attributes
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
cache-from: type=registry,ref=${{env.repo}}:buildcache
cache-to: type=registry,ref=${{env.repo}}:buildcache,mode=max
- name: Update repo description
uses: peter-evans/dockerhub-description@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
repository: "${{ env.repo }}"