Good work Good People, It’s not just a tagline

I have been working in rtCamp since long time, those who have been following my blog may already be aware about it. rtCamp surprises me every now and then. rtCamp is known for it’s good work so I don’t need to talk about it. 

Here I am gonna talk about Good People. The whole world is going through a tough time, Corona Pandemic has impacted the Global economy. 

I am seeing so many companies are deducting the salary, or even firing their employees, few companies are doing because they are having hard time in coping with this, few are just taking advantage of this situation and doing this on the name of it. That’s so not fair to their employee’s hard work.

I am blessed to be working with Good People, good company.

Our team working remotely

We recently had appraisals, and many of us wrote in our appraisal forms that “We don’t mind skipping this year appraisal if the company is having a tough time” but to our surprise, we all got appraisals and that too expected ones. 

There are many things about rtCamp that make it different from other companies. Few things:

  1. Gives us proper work life balance without pushing us to work on weekends or extra hours. 
  2. Always stands with employees for them in their tough time
  3. We can take leave for anything either it’s meeting your girlfriend or boyfriend or anything else, we don’t need to lie 

On the other note, everyone wonders why I sing so much about my company, just to be clear because I can’t stop myself and my company deserves it.

And rtCamp is always hiring even when others are downsizing so join us.   

 

Run your Codeception Test cases with Github actions

It’s been more than a year since Github actions came in action. Github action is a way for developers to automate workflows directly from their repositories.

In this article, I will be explaining about Automating the process of running your codeception test cases using Github action.

Prerequisite

I am assuming you already know codeception and already have your codeception test cases in place. You don’t need to do anything to enable Github actions, it’s by default enabled for all repo. You just need to add a workflow.

Github Actions

Creating your first workflow

You should create a file in the path “.github/workflows/test.yml”. Either you can create manually or click on Actions tab. If this is your first workflow screen would look like below, select the PHP workflow

Choose the file name for example test.yml

Let’s discuss the workflow code. To run codeception test cases, you file should have following code

name: Run Codeception test cases

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: Install dependencies
      run:  composer install 
      
    - name: Run chromedriver
      run:  nohup $CHROMEWEBDRIVER/chromedriver --url-base=/wd/hub /dev/null 2>&1 &
       
    - name: Run test cases
      run:  php vendor/bin/codecept run acceptance --steps
  1. Name: It’s the name of workflow
  2. on: The action that will cause the workflow to run.
  3. jobs: A list of all the jobs that your workflow will execute.
  4. run: It tells Github actions to run mentioned command

The above workflow will use ubuntu latest image. Below is the explanation of every command used in Workflow

  1. uses: actions/checkout@v2: Uses github checkout action to clone the code
  2. composer install : Install composer dependecies
  3. nohup $CHROMEWEBDRIVER/chromedriver –url-base=/wd/hub /dev/null 2&: nohup is used to keep chromedriver running in background. $CHROMEWEBDRIVER variable points to Chromedriver directory, to execute the chromedriver the full path is $CHROMEWEBDRIVER/chromedriver
  4. php vendor/bin/codecept run acceptance –steps: To run the codeception test cases

If you have created Workflow from Github directly then need to commit from here only. On the right side, click on Start Commit and Commit new file.

And that’s it we are done. As we mentioned “on:push” so this will be running on every push to repo, you can also specify the branch. To know more about Workflow syntax, read Github Actions Docs

You can see the sample code here

In case you are still using CircleCI, here you can read my last article about Running codeception functional test cases with CircleCI

Happy Testing!!

 

 

 

When you love baby wearing

babywearing-kashvi-mumma

Here we are traveling with our favourite carrier 😍😍😍😍. I love baby wearing, look at us we both are very comfortable in this.

If you are traveling with baby (infant or toddler), carrier makes your travelling so easy.

This makes you hand free and you can carry other luggage. .
Helps in boosting oxytocin ( love Hormone) 🙈 when having physical contact with baby, promotes bonding between you and baby

How one should choose baby carrier?

There are many brands available in market for carriers but look for few things before buying one.

🌼 Ergonomic carrier: why ergonomic, ergonomic carrier distribute the child’s weight evenly and comfortably for the wearer while giving good support to the child. This would prevent back pain that you may have if you use normal carriers available in market

