|
9 | 9 | jobs: |
10 | 10 | test: |
11 | 11 | runs-on: ubuntu-latest |
12 | | - services: |
13 | | - rabbitmq: |
14 | | - image: rabbitmq:latest |
15 | | - ports: |
16 | | - - 5672:5672/tcp |
17 | | - # needed because the rabbitmq container does not provide a healthcheck |
18 | | - options: >- |
19 | | - --health-cmd "rabbitmqctl node_health_check" |
20 | | - --health-interval 10s |
21 | | - --health-timeout 5s |
22 | | - --health-retries 5 |
23 | | -
|
24 | 12 | strategy: |
25 | 13 | fail-fast: false |
26 | 14 | matrix: |
27 | 15 | node-version: [12.x, 14.x, 16.x, 17.x] |
28 | 16 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ |
29 | 17 |
|
30 | 18 | steps: |
| 19 | + - name: Install RabbitMQ |
| 20 | + run: sudo apt-get update && sudo apt-get install -y rabbitmq-server |
| 21 | + - name: Stop RabbitMQ |
| 22 | + run: sudo systemctl stop rabbitmq-server |
| 23 | + |
| 24 | + - name: Install github.com/FiloSottile/mkcert |
| 25 | + run: brew install mkcert |
| 26 | + - name: Create local CA |
| 27 | + run: sudo CAROOT=/etc/rabbitmq $(brew --prefix)/bin/mkcert -install |
| 28 | + - name: Create certificate |
| 29 | + run: | |
| 30 | + sudo $(brew --prefix)/bin/mkcert -key-file /etc/rabbitmq/localhost-key.pem -cert-file /etc/rabbitmq/localhost.pem localhost |
| 31 | + sudo chmod +r /etc/rabbitmq/localhost-key.pem |
| 32 | + - name: Create RabbitMQ config |
| 33 | + run: | |
| 34 | + sudo tee /etc/rabbitmq/rabbitmq.conf <<'EOF' |
| 35 | + listeners.ssl.default = 5671 |
| 36 | + ssl_options.cacertfile = /etc/rabbitmq/rootCA.pem |
| 37 | + ssl_options.certfile = /etc/rabbitmq/localhost.pem |
| 38 | + ssl_options.keyfile = /etc/rabbitmq/localhost-key.pem |
| 39 | + EOF |
| 40 | + - name: Start RabbitMQ |
| 41 | + run: sudo systemctl start rabbitmq-server |
| 42 | + - name: Verify RabbitMQ started correctly |
| 43 | + run: while true; do sudo rabbitmq-diagnostics status 2>/dev/null && break; echo -n .; sleep 2; done |
| 44 | + |
31 | 45 | - uses: actions/checkout@v2 |
32 | 46 | - name: Use Node.js ${{ matrix.node-version }} |
33 | 47 | uses: actions/setup-node@v2 |
|
36 | 50 | - run: npm install |
37 | 51 | - run: npm test |
38 | 52 | env: |
39 | | - AMQPS_URL: ${{ secrets.AMQP_URL }} |
| 53 | + AMQPS_URL: amqps://localhost |
40 | 54 | - run: npm run lint |
0 commit comments