Ajout d'un fichier Changelog pour suivre les évolutions du projet #2299
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: | |
branches-ignore: ['cms/**'] # Pas besoin car Netlify génère une pull request | |
pull_request: | |
jobs: | |
test: | |
if: ${{ !contains(github.event.head_commit.message, '[skip-ci]') }} | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgis/postgis:13-3.3 | |
ports: | |
- "5432:5432" | |
env: | |
POSTGRES_DB: rails_test | |
POSTGRES_USER: rails | |
POSTGRES_PASSWORD: password | |
redis: | |
image: redis | |
ports: | |
- 6379/tcp | |
env: | |
RAILS_ENV: test | |
DATABASE_URL: "postgis://rails:password@localhost:5432/rails_test" | |
DISABLE_BOOTSNAP: "1" | |
steps: | |
- run: mkdir -p tmp/artifacts/capybara | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Install Ruby and gems | |
uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- run: npm ci | |
- name: Set up database schema | |
run: bin/rails db:schema:load | |
- name: Set up database sequences | |
run: bin/rails runner scripts/create_postgres_sequences_memoire_photos_numbers.rb | |
- name: Run tests | |
run: bundle exec rspec | |
env: | |
REDIS_PORT: ${{ job.services.redis.ports[6379] }} | |
RUBYOPT: -W0 # Disable Ruby warnings for libvips uninitialized constant cf https://github.com/customink/ruby-vips-lambda/issues/15 | |
- uses: actions/upload-artifact@v3 | |
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@v3 | |
- 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 main | |
- 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 | |