🌼 Baby wearing libraries: In most of the metro cities, these libraries are available so go there and try some carrier before buying. They give you carrier on rent .
🌼 Decide how long you wanna use, buy accordingly. If you want to use it for toddlers, choose one which can accommodate higher weight

🌼 Positioning: In which position you are comfortable when wearing baby.

The one I am wearing is from @kolkolbabycarrier, it’s awesome, ergonomic, lightweight, made of lightweight handwoven cotton fabric, can be used up to 20 kg weight. It’s fabric makes it perfect choice for summers.

#momchoice #babywearing #momblogger #motherblogger #indianmomblogger #indianmotherblogger #delhimom #delhimomtribe #delhimomblogger #kashvisrivastava #momforum #parenting #mombelike #parentingtips

View this post on Instagram

Here we are traveling with our favorite carrier 😍😍😍😍. I love baby wearing, look at us we both are very comfortable in this. . If you are traveling with baby (infant or toddler), carrier makes your travelling so easy. . This makes you hand free and you can carry other luggage. . Helps in boosting oxytocin ( love Hormone) 🙈 when having physical contact with baby, promotes bonding between you and baby . How one should choose baby carrier? . There are many brands available in market for carriers but look for few things before buying one. . 🌼 Ergonomic carrier: why ergonomic, ergonomic carrier distribute the child’s weight evenly and comfortably for the wearer while giving good support to the child. This would prevent back pain that you may have if you use normal carriers available in market . 🌼 Baby wearing libraries: In most of the metro cities, these libraries are available so go there and try some carrier before buying. They give you carrier on rent . 🌼 Decide how long you wanna use, buy accordingly. If you want to use it for toddlers, choose one which can accommodate higher weight . 🌼 Positioning: In which position you are comfortable when wearing baby. . The one I am wearing is from @kolkolbabycarrier, it's awesome, ergonomic, lightweight, made of lightweight handwoven cotton fabric, can be used up to 20 kg weight. It's fabric makes it perfect choice for summers. . #momchoice #babywearing #momblogger #motherblogger #indianmomblogger #indianmotherblogger #delhimom #delhimomtribe #delhimomblogger #kashvisrivastava #momforum #parenting #mombelike #parentingtips

A post shared by Juhi Saxena (@mommyingwork) on

Happy breastfeeding week 😍😍

We are celebrating breastfeeding week (1st Aug -7 Aug), I was looking for a pic to post for sharing breastfeeding journey.

Then I found this @happibofoods post and saw they asked for first photo with your baby. And here it is 😘😘

In this pic I am with my mother and daughter, this was my first pic with my baby.

After 13 hours of labour pain, this bundle of joy was latching on me soon after coming out 😍😍, isn’t it amazing seeing them latch 😍😍 I was amazed to see how she knows how to latch when doctors put her on me.

Very next day she was diagnosed with Jaundice, very common in new born babies and she got shifted to NICU. .

Doctor asked me to feed her every 2 hour and I followed this very religiously 😍😍.

I wasn’t able to walk properly with stiches but still I used to go every two hour to NICU sometimes alone sometimes my husband @rishusri2004 used to drop me there. This was the wonderful feeling going there and feeding her.

My baby is 10 months old and I am still breastfeeding her. She was exclusively breastfed baby till 6 months. .

There are uncountable benefits of  breastfeeding.

🌼 The most important the bond baby and mother share .

🌼 Baby feels so safe .

🌼 Increases immunity, it’s like cure to every illness baby can have. .

🌼 Fully nutritious it has all the required nutritions for baby .

🌼 Helps in loosing weight, mother’s weight 🙈

🌼 Lower risk of depression .

🌼 Lower risk of breast cancer

Stop me I can go on with the benefits of breast feeding

Enjoy breastfeeding, don’t be shy feeding in public. This is nothing to be ashamed of, it’s something you should be proud of 😍😍 .

Happy breastfeeding week to every parents, yeah to father as well. Though a mother breastfeed her baby but without your partner support it’s not possible. .

Soon people start telling you that your feed is not enough for baby but if your husband supports you, you can continue with breastfeeding, mine did.

When you are done with nursing,your husband can make baby burp and sleep

Love you my husband for doing all this 🥰🥰

https://www.instagram.com/p/B0yxv-nF5lR/?igshid=149zvhtlcsyxx

Happiness is having your baby 24×7 by your side even when you are working

Kashvi-with-her-mother-juhi

