Download .github/workflows/test.yml from headway/medicode: direct link, hf CLI and curl.
- Browser
- Download file 3.56 kB
-
https://huggingface.co/spaces/headway/medicode/resolve/main/.github/workflows/test.yml
- Command line
-
hf download hf://spaces/headway/medicode/.github/workflows/test.yml
-
curl -L -o test.yml https://huggingface.co/spaces/headway/medicode/resolve/main/.github/workflows/test.yml
3.56 kB
| # Create initial workflow based on GitHub's suggestion for Elixir. | |
| on: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| branches: ["main"] | |
| env: | |
| MIX_ENV: test | |
| jobs: | |
| test: | |
| name: Test codebase | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: pgvector/pgvector:pg16 | |
| env: | |
| POSTGRES_USERNAME: postgres | |
| POSTGRES_PASSWORD: postgres | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| ports: | |
| - 5432:5432 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install ffmpeg | |
| run: sudo apt-get install ffmpeg | |
| # - name: Download Bumblebee model artifacts | |
| # uses: actions/download-artifacts | |
| # with: | |
| # name: bumblebee-cache | |
| - name: Set up Elixir | |
| uses: erlef/setup-beam@v1 | |
| with: | |
| elixir-version: '1.16.0' | |
| otp-version: '26.0' | |
| - name: Cache dependencies | |
| id: cache-deps | |
| uses: actions/cache@v4 | |
| env: | |
| cache-name: cache-elixir-deps | |
| with: | |
| path: deps | |
| key: ${{ runner.os }}-mix-${{ env.cache-name }}-${{ hashFiles('**/mix.lock') }} | |
| restore-keys: ${{ runner.os }}-mix-${{ env.cache-name }}- | |
| - name: Cache compiled build | |
| id: cache-build | |
| uses: actions/cache@v4 | |
| env: | |
| cache-name: cache-compiled-build | |
| with: | |
| path: _build | |
| key: ${{ runner.os }}-mix-${{ env.cache-name }}-${{ hashFiles('**/mix.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-mix-${{ env.cache-name }}- | |
| ${{ runner.os }}-mix- | |
| - name: Clean dependencies to rule out incremental build as source of failures | |
| if: github.run_attempt != '1' | |
| run: | | |
| mix deps.clean --all | |
| mix clean | |
| shell: sh | |
| - name: Install dependencies | |
| run: mix deps.get | |
| - name: Compile | |
| run: mix compile | |
| - name: Print out Bumblebee cache directory | |
| run: elixir -e 'IO.puts(:filename.basedir(:user_cache, "bumblebee"))' | |
| - name: Cache Bumblebee model files | |
| uses: actions/cache@v4 | |
| with: | |
| path: /home/runner/.cache/bumblebee | |
| key: ${{ runner.os }}-bumblebee-${{ hashFiles('**/application.ex') }} | |
| restore-keys: ${{ runner.os }}-bumblebee- | |
| - name: Run tests | |
| env: | |
| DATABASE_URL: postgresql://postgres:postgres@localhost/medical_transcription_test | |
| run: mix test --cover --export-coverage default | |
| - name: Export code coverage | |
| id: coverage_percent | |
| run: | | |
| COVERAGE_RESULTS=$(mix test.coverage) || true | |
| echo $COVERAGE_RESULTS | |
| COVERAGE_PERCENTAGE=$(echo $COVERAGE_RESULTS | grep "Coverage:" | awk -F ':' '{print $2}' | awk '{$1=$1;print}') | |
| echo "value=$COVERAGE_PERCENTAGE" >> $GITHUB_OUTPUT | |
| - name: Send coverage results to Slack | |
| uses: slackapi/slack-github-action@v1.23.0 | |
| if: ${{ github.ref == 'refs/head/main' }} | |
| with: | |
| payload: | | |
| { | |
| "appName": "MediCode", | |
| "percent": "${{ steps.coverage_percent.outputs.value }}" | |
| } | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| # - name: Upload Bumblebee model artifacts | |
| # uses: actions/upload-artifact@v4 | |
| # with: | |
| # name: bumblebee-cache | |
| # path: $HOME/.cache/bumblebee | |