Andrej Istomin's personal website, built with Jekyll. Visit it at https://aistomin.com
A personal website featuring articles about technology, innovation, and various projects, deployed on GitHub Pages.
- Docker Engine 18.06.0+ (includes Docker Compose)
-
Clone the repository:
git clone git@github.com:aistomin/aistomin.com.git cd aistomin.com -
Start the development server:
./start.sh
-
Open your browser and navigate to
http://localhost:4000
The site will automatically rebuild when you make changes to the source files. Live reload is enabled.
Note: The start.sh script rebuilds the Docker image from scratch to ensure you always have the latest changes with no caching issues.
- Ruby 2.7 or newer
- Bundler gem
-
Clone the repository:
git clone git@github.com:aistomin/aistomin.com.git cd aistomin.com -
Install dependencies:
bundle install
-
Start the development server:
bundle exec jekyll serve -
Open your browser and navigate to
http://localhost:4000
The site will automatically rebuild when you make changes to the source files.
This project includes automated end-to-end tests using Playwright.
- Node.js 18+ and npm
-
Start the development server in a separate terminal:
./start.sh
-
Run the E2E tests:
./run-e2e-tests.sh
The script will:
- Install Playwright dependencies if needed (first run only)
- Check if the website is running at
http://localhost:4000 - Run all E2E tests on Chromium
- Generate an HTML report
After running the tests, you can view the detailed HTML report:
cd playwright
npx playwright show-reportFrom the playwright directory, you can run:
# Run tests in headed mode (see browser)
npm run test:headed
# Run tests in UI mode (interactive)
npm run test:ui
# Run tests in debug mode
npm run test:debugThis project uses GitHub Actions for continuous integration and deployment.
On every push/PR to any branch:
- Builds Jekyll site
- Runs Playwright e2e tests
- Uploads test reports (available in Actions tab)
On push to master branch (only if tests pass):
- Deploys to GitHub Pages at https://aistomin.com
If tests fail:
- Deployment is blocked
- Test reports are available in the Actions tab
A separate workflow runs e2e tests against the live production site (https://aistomin.com):
- Runs every hour automatically
- Can be triggered manually from Actions tab
- Verifies the site is working correctly in production
- Uploads test reports (retained for 7 days)
This helps catch any issues that might only appear in production.
We welcome contributions! Please follow these steps:
git clone git@github.com:YOUR_USERNAME/aistomin.com.git
cd aistomin.comgit checkout -b your-feature-branchEdit the files as needed. The site uses Jekyll, so:
- Content pages are in the root (
.markdownfiles) - Layouts are in
_layouts/ - Styles are in
_sass/andassets/css/ - Blog posts go in
_posts/
Start the development server to preview your changes:
./start.shThen visit http://localhost:4000 in your browser.
Important: Always run tests before committing:
./test-before-commit.shThis script will:
- Stop any running containers
- Start a fresh instance
- Run all e2e tests
- Display results
- Clean up and stop containers
Only commit if all tests pass.
git add .
git commit -m "Your descriptive commit message"
git push origin your-feature-branchGo to GitHub and create a pull request from your branch. The CI/CD pipeline will automatically:
- Build the site
- Run e2e tests
- Report the results
Your PR can only be merged if all tests pass.
./start.sh- Start the development server./stop.sh- Stop the development server./run-e2e-tests.sh- Run tests against a running server./test-before-commit.sh- Full test cycle (recommended before committing)
- Jekyll - Static site generator
- Bundler - Dependency management
- Playwright - End-to-end testing
- GitHub Actions - CI/CD