name: CI on: push: workflow_dispatch: jobs: build: runs-on: ubuntu-latest permissions: id-token: write # required to request the GitHub OIDC token for AWS contents: read steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' - uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: ${{ secrets.AWS_ROLE_ARN }} aws-region: us-east-1 - run: npm install - run: npm run jslint - run: sudo apt update && sudo apt install -y squid - run: sudo cp test/squid.conf /etc/squid/squid.conf - run: sudo systemctl start squid - run: npm test env: # AWS_* are exported by configure-aws-credentials above as short-lived # OIDC credentials; no AWS keys are stored as repository secrets. GCP_JSON_KEY: ${{ secrets.GCP_JSON_KEY }} # Enables the "AWS speech synth tests by RoleArn" test, which exercises the # AssumeRole credential path used in production. AWS_ROLE_ARN: ${{ secrets.AWS_ROLE_ARN }} MICROSOFT_API_KEY: ${{ secrets.MICROSOFT_API_KEY }} MICROSOFT_REGION: ${{ secrets.MICROSOFT_REGION }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} ELEVENLABS_API_KEY: ${{ secrets.ELEVENLABS_API_KEY }} ELEVENLABS_VOICE_ID: ${{ secrets.ELEVENLABS_VOICE_ID }} ELEVENLABS_MODEL_ID: ${{ secrets.ELEVENLABS_MODEL_ID }} PLAYHT_USER_ID: ${{ secrets.PLAYHT_USER_ID }} PLAYHT_API_KEY: ${{ secrets.PLAYHT_API_KEY }} JAMBONES_HTTP_PROXY_IP: 127.0.0.1 JAMBONES_HTTP_PROXY_PORT: 3128