diff --git a/.gitea/workflows/workflow.yml b/.gitea/workflows/workflow.yml index efa4a3c..8b17200 100644 --- a/.gitea/workflows/workflow.yml +++ b/.gitea/workflows/workflow.yml @@ -1,14 +1,12 @@ -name: Rust Build +name: icarus_auth Build on: push: branches: - main - - devel pull_request: branches: - main - - devel jobs: check: @@ -34,16 +32,13 @@ jobs: test: name: Test Suite runs-on: ubuntu-24.04 - # --- Add database service definition --- services: postgres: - image: postgres:18.3-alpine + image: postgres:18.4-alpine env: - # Use secrets for DB init, with fallbacks for flexibility POSTGRES_USER: ${{ secrets.DB_TEST_USER || 'testuser' }} POSTGRES_PASSWORD: ${{ secrets.DB_TEST_PASSWORD || 'testpassword' }} POSTGRES_DB: ${{ secrets.DB_TEST_NAME || 'testdb' }} - # Options to wait until the database is ready options: >- --health-cmd pg_isready --health-interval 10s @@ -56,7 +51,6 @@ jobs: with: toolchain: 1.96.1 - uses: Swatinem/rust-cache@v2 - # --- Add this step for explicit verification --- - name: Verify Docker Environment run: | echo "Runner User Info:" @@ -68,15 +62,12 @@ jobs: echo "Checking Docker Daemon Status (ps):" docker ps -a echo "Docker environment check complete." - # NOTE: Do NOT use continue-on-error here. - # If Docker isn't working as expected, the job SHOULD fail here. - name: Run tests env: # Define DATABASE_URL for tests to use DATABASE_URL: postgresql://${{ secrets.DB_TEST_USER || 'testuser' }}:${{ secrets.DB_TEST_PASSWORD || 'testpassword' }}@postgres:5432/${{ secrets.DB_TEST_NAME || 'testdb' }} RUST_LOG: info # Optional: configure test log level SECRET_KEY: ${{ secrets.TOKEN_SECRET_KEY }} - # Make SSH agent available if tests fetch private dependencies SSH_AUTH_SOCK: ${{ env.SSH_AUTH_SOCK }} ENABLE_REGISTRATION: 'TRUE' run: | diff --git a/docker-compose.yaml b/docker-compose.yaml index 4ab130d..62d9ff3 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,33 +1,28 @@ version: '3.8' # Use a recent version services: - # Your Rust Application Service auth_api: - build: # Tells docker-compose to build the Dockerfile in the current directory + build: context: . - ssh: ["default"] # Uses host's SSH agent - container_name: icarus_auth # Optional: Give the container a specific name + ssh: ["default"] + container_name: icarus_auth ports: - # Map host port 8000 to container port 3000 (adjust as needed) - "8001:8001" env_file: - .env depends_on: auth_db: - condition: service_healthy # Wait for the DB to be healthy before starting the app - restart: unless-stopped # Optional: Restart policy + condition: service_healthy + restart: unless-stopped - # PostgreSQL Database Service auth_db: - image: postgres:18.3-alpine # Use an official Postgres image (Alpine variant is smaller) - container_name: icarus_auth_db # Optional: Give the container a specific name + image: postgres:18.4-alpine + container_name: icarus_auth_db environment: - # These MUST match the user, password, and database name in the DATABASE_URL above POSTGRES_USER: ${POSTGRES_AUTH_USER:-icarus_op} POSTGRES_PASSWORD: ${POSTGRES_AUTH_PASSWORD:-password} POSTGRES_DB: ${POSTGRES_AUTH_DB:-icarus_auth_db} volumes: - # Persist database data using a named volume - postgres_data:/var/lib/postgresql ports: [] healthcheck: @@ -37,9 +32,8 @@ services: timeout: 5s retries: 5 start_period: 10s - restart: always # Optional: Restart policy + restart: always -# Define the named volume for data persistence volumes: postgres_data: driver: local # Use the default local driver