Skip to content

Commit fdc61fd

Browse files
committed
Drop webpack,yarn,rollbar
Upgrade to vite, pnpm, modern stack
1 parent 5a8e710 commit fdc61fd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+13534
-15167
lines changed

.github/workflows/master.yml

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
build:
1111
if: github.repository == 'hexlet-codebattle/codebattle'
1212
runs-on: ubuntu-latest
13-
timeout-minutes: 30 # Add timeout to prevent hanging builds
13+
timeout-minutes: 30
1414

1515
env:
1616
MIX_ENV: test
@@ -21,7 +21,7 @@ jobs:
2121
ports: ["5432:5432"]
2222
env:
2323
POSTGRES_PASSWORD: postgres
24-
POSTGRES_HOST_AUTH_METHOD: trust # Simplify auth for CI
24+
POSTGRES_HOST_AUTH_METHOD: trust
2525
options: >-
2626
--health-cmd pg_isready
2727
--health-interval 10s
@@ -33,7 +33,7 @@ jobs:
3333
steps:
3434
- uses: actions/checkout@v4
3535
with:
36-
fetch-depth: 0 # Fetch complete history for better caching
36+
fetch-depth: 0
3737

3838
- name: Setup Elixir
3939
uses: erlef/setup-beam@v1
@@ -71,27 +71,30 @@ jobs:
7171
run: mix credo
7272
working-directory: ./services/app
7373

74-
- name: Get yarn cache
75-
id: yarn-cache
76-
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
74+
# --- pnpm setup & caching ---
75+
- name: Setup Node
76+
uses: actions/setup-node@v4
77+
with:
78+
node-version: "24"
79+
cache: "pnpm"
80+
cache-dependency-path: ./services/app/apps/codebattle/pnpm-lock.yaml
7781

78-
- uses: actions/cache@v4
82+
- name: Setup pnpm
83+
uses: pnpm/action-setup@v4
7984
with:
80-
path: ${{ steps.yarn-cache.outputs.dir }}
81-
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
82-
restore-keys: |
83-
${{ runner.os }}-yarn-
85+
version: 9
86+
run_install: false
8487

85-
- name: Install yarn dependencies
86-
run: yarn install --frozen-lockfile --network-timeout 300000
88+
- name: Install pnpm dependencies
89+
run: pnpm install --frozen-lockfile
8790
working-directory: ./services/app/apps/codebattle
8891

8992
- name: Eslint
90-
run: yarn lint
93+
run: pnpm run lint
9194
working-directory: ./services/app/apps/codebattle
9295

9396
- name: Run jest
94-
run: yarn test
97+
run: pnpm run test
9598
working-directory: ./services/app/apps/codebattle
9699

97100
- name: Mix audit

.github/workflows/pr.yml

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ jobs:
1414
group: ${{ github.workflow }}-${{ github.ref }}
1515
cancel-in-progress: true
1616

17-
# Use test environment by default
1817
env:
1918
MIX_ENV: test
2019
POSTGRES_PASSWORD: postgres
@@ -72,28 +71,32 @@ jobs:
7271
run: mix credo --strict
7372
working-directory: ./services/app
7473

75-
- name: Get yarn cache
76-
id: yarn-cache
77-
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
74+
# --- pnpm setup & caching ---
75+
- name: Setup Node
76+
uses: actions/setup-node@v4
77+
with:
78+
node-version: "24"
79+
cache: "pnpm"
80+
cache-dependency-path: ./services/app/apps/codebattle/pnpm-lock.yaml
7881

79-
- uses: actions/cache@v4
82+
- name: Setup pnpm
83+
uses: pnpm/action-setup@v4
8084
with:
81-
path: ${{ steps.yarn-cache.outputs.dir }}
82-
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
83-
restore-keys: |
84-
${{ runner.os }}-yarn-
85+
version: 9
86+
run_install: false
8587

86-
- name: Install yarn dependencies
87-
run: yarn install --frozen-lockfile
88+
- name: Install pnpm dependencies
89+
run: pnpm install --frozen-lockfile
8890
working-directory: ./services/app/apps/codebattle
8991

9092
- name: Eslint
91-
run: yarn lint
93+
run: pnpm lint
9294
working-directory: ./services/app/apps/codebattle
9395

9496
- name: Run jest
95-
run: yarn test
97+
run: pnpm test
9698
working-directory: ./services/app/apps/codebattle
99+
# --- end pnpm block ---
97100

98101
- name: Setup db
99102
run: |

.tool-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
elixir 1.19.1-otp-28
22
erlang 28.1.1
3-
nodejs 18.15.0
3+
nodejs 24.11.0

