Skip to content

Release new version (#247) #123

Release new version (#247)

Release new version (#247) #123

Workflow file for this run

name: validate
on:
push:
branches:
- main
pull_request:
types:
- opened
- synchronize
- reopened
jobs:
validate:
name: Validate on Node ${{ matrix.node }} and ${{ matrix.os }}
if: github.event_name == 'push' && github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
strategy:
matrix:
node: ["18.x", "20.x", "22.x"]
os: [ubuntu-latest, windows-latest, macOS-latest]
runs-on: ${{ matrix.os }}
env:
CI: true
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- uses: pnpm/action-setup@v4
name: Install pnpm
id: pnpm-install
with:
run_install: true
- name: Check formatting and typing
run: pnpm check
- name: Run tests
run: pnpm test:ci
- name: Run build
run: pnpm build
docker:
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
needs: validate
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# Build only if not main branch
- name: Build
uses: docker/build-push-action@v5
if: github.ref != 'refs/heads/main'
with:
push: false
tags: labdigital/commercetools-mock-server:latest
# Build and push if main branch
- name: Build and push
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/main'
with:
push: true
tags: labdigital/commercetools-mock-server:latest
release:
timeout-minutes: 15
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
needs: validate
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- uses: pnpm/action-setup@v4
name: Install pnpm
id: pnpm-install
with:
run_install: true
- name: Run build
run: pnpm build
- name: Create and publish versions
uses: changesets/action@v1
with:
title: "Release new version"
commit: "update version"
publish: pnpm publish:ci
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}