docs: précisions sur la dette technique des machines d'état #3820
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "CI" | |
on: | |
push: | |
jobs: | |
test: | |
if: ${{ !contains(github.event.head_commit.message, '[skip-ci]') }} | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres:14 | |
ports: | |
- "5432:5432" | |
env: | |
POSTGRES_DB: rails_test | |
POSTGRES_USER: rails | |
POSTGRES_PASSWORD: password | |
env: | |
RAILS_ENV: test | |
DATABASE_URL: "postgres://rails:password@localhost:5432/rails_test" | |
DISABLE_BOOTSNAP: "1" | |
steps: | |
- run: mkdir -p tmp/artifacts/capybara | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install libvips | |
run: sudo apt-get update && sudo apt-get install -y libvips | |
- name: Install Ruby and gems | |
uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- run: npm ci | |
- name: Set up database schema | |
run: bin/rails db:schema:load | |
- name: Run tests | |
run: bundle exec rspec | |
env: | |
RUBYOPT: -W0 # Disable Ruby warnings for libvips uninitialized constant cf https://github.com/customink/ruby-vips-lambda/issues/15 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: artifacts-capybara | |
path: tmp/artifacts/capybara | |
lint: | |
if: ${{ !contains(github.event.head_commit.message, '[skip-ci]') }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install Ruby and gems | |
uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
# - name: Security audit dependencies | |
# run: bin/bundler-audit --update | |
# - name: Security audit application code | |
# run: bin/brakeman -q -w2 | |
- name: Lint Ruby files | |
run: bundle exec rubocop --parallel | |
deploy: | |
name: Déploiement sur Scalingo | |
runs-on: ubuntu-latest | |
needs: [test, lint] | |
if: ${{ (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging') && !contains(github.event.head_commit.message, '[skip-deploy]') }} | |
steps: | |
- name: Install Scalingo CLI | |
run: curl -O https://cli-dl.scalingo.com/install && bash install | |
- run: scalingo login --api-token ${{ secrets.SCALINGO_TOKEN }} | |
- name: Déploiement sur staging | |
if: ${{ github.ref == 'refs/heads/staging' }} | |
run: scalingo --app collectif-objets-staging integration-link-manual-deploy staging | |
- name: Déploiement en production | |
if: ${{ github.ref == 'refs/heads/main' }} | |
run: scalingo --app collectif-objets-prod --region osc-secnum-fr1 integration-link-manual-deploy main |