Update docker-compose syntax #1847
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: | |
pull_request: | |
types: [opened, reopened] | |
jobs: | |
verify-docker-setup: | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Init | |
run: ./scripts/docker_setup_init.sh | |
- name: Pull images | |
run: docker compose pull db | |
- name: Docker build | |
run: docker compose build web | |
- name: Docker init | |
run: docker compose run --rm web sh -c 'exit 0' | |
build-docker-image: | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
outputs: | |
docker-tag: ${{ steps.meta.outputs.tags }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Docker Buildx to be able to use caching | |
uses: docker/setup-buildx-action@v2 | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v3 | |
with: | |
images: local/${{ github.repository }} | |
- name: Build image | |
uses: docker/build-push-action@v3 | |
with: | |
file: Dockerfile.prod | |
tags: ${{ steps.meta.outputs.tags }} | |
cache-from: type=gha | |
cache-to: type=gha | |
lint: | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
needs: [build-docker-image] | |
env: | |
NESTJS_STARTER_IMAGE: ${{ needs.build-docker-image.outputs.docker-tag }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Docker Buildx to be able to use caching | |
uses: docker/setup-buildx-action@v2 | |
- name: Build image | |
uses: docker/build-push-action@v3 | |
with: | |
load: true | |
file: Dockerfile.prod | |
tags: ${{ needs.build-docker-image.outputs.docker-tag }} | |
cache-from: type=gha | |
cache-to: type=gha | |
- name: Init | |
run: ./scripts/docker_setup_init.sh | |
- name: Pull images | |
run: docker compose pull | |
- name: Run lint | |
run: docker compose run web yarn lint | |
test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
needs: [build-docker-image] | |
env: | |
NESTJS_STARTER_IMAGE: ${{ needs.build-docker-image.outputs.docker-tag }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Docker Buildx to be able to use caching | |
uses: docker/setup-buildx-action@v2 | |
- name: Build image | |
uses: docker/build-push-action@v3 | |
with: | |
load: true | |
file: Dockerfile.prod | |
tags: ${{ needs.build-docker-image.outputs.docker-tag }} | |
cache-from: type=gha | |
cache-to: type=gha | |
- name: Init | |
run: ./scripts/docker_setup_init.sh | |
- name: Pull images | |
run: docker compose pull | |
- name: Run tests | |
run: docker compose run web yarn test | |
test-request: | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
needs: [build-docker-image] | |
env: | |
NESTJS_STARTER_IMAGE: ${{ needs.build-docker-image.outputs.docker-tag }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Docker Buildx to be able to use caching | |
uses: docker/setup-buildx-action@v2 | |
- name: Build image | |
uses: docker/build-push-action@v3 | |
with: | |
load: true | |
file: Dockerfile.prod | |
tags: ${{ needs.build-docker-image.outputs.docker-tag }} | |
cache-from: type=gha | |
cache-to: type=gha | |
- name: Init | |
run: ./scripts/docker_setup_init.sh | |
- name: Pull images | |
run: docker compose pull | |
- name: Run request tests | |
run: docker compose run web yarn test:request | |
test-e2e: | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
needs: [build-docker-image] | |
env: | |
NESTJS_STARTER_IMAGE: ${{ needs.build-docker-image.outputs.docker-tag }} | |
DUMMY_MOUNT: .:/dummy | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Docker Buildx to be able to use caching | |
uses: docker/setup-buildx-action@v2 | |
- name: Build image | |
uses: docker/build-push-action@v3 | |
with: | |
load: true | |
file: Dockerfile.prod | |
tags: ${{ needs.build-docker-image.outputs.docker-tag }} | |
cache-from: type=gha | |
cache-to: type=gha | |
- name: Init | |
run: ./scripts/docker_setup_init.sh | |
- name: Pull images | |
run: docker compose pull | |
- name: Docker up | |
run: docker compose up --detach | |
- name: Cypress run | |
uses: cypress-io/github-action@v4 | |
with: | |
wait-on: 'http://localhost:3000' | |
wait-on-timeout: 120 | |
- name: Save Cypress artifacts | |
uses: actions/upload-artifact@v2 | |
if: always() | |
with: | |
name: cypress-artifacts | |
path: | | |
cypress/videos | |
cypress/screenshots | |
- name: Docker setup logs | |
if: always() | |
run: docker compose logs --timestamps --tail="all" > docker-logs.txt | |
- name: Save log artifacts | |
uses: actions/upload-artifact@v2 | |
if: always() | |
with: | |
name: log-artifacts | |
path: docker-logs.txt |