Skip to content

Conversation

@Kavignon
Copy link
Contributor

@Kavignon Kavignon commented Nov 29, 2024

Introduces a CI pipeline for the Slax project using GitHub Actions.

The pipeline is designed to ensure code quality, security, and functional correctness by automating key development processes.

Key Components of the CI

  • Runs on pushes and pull requests targeting the main branch.
  • Uses ubuntu-latest as the CI runner.
  • Sets up PostgreSQL 15 as a service for database operations during tests.
  • Configures MIX_ENV as test to ensure the correct environment is used.
  • Defines DATABASE_URL for Ecto to connect to the PostgreSQL service.
  • Uses Elixir 1.18 and Erlang/OTP 27.1.2 are installed for compatibility with the project.

High-level CI flow

  1. The CI agent checks out the code using actions/checkout@v4 to retrieve the code in the repository.
  2. The CI agent sets up the environment for Erlang, OTP and Elixir for Elixir 1.18 and OTP 27.1.2.
  3. Caches Elixir dependencies and Dialyzer PLTs to reduce build times.
  4. The CI agent fetches the dependencies defined in mix.exs.
  5. The CI agent creates the database and applies migrations to ensure the test environment reflects the latest changes.
  6. Quality checks are being ran against the code (formatted, Credo, Dialyzer and Sobelow)
  7. Executes the test suite with mix test to validate the application’s functionality.

@Kavignon Kavignon force-pushed the devex/add-ci-to-slax branch from b4db15e to 3b7c232 Compare January 25, 2025 19:17
Allows to confirm that the repository is in good shape prior to running the app.
@Kavignon Kavignon force-pushed the devex/add-ci-to-slax branch from 8575f98 to 8237569 Compare January 25, 2025 20:28
@Kavignon Kavignon changed the title Adding CI to Slax (WIP) Adding CI to Slax Jan 25, 2025
@Kavignon Kavignon changed the title Adding CI to Slax Implement CI pipeline with GitHub Actions Jan 25, 2025
@Kavignon Kavignon merged commit 342b698 into main Jan 25, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants