Skip to content

Commit

Permalink
Release please (#28)
Browse files Browse the repository at this point in the history
* DevOps improvements (#24)

* perf(quetzalcoatl): extract cors origins in envvar

* refactor(anubis): fix api endpoint mispell

* feat(cors): enable cors policy for anubis, enki and quetzalcoatl

* perf(quetzalcoatl): simplify refresh token logic

- now only a valid refresh token is required in order to issue new access tokens, as keeping the stale access tokens in sync with the refresh token using cookies is too intricate

* perf(odin): add lua filter for appending access/refresh tokens from/to requests/responses

* perf(odin): increase expiry time for newly created access tokens

- the expiry time is currently hardcoded in the envoy.yaml file as I haven't figured it out how to use env vars here yet

* perf(register): set auth tokens as samesite lax

* perf(docker): do not restart containers if stopped

* docs: add fastendpoints logo to diagram

* perf(quetzalcoatl): update user dtos to use ProfilePictureId instead of ProfilePictureUrl

* refactor(quetzalcoatl): set cookies as secure on prod

* perf(prod): update SameSite attribute for cookies to None

* fix(quetzalcoatl): check profile picture not to be null before adding its id to dtos

* feat(users): add support for filtering-sorting-pagination for users endpoint

* perf(users): define all fsp params as optional

* feat: Add logging and error handling to refresh token endpoint

Added logging statements to display the request path and HTTP method. Also added error handling for cases where cookies are missing or invalid, with appropriate response headers. The response headers now include `access-control-allow-credentials` and `access-control-allow-origin` to enable CORS support.

* feat(images): allow anonymous users to access the image endpoint

* perf(odin): add https support

* feat(compose): add service for midgard-web

* ops: add pantheonix profile to services

* feat(roles): add endpoints for roles management

* fix(odin): remove certs dependency as they are already set in lb

* fix(odin): remove https redirection

* fix(remove role): add role information to user response

* refactor(validators): update validation rules and add constants for user registration and update validators

* refactor(users): update GetAllUsersEndpoint to filter users by username instead of name

* perf(enki): add authorization to GetListAsync and GetAsync methods

* fix(quetzalcoatl): get total count of items after filtering for correct user pagination on GetAll endpoint

* fix(enki): count items after filtering for correct pagination of problems (both published and unpublished)

* feat(enki): add delete problem endpoint (propagate deletion event against hermes too)

* style(enki): format code

* fix(enki): allow proposer to keep the same name for an existing problem on problem update endpoint

* feat(anubis): add endpoint for retrieving the highest score submissions per user (and problem if specified)

* feat(enki+anubis): add pubsub support for eval metadata retrieval to improve performance

Add RabbitMQ pub-sub using Dapr for publishing eval metadata related events when problems/tests are upserted/deleted in order to mitigate the overhead from Anubis submission evaluation

* feat(docker-compose): add volumes for dapr redis and rabbitmq logs

* fix(anubis): update tests PK as the composition between id and problem_id

* feat(anubis): add create/get test case dapr client methods

* perf(anubis): improve http errors format using json

* perf(anubis): add problem name to get all submissions endpoint response

* feat(anubis-judge0): add nginx lb between anubis and judge0 replicas

* fix(anubis): configure CORS policy for Rocket

* perf(anubis): add problem name to get submission by id endpoint response

* ops(asgard): configure memory limits/reservations for docker containers

* perf(anubis): add is_published field to submissions dtos

* ops(compose): update resource limits and reservations

* fix(submission source code): show submission source code iff problem has been solved previously by user

* fix(anubis): remove unused import

* ops: update docker-compose.prod.yaml

* ops(anubis): scale up evaluator with more judge0 replicas

* ops(anubis): add rabbitmq instance to prod

* fix(anubis): add cors preflight catcher

* fix(ci/cd): add support to auto-tagging both for git and docker

* fix(ci/cd): update digitalocean production environment only when pushing to master

* fix(ci/cd): disable autogenerated tags for now

* fix(ci/cd): remove github action for autogenerated tags

* fix(ci/cd): disable triggers on pull-request

* ops(anubis): use cargo-chef for improving docker image building via deps caching (#18)

Co-authored-by: WarriorsSami <[email protected]>

* Polish CI pipelines for building/testing and testing environments (#19)

* ops(ci): add ci pipelines for building and testing quetzalcoatl and enki

* fix(ci): remove caching layer from quetzalcoatl and enki pipelines

* fix(ci): cd into quetzalcoatl and enki microservices projects before executing pipelines

* fix(ci): pwd for quetzalcoatl in pipeline

* fix(ci-quetzalcoatl): specify path to project when building and testing

* fix(ci-quetzalcoatl): restore tests project too

* misc(quetzalcoatl): update .net sdk to 8 (and packages too)

* fix(quetzalcoatl): configure testing environment

* fix+test(quetzalcoatl): remove obsolete tests and add new type formatters for response parsing

* fix(quetzalcoatl): configure testing environment for ci pipeline

* fix(quetzalcoatl): use .net 8 sdk in ci pipeline

* fix(quetzalcoatl): downgrade back to .net 7 as authorization failed to work in .net 8

* test(quetzalcoatl): remove seed data for get all users test

* style: format code

* fix(quetzalcoatl): enable MARS for mssql dsn in integration tests

* style: remove debuggin prints

* fix+ops(enki): prepare test environment for ci pipeline

* ops(hermes): setup testing environment for ci pipeline

* fix(hermes): remove format and analyze steps from ci pipeline

* fix(hermes): cd into microservice project before running tests

* fix(hermes): create log file for tests

* ops: add pull-request triggers for ci pipelines and prepend ci logic to already existing cd pipelines

* ops(anubis): setup ci pipeline for testing

* refactor+ops: specify project dir as default per pipeline

* fix(anubis): place cache action after rust setup in ci pipeline

* fix(quetzalcoatl): specify path to test project .csproj in the testing action of the ci pipeline

* test+ops(anubis): setup local environment for integration testing using docker compose

* fix(anubis): use correct path to testing environment compose in ci pipeline

* test(anubis): setup seeding data for integration tests

* test(anubis): setup cache stub as go CRUD API wrapper over Redis for integration testing

* test(anubis): add tests for get submission(s) endpoints and setup nextest

* ops(anubis): specify nextest version to be compatible with rustc version in ci pipeline

* ops(anubis): specify nextest version to be compatible with rustc version in ci pipeline

* test(anubis): add tests for get the highest score submissions and create submission endpoints

* ops: disable digitalocean deployment pipeline

ops: disable digitalocean deployment pipeline

ops: disable digitalocean deployment pipeline

---------

Co-authored-by: WarriorsSami <[email protected]>

* fix(anubis cd): specify version for cargo nextest

* fix(cd pipelines): make deploy job depend upon the build one

* fix(anubis cd): add docker compose step for setting up testing environment

* Seeding script for Asgard local environment (#20)

* refactor(docker-compose): remove deprecated version key and expose new port for debugging dapr redis

* feat(seeder): add support for deserializing fixtures yaml config file into golang struct

* feat(seeder): implement login method in http client and return jwt access token iff logged in successfully

* feat(seeder): implement create problem method

* feat(seeder): implement create tests method

* feat(seeder): implement publish problem method

* feat(seeder): implement submission sending

perf: use goroutines to leverage parallel processing of http requests

perf: use errgroup to report errors encountered inside goroutines

* perf(seeder): execute seeding worker dynamically using docker compose

* fix(seeder): add compose.override file for seeder

* Add PR Verify Pipelines (#22)

* refactor(ci-cd): define reusable workflows for pushing images to ghcr and docker hub

* refactor(ci-cd): reconfigure ci pipelines as pr verify ones

* refactor(ci-cd): integrate reusable workflows for image publishing in ci pipelines

* fix(quetzalcoatl): pin explicit mssql tag for testcontainers in integration tests

* fix: disable testing step in quetzalcoatl pipelines due to misbehaving mssql containers

* feat(ci-cd): add release please pipeline and config

* Devops/ci cd enhancement (#23)

* refactor(ci-cd): define reusable workflows for pushing images to ghcr and docker hub

* refactor(ci-cd): reconfigure ci pipelines as pr verify ones

* refactor(ci-cd): integrate reusable workflows for image publishing in ci pipelines

* fix(quetzalcoatl): pin explicit mssql tag for testcontainers in integration tests

* fix: disable testing step in quetzalcoatl pipelines due to misbehaving mssql containers

* feat(ci-cd): add release please pipeline and config

* refactor(release-please): change tag separator to slash

* refactor(release-please): update target branch

---------

Co-authored-by: WarriorsSami <[email protected]>

* fix(release-please): use custom github pat

---------

Co-authored-by: WarriorsSami <[email protected]>
  • Loading branch information
WarriorsSami and WarriorsSami authored Sep 21, 2024
1 parent 2503011 commit abb71b0
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/release-please.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
steps:
- uses: googleapis/release-please-action@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ secrets.TOKEN }}
target-branch: 'develop'
config-file: release-please-config.json
manifest-file: .release-please-manifest.json
Expand Down

0 comments on commit abb71b0

Please sign in to comment.