Shocked 😱,you might be wondering how’s this even possible? Yes it is possible, I am taking care of my baby 24×7 without compromising my career goals.  I recently got blessed with a beautiful angel and she turned 6 months old. So many responsibilities comes with motherhood and many moms does not feel like going office leaving their baby at home. Some goes to office and keep worrying about baby at home, sometimes it converts in guilt.  Thanks to my company, I didn’t have to face this trauma.

It’s been 5 years working in rtCamp and almost 3 years working from home. Working from home turned out to be real bliss when I got pregnant. From the 8th month of pregnancy I was on maternity leaves for 6 months. I joined my office back when my baby was about to be turned 5 months old, I extended my leaves for 2 weeks I think.

Today is my work anniversary and recently rtCamp turned 10, I am glad I am part of half of the journey of rtCamp. I am not the only one who has been working since this long, there are many who have been working from the beginning of rtCamp decade long journey.

Work from home made my motherhood journey more beautiful 😘😘. I can feed my baby whenever my baby is hungry, I can play with her whenever I want, I can see her growing every second, what else a mother can desire. Working from home need a disciplined schedule so you don’t mess up your personal life, me, my company, my in-laws do it well together 🤗.  My in-laws are there to take care of Kashvi (my DD), when I am working.

What do you think about Work Form Home culture, did you also find it awesome. Share your experience in comment..

Do you want to work in such an awesome organisation, apply here 

Happy 5th work anniversary to me.

Running codeception functional test cases with CircleCI

Recently GitHub started offering private repositories free, earlier it used to be paid. So this is how CircleCI came in picture for us.  Travis CI can also be used with private repos but that again is the paid thing. In this post I am going to tell how CircleCI can be integrated with GitHub.

No one likes to do repeated things manually either it’s deployment process or testing, repeated things must be automated.

Why automation testing is our need

  1. No need to tell this reason it saves the time and efforts
  2. Ensures not a single test case goes untested
  3. Improves the product quality
  4. Full coverage of test cases
  5. Can be tested frequently

For automating WordPress functional test cases we use Codeception , but the script does not make sense until the running script is automated.  For this we need continuous integration.

What is continuous integration?

Continuous integration is a process where developers integrate code into a shared repository almost daily. Each commit is verified by an automated build which build the code, runs the tests and deploy the code automatically. There are many CI tools available in market Travis, Jenkins, CircleCI and many more.

Integration with CircleCI

Now let’s see how Codeception test script can be run automatically on CircleCI, few prerequisites we should have before integrating:

  1. Code already hosted on GitHub private repo
  2. Already signed up on CircleCI with GitHub
  3. Already have codeception test script

I will be using blank private repo with test script only for demo purpose.

The project structure looks like this

acceptance.suit.yml

This is how my acceptance.suit.yml looks like

# Codeception Test Suite Configuration
#
# Suite for acceptance tests.
# Perform tests in browser using the WebDriver or PhpBrowser.
# If you need both WebDriver and PHPBrowser tests - create a separate suite.

class_name: AcceptanceTester
modules:
enabled:
- \Helper\Acceptance
- WPWebDriver
config:
WPWebDriver:
port: 4444
browser: chrome
url: 'https://sevencoloursblog.wordpress.com/'
adminUsername: ''
adminPassword: ''
adminPath: '/wp-admin'
window_size: 1280x900

Setup project on CircleCI

Just clicking on Add Projects and Setup project respective project will take you to the next step for setting up your project

Now in the next step just choose the option to generate sample.yml. And put the content of this file into .circleci/config.yml.

Now we need to update config.yml according to our project.

The first thing we need to update is composer install command, as our composor.json is not on root, it’s in codeception directory so first navigate to codeception directory the run composor install command . You might try this

- run: cd codeception/
- run: composer install -n --prefer-dist

But this wouldn’t work as each separate command is starting in a new process. So if you want to change directory and run the subsequent command in same directory then you would have to use multi-line YAML to include multiple lines in the same “command” in circle.yml like this

- run:
Command: |
pwd
cd codeception/
composer install -n --prefer-dist

Now you need to install Selenium driver and chrome driver and need to run selenium server as well

- run: mkdir test-reports
- run:
name: Download Selenium
command: curl -O http://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar
- run:
name: Download Chrome Driver
command: curl -O https://chromedriver.storage.googleapis.com/73.0.3683.20/chromedriver_linux64.zip

