Skip to content

v0.9.0

v0.9.0 #98

Workflow file for this run

name: Release
on:
release:
types: [published]
jobs:
build:
name: Build
runs-on: ubuntu-20.04
permissions:
packages: write
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Cache node modules
id: cache
uses: actions/cache@v3
with:
path: |
node_modules
key: cache-node-modules-${{ hashFiles('**/package-lock.json') }}
- uses: actions/setup-node@v3
with:
node-version: 18.x
registry-url: https://registry.npmjs.org/
- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: npm ci
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build
run: |
npx nx graphql:generate --skip-nx-cache
npx nx run-many --target=build --all --parallel --maxParallel=3
- name: Upload dist artifact
uses: actions/upload-artifact@v2
with:
name: dist-artifact
path: ./dist
dockerize:
name: Dockerize
needs: build
runs-on: ubuntu-20.04
strategy:
matrix:
project: ["server", "console", "proxy"]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Download 'dist' folder
uses: actions/download-artifact@v2
with:
name: dist-artifact
path: ./dist
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Docker metadata
id: meta
uses: docker/metadata-action@v4
with:
images: |
ghcr.io/pezzolabs/pezzo/${{ matrix.project }}
tags: |
type=semver,pattern={{version}}
type=sha,format=short
type=raw,value=latest,enable=${{ contains(github.ref, 'refs/tags/v') && !contains(github.ref, 'alpha') }}
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
file: ./apps/${{ matrix.project }}/Dockerfile
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/amd64
push: true
provenance: false
npm_publish:
name: NPM Publish
needs: build
runs-on: ubuntu-20.04
strategy:
matrix:
library: ["client"]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Download 'dist' folder
uses: actions/download-artifact@v2
with:
name: dist-artifact
path: ./dist
- uses: actions/setup-node@v3
with:
node-version: 18.x
registry-url: https://registry.npmjs.org/
- name: Check package version
id: cpv
uses: PostHog/check-package-version@v2
with:
path: ./dist/libs/${{ matrix.library }}
- name: Echo versions
run: |
echo "Committed version: ${{ steps.cpv.outputs.committed-version }}"
echo "Published version: ${{ steps.cpv.outputs.published-version }}"
- name: NPM Publish (@pezzo/${{ matrix.library }})
if: steps.cpv.outputs.is-new-version == 'true'
run: |
version=$(node -p "require('./package.json').version")
if [[ $version == *"alpha"* ]]; then
npm publish --access public --tag alpha
else
npm publish --access public
fi
working-directory: dist/libs/${{ matrix.library }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}