README.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,6 @@ $ mix asserts.upload # Pulls from battle_asserts all issues and upserts into DB
7474
```
7575

7676
### Profile js bundle
77-
To build stat.json and see details in browser run:
78-
```
79-
yarn profile:build
80-
yarn profile:visualize
81-
```
8277

8378
### Support
8479

ansible/development/group_vars/all/vars.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,3 @@ codebattle_onesignal_app_id: "5857921a-703b-4231-9e0a-bc3e0bb385bb"
1414
codebattle_onesignal_api_key: "NWFkNDczNGUtYTUwZC00ZWI5LWFjNDUtNzlkYzU3YjVlYzA2"
1515
codebattle_firebase_api_key: "0"
1616
codebattle_firebase_messaging_sender_id: "1"
17-
codebattle_rollbar_api_key: "2"

ansible/production/group_vars/all/vars.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,3 @@ codebattle_onesignal_app_id: "{{ vault_codebattle_onesignal_app_id }}"
1919
codebattle_onesignal_api_key: "{{ vault_codebattle_onesignal_api_key }}"
2020
codebattle_firebase_api_key: "{{ vault_codebattle_firebase_api_key }}"
2121
codebattle_firebase_messaging_sender_id: "{{ vault_codebattle_firebase_messaging_sender_id }}"
22-
codebattle_rollbar_api_key: "{{ vault_codebattle_rollbar_api_key }}"

ansible/templates/environment.j2

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,3 @@ ONESIGNAL_APP_ID={{ codebattle_onesignal_app_id }}
1414
ONESIGNAL_API_KEY={{ codebattle_onesignal_api_key }}
1515
FIREBASE_API_KEY={{ codebattle_firebase_api_key }}
1616
FIREBASE_SENDER_ID={{ codebattle_firebase_messaging_sender_id }}
17-
ROLLBAR_API_KEY={{ codebattle_rollbar_api_key }}

ansible/templates/secrets.auto.tfvars.j2

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,3 @@ onesignal_api_key = "{{ codebattle_onesignal_api_key }}"
1919
onesignal_app_id = "{{ codebattle_onesignal_app_id }}"
2020
firebase_api_key = "{{ codebattle_firebase_api_key }}"
2121
firebase_sender_id = "{{ codebattle_firebase_messaging_sender_id }}"
22-
rollbar_api_key = "{{ codebattle_rollbar_api_key }}"

make-compose.mk

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,11 @@ compose-build:
1212
compose-down:
1313
podman-compose down -v || true
1414

15-
compose-profile:
16-
podman-compose run --rm --name codebattle_app app /bin/sh -c 'cd /app/apps/codebattle && yarn profile'
17-
1815
compose-test-code-checkers:
1916
podman-compose run --rm --name codebattle_app app mix test image_executor
2017

21-
compose-test-yarn:
22-
podman-compose run --rm --name codebattle_app app /bin/sh -c 'cd /app/apps/codebattle && yarn test'
18+
compose-test-fe:
19+
podman-compose run --rm --name codebattle_app app /bin/sh -c 'cd /app/apps/codebattle && pnpm test'
2320

2421
compose-test:
2522
podman-compose run --rm --name codebattle_app app mix test --exclude image_executor
@@ -33,10 +30,10 @@ compose-bash:
3330
compose-install-mix:
3431
podman-compose run --rm --name codebattle_app app mix deps.get
3532

36-
compose-install-yarn:
37-
podman-compose run --rm --name codebattle_app app /bin/sh -c 'cd /app/apps/codebattle && yarn'
33+
compose-install-pnpm:
34+
podman-compose run --rm --name codebattle_app app /bin/sh -c 'cd /app/apps/codebattle && pnpm'
3835

39-
compose-install: compose-install-mix compose-install-yarn
36+
compose-install: compose-install-mix compose-install-pnpm
4037

4138
compose-setup: compose-down compose-build compose-install compose-db-setup
4239

@@ -55,7 +52,7 @@ compose-mix-credo:
5552
podman-compose run app mix credo
5653

5754
compose-lint-js-fix:
58-
podman-compose run --rm --name codebattle_app app /bin/sh -c 'cd /app/apps/codebattle && yarn lint --fix'
55+
podman-compose run --rm --name codebattle_app app /bin/sh -c 'cd /app/apps/codebattle && pnpm run lint --fix'
5956

6057
compose-console:
6158
podman-compose run --rm --name codebattle_app app iex -S mix

services/app/.codebattle

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@ ENV MIX_ENV=prod
33

44
WORKDIR /tmp/codebattle/assets
55

6-
COPY apps/codebattle/package.json apps/codebattle/yarn.lock ./
7-
RUN yarn install --frozen-lockfile --network-timeout 300000
6+
COPY apps/codebattle/package.json apps/codebattle/pnpm-lock.yaml ./
7+
RUN pnpm install --frozen-lockfile --network-timeout 300000
88

99
COPY apps/codebattle/postcss.config.js apps/codebattle/.babelrc ./
10-
COPY apps/codebattle/webpack ./webpack
1110
COPY apps/codebattle/assets ./assets
1211
COPY apps/codebattle/priv/gettext ./priv/gettext
1312

14-
RUN yarn build
13+
RUN pnpm run build
1514

1615
FROM elixir:1.19.1-otp-28-alpine AS compile-image
1716
ARG GIT_HASH

0 commit comments

Comments
 (0)