DEV Community

Moises
Moises

Posted on

2 2

My Blog Test with Actions

Context:

I wanted to create a new blog about React and NextJs, ensuring that if the tests didn't pass I wouldn't be able to make the margin. Hackathon only encouraged to start the project and studies

My Workflow

After using create-next-app, I configure eslint and add the script command in package.json with the linter and test commands

Submission Category:

DIY Deployments.

Yaml File or Link to Code

it's a simple yaml, but it helps me a lot

name: CI
# Controls when the action will run.
on:
  # Triggers the workflow on push or pull request events but only for the main branch
  pull_request:
    types: [ opened, synchronize ]

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  lint:
    name: Lint
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: '14.15.0'
      ##################################
      ##################################

      # Runs a single command using the runners shell
      - name: Node Version
        run: node -v
      - name: Install de dependencias
        run: yarn install
      - name: Roda o Linter!
        run: yarn lint
  unit_tests:
    name: Unit Tests
    runs-on: ubuntu-latest # The type of runner that the job will run on
    steps: # Steps represent a sequence of tasks that will be executed as part of the job
      # [Pre Build-step]
      - uses: actions/checkout@v2 ## Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/setup-node@v1
        with:
          node-version: '14.15.0'
      - name: Get yarn cache directory path
        id: yarn-cache-dir-path
        run: echo "::set-output name=dir::$(yarn cache dir)"
      - uses: actions/cache@v2
        with:
          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
      # ####################

      # Commands that will run:
      - name: Install Packages
        run: yarn --prefer-offline

      - name: Run Unit Tests
        run: yarn test
Enter fullscreen mode Exit fullscreen mode

Additional Resources / Info

After that, if you want the merger to be done, only if they pass, just go to the repository settings, then to the option branches > add rule
Once here choose the option Require status checks to pass before merging. For safety I also set the Require branches to be up to date before merging option.
And finally, just type the name of the work you want to run in my case Lint and Unit Tests.

Conclusion

It's a simple process but it has helped me a lot to get started with github actions and understand other workflows

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay