• Stars
    star
    198
  • Rank 190,702 (Top 4 %)
  • Language
    Ruby
  • Created about 4 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Interactive Programming Courses

github action status

hexlet-basics

Setup

Requirements

  • docker
  • docker compose V2
  • ruby >= 3.0.0
  • make

Steps

Add to /etc/hosts: 127.0.0.1 code-basics.test

Clone project

Some lsp servers are fully workable only when the root dir is the same inside and outside the container. That is why we set WORKDIR to /opt/projects/hexlet-basics. So, if it is possible, clone this project to that directory.

Prepare pulling image locally

  1. Open ./app/lib/docker_exercise_api.rb
  2. Find def self.download(lang_name) line
  3. Comment or remove ok = system("docker pull #{image_name(lang_name)}") line
  4. Add new line ok = true below

Run

make project-setup
make compose # run server
# open code-basics.test

make app-test # run tests

# load language
# make app-language-load L=php

make app-db-prepare # sometimes, when fixtures were changed

To manage loaded languages and set other settings, you need to sign in (login: [email protected], password: password)

Production

Kube access

# make k8s-macos-setup or make k8s-ubuntu-setup
export DIGITALOCEAN_ACCESS_TOKEN=<your token>
make local-cluster-setup

Deploy

  • Create new tag via command:

    make next-tag
  • Wait notification about ready tag in Slack channel #sideprojects-code-auto or wait Github Actions

  • Change version in k8s/hb-app-chart/values.yaml and then:

    make -C k8s helm-upgrade-app

Troubleshooting

I couldn't commit my changes

  • try to reinitialize your fork repository Read more
  • try to add RUN git config --global --add safe.directory ${PROJECT_ROOT} line after WORKDIR ${PROJECT_ROOT} in Dockerfile Read more

Hexlet Ltd. logo

This repository is created and maintained by the team and the community of Hexlet, an educational project. Read more about Hexlet.

See most active contributors on hexlet-friends.