Skip to content

Merge pull request #186 from etalab/fixes/during-migration #859

Merge pull request #186 from etalab/fixes/during-migration

Merge pull request #186 from etalab/fixes/during-migration #859

Workflow file for this run

name: Continuous Integration
on:
push:
branches:
- '**'
- '!main'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v2
- uses: docker/build-push-action@v3
with:
context: .
tags: data_pass:latest
outputs: type=docker,dest=/tmp/data_pass.tar
cache-from: type=gha
cache-to: type=gha,mode=max
-
name: Cache image and ENV file
id: data_pass-docker
uses: actions/cache@v3
with:
path: |
/tmp/data_pass.tar
./.github/workflows/test.env
key: ${{ github.sha }}-data_pass
security:
name: "Security: Brakeman"
runs-on: ubuntu-latest
needs: build
steps:
- uses: docker/setup-buildx-action@v2
- uses: actions/cache@v3
with:
path: |
/tmp/data_pass.tar
./.github/workflows/test.env
key: ${{ github.sha }}-data_pass
- run: docker load --input /tmp/data_pass.tar
- run: docker run --rm --entrypoint="" data_pass:latest bundle exec brakeman
rb-lint:
name: "Linting: Rubocop"
runs-on: ubuntu-latest
needs: build
steps:
- uses: docker/setup-buildx-action@v2
- uses: actions/cache@v3
with:
path: |
/tmp/data_pass.tar
./.github/workflows/test.env
key: ${{ github.sha }}-data_pass
- run: docker load --input /tmp/data_pass.tar
- run: docker run --rm --entrypoint="" data_pass:latest bundle exec rubocop
js-lint:
name: "Linting: Standardjs"
runs-on: ubuntu-latest
needs: build
steps:
- uses: docker/setup-buildx-action@v2
- uses: actions/cache@v3
with:
path: |
/tmp/data_pass.tar
./.github/workflows/test.env
key: ${{ github.sha }}-data_pass
- run: docker load --input /tmp/data_pass.tar
- run: docker run --rm --entrypoint="" data_pass:latest standard app/javascript
unit-tests:
name: "Unit tests: RSpec"
runs-on: ubuntu-latest
needs: build
services:
postgres:
image: postgres
ports: ["5432:5432"]
env:
POSTGRES_PASSWORD: dummy
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
chrome:
image: browserless/chrome:latest
ports:
- "3333:3333"
env:
PORT: 3333
CONNECTION_TIMEOUT: 600000
redis:
image: redis
ports:
- "6379:6379"
steps:
- uses: docker/setup-buildx-action@v2
- uses: actions/cache@v3
with:
path: |
/tmp/data_pass.tar
./.github/workflows/test.env
key: ${{ github.sha }}-data_pass
- run: docker load --input /tmp/data_pass.tar
- run: |
docker run \
--network="host" \
--env-file ./.github/workflows/test.env \
--rm data_pass bundle exec rspec
integration-tests:
name: "Integration tests: Cucumber"
runs-on: ubuntu-latest
needs: build
services:
postgres:
image: postgres
ports: ["5432:5432"]
env:
POSTGRES_PASSWORD: dummy
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
chrome:
image: browserless/chrome:latest
ports:
- "3333:3333"
env:
PORT: 3333
CONNECTION_TIMEOUT: 600000
redis:
image: redis
ports:
- "6379:6379"
steps:
- uses: docker/setup-buildx-action@v2
- uses: actions/cache@v3
with:
path: |
/tmp/data_pass.tar
./.github/workflows/test.env
key: ${{ github.sha }}-data_pass
- run: docker load --input /tmp/data_pass.tar
- run: |
docker run \
--network="host" \
--env-file ./.github/workflows/test.env \
--rm data_pass bundle exec cucumber