Services not working
fgimenez opened this issue ยท 25 comments
Hello! I have this workflow:
on: [push]
jobs:
tests:
runs-on: ubuntu-latest
container: node:12.16.1-stretch
services:
mongodb:
image: "mongo:4.0.17"
steps:
- uses: actions/checkout@v2
- run: yarn
- run: yarn test
The yarn test
command expects to find a mongodb service listening on 27017, but running act the command fails with MongooseServerSelectionError: getaddrinfo ENOTFOUND mongodb
. The same workflow succeeds on GitHub.
I've also tried -P ubuntu-latest=nektos/act-environments-ubuntu:18.04
, any help is very appreciated :)
I was having a similar problem, especially when i was trying to combine rails caching with postgresql and redis. In the end i created a seperate workflow file called ci-local.yml based off of the production Github Actions file i had created and manually defined the services by calling apt-get then service %service_name% start.
Massive PITA but for localised testing this was the only way i could thoroughly test the functional parts of GitHub Actions where multiple parts are as yet unsupported.
Not a fix, just a hacky workaround to get myself out of trouble!
Issue is stale and will be closed in 7 days unless there is new activity
shiiiiiiiiiiiiit
Same here. Services not working. Any workaround for the same?
@jadhavmanoj workaround is to use docker-compose
I have the same problem while using services of mysql and redis in action
Any updates? It's been another month
Hello, any update on this?
My code:
jobs:
test:
runs-on: ubuntu-latest
services:
mongodb:
image: mongo:4.0
ports:
- 27017/tcp
# ...etc
In the env section of my job I have: MONGO_URI_TESTS: localhost:${{ job.services.mongodb.ports[27017] }}/dbtest
The error: ERRO[0082] Unable to interpolate string 'localhost:${{ job.services.mongodb.ports[27017] }}/dbtest' - [TypeError: Cannot access member 'ports' of undefined]
Thank you!
@thatdoogieguy Could you provide a snippet of the step you wrote tha install & start postgresql ?
I have a feeling that is a simple one but since you have experience about it let's ensure there is no nasty corner case :)
Edit: I thought this was a bug, but in fact support for services
aren't implemented yet in act, so for those shouting BUMP please consider contributing instead if you can! ๐
@Systho A small reproduction is:
- Create
.github/workflows/repro.yml
name: "Reproduction"
on:
push:
jobs:
repro:
name: Reproduction of failing Services interpolation
runs-on: ubuntu-latest
services:
postgres:
image: postgres:12
env:
POSTGRES_USER: runner
POSTGRES_PASSWORD: mysecretdbpass
POSTGRES_DB: mydb
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: Echo the Postgres service ID / Network / Ports
run: |
echo "id: ${{ job.services.postgres.id }}"
echo "network: ${{ job.services.postgres.network }}"
echo "ports: ${{ job.services.postgres.ports }}"
- Run
act "push" --job "repro"
BUMP
BUMP
Issue is stale and will be closed in 14 days unless there is new activity
The bot closing issues after 14 days is pretty aggressive. :/
(I too have this issue locally. Works on GitHub)
Services were drafted in #638 but author stopped responding, it works but it also breaks easily thus it wasn't merged
Notification for people subscribed to this thread, please see latest PR mentioned.
artefacts: https://github.com/nektos/act/actions/runs/1118549374
I added the following steps to my workflow in order to get the actions for my Rails app running locally:
# Install local deps if this action is being run locally
- name: Install local dependencies
if: ${{ env.ACT }}
run: |
npm i -g yarn
sudo apt-get update
sudo apt-get -yqq install libgconf-2-4 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm-dev libnss3-dev libxss-dev libasound2 libxshmfence-dev postgresql postgresql-contrib redis-server
- name: Boot local dependencies
if: ${{ env.ACT }}
run: |
sudo service postgresql start
sudo service redis-server start
- name: Configure local dependencies
if: ${{ env.ACT }}
run: |
sudo -u postgres psql -U postgres -d postgres -c "alter user postgres with password 'password';"
It would be great if the readme mentioned that services
isn't supported.
I added the following steps to my workflow in order to get the actions for my Rails app running locally:
# Install local deps if this action is being run locally - name: Install local dependencies if: ${{ env.ACT }} run: | npm i -g yarn sudo apt-get update sudo apt-get -yqq install libgconf-2-4 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm-dev libnss3-dev libxss-dev libasound2 libxshmfence-dev postgresql postgresql-contrib redis-server - name: Boot local dependencies if: ${{ env.ACT }} run: | sudo service postgresql start sudo service redis-server start - name: Configure local dependencies if: ${{ env.ACT }} run: | sudo -u postgres psql -U postgres -d postgres -c "alter user postgres with password 'password';"
thanks for providing this workaround. but installing everything every time is quite annoying, is any way to make act connect host service? e.g make act connect PostgreSQL that runs in the host.
You can probably use host.docker.internal
on osx.
Getting this working would be AMAZING - our company heavily uses GitHub actions and act (mostly for debugging - makes it a breeze), but getting services running locally would dramatically cut our build times (as they could be done locally) and make debugging complex actions possible.
thanks for providing this workaround. but installing everything every time is quite annoying, is any way to make act connect host service? e.g make act connect PostgreSQL that runs in the host.
Yea it is annoying, but connecting to host will likely restrict you to only 1 runner. Probably makes more sense to have database as part of the image, but I'm still researching how that can be done, i.e. where are they pulling unbuntu-latest
from
+1
@catthehacker Are you aware of any active development efforts? Last I've seen is #775 and would love to help get it over the finish line
This is finished in a fork https://gitea.com/gitea/act.
Maybe this can be backported by someone.
There aren't any active development efforts for this in nektos/act.