- run:
name: Extract Chrome Zip
command: jar xf chromedriver_linux64.zip

- run:
name: Start Selenium
command: java -jar selenium-server-standalone-3.141.59.jar -log test-reports/selenium.log
background: true

- run: sleep 10

You might have noticed `sleep` command, if this command would have not been used then you might face the error `The step was cancelled`

Now to run the test too you would need to navigate `codeception` directory

# run tests with phpunit or codecept
#- run: ./vendor/bin/phpunit
- run:
Command: |
pwd
cd codeception/
pwd
./vendor/bin/codecept build
./vendor/bin/codecept run

Here is the full config.yml

# PHP CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-php/ for more details
#
version: 2
jobs:
build:
docker:
# Specify the version you desire here
- image: circleci/php:7.1-node-browsers

# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
# Using the RAM variation mitigates I/O contention
# for database intensive operations.
# - image: circleci/mysql:5.7-ram
#
# - image: redis:2.8.19

steps:
- checkout

- run: sudo apt update # PHP CircleCI 2.0 Configuration File# PHP CircleCI 2.0 Configuration File sudo apt install zlib1g-dev libsqlite3-dev
- run: sudo docker-php-ext-install zip
- run: sudo php -v
- run: sudo apt-get install -y libpng-dev
- run:
name: Install PHP Extensions
command: sudo docker-php-ext-install gd

# Download and cache dependencies
- restore_cache:
keys:
# "composer.lock" can be used if it is committed to the repo
- v1-dependencies-{{ checksum "composer.json" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run:
Command: |
pwd
cd codeception/
composer install -n --prefer-dist

- save_cache:
key: v1-dependencies-{{ checksum "composer.json" }}
paths:
- ./vendor
- run: yarn install

- run: mkdir test-reports
- run:
name: Download Selenium
command: curl -O http://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar
- run:
name: Download Chrome Driver
command: curl -O https://chromedriver.storage.googleapis.com/73.0.3683.20/chromedriver_linux64.zip

- run:
name: Extract Chrome Zip
command: jar xf chromedriver_linux64.zip

- run:
name: Start Selenium
command: java -jar selenium-server-standalone-3.141.59.jar -log test-reports/selenium.log
background: true

- run: sleep 10

# run tests with phpunit or codecept
#- run: ./vendor/bin/phpunit
- run:
Command: |
pwd
cd codeception/
pwd
./vendor/bin/codecept build
./vendor/bin/codecept run

Commit config.yml to your project and go back to CircleCI and click on “Start Building” and hurray it’s done.

Calling your baby by bad names, say it a big no 

I have seen people calling their babies by names like my Little monster, brat, duffer, many more.

Off course parents call these name in love, they call them as a notion of love “but” did they think that how it’s gonna effect baby behavior, what impact it’s gonna leave on baby character. 

Ever wondered what a child gonna feel????

 Calling your baby by bad names is the worst thing that you can do with your sweet little baby.

I find very hard time when I listen parents calling babies by bad name. 

I heard people saying that baby is just an unknown, innocent, clueless baby so it does not matter what you say to them. I mean really it’s their explanation to call a baby by such names ☹️☹️ ?  And if baby is innocent why to call them naughty, does it show more love or calling sweet, innocent shows less love?

 In my prenatal phase I learned that parenting starts from womb. Everyone knows that “Abhimanyu wali story”, don’t get me started on that.

So even if when baby is in womb whatever we do, talk leaves impression on the baby.

Few reasons you shouldn’t call them by bad name:

  1. Impacts personality: If we go by astrology, in our Hindu religion we choose name by zodiac sign and look for a meaningful name because we believe name makes the person character and changes the future. Psychology says calling someone by a name again and again influences his personality.
  2. Teaching wrong vocabulary: When you call them by bad names, what example you are setting up. When they will talk bad words how you would tell them not to use these.
  3. Learn to call people by bad names: Children learn by what they see what they listen. They wouldn’t think before calling someone by bad names.
  4. Perspective of themselves: By calling the bad names we give them perspective of themselves. They are precious treat them as such. I am not saying you don’t love them but calling by bad name is not love. Even if they have done something wrong tell them their behavior is wrong and encourage them to improve. But “DON’T CALL THEM BY BAD NAME”

    Parenting differs from person to person this is my way, my opinion. Leave your comments if you don’t agree with me and even if you have same views, would love to hear.