Skip to content

release

release #90

Workflow file for this run

name: CI
on:
push:
branches:
- main
tags: [v*]
paths-ignore:
- README.md
- CHANGELOG.md
- LICENSE
pull_request:
# Sequence of patterns matched against refs/heads
branches:
- main
paths-ignore:
- README.md
- CHANGELOG.md
- LICENSE
env:
IMAGE_NAME: 'controller'
jobs:
Build:
runs-on: ubuntu-22.04
permissions:
actions: write
checks: write
contents: write
deployments: write
id-token: write
issues: write
discussions: write
packages: write
pages: write
pull-requests: write
repository-projects: write
security-events: write
statuses: write
name: Preflight
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Replace values
shell: bash
env:
PAT: ${{ secrets.PAT }}
run: |
sed -i.back "s|PAT|${PAT}|g" .npmrc
- run: npm config set @datasance:registry https://npm.pkg.github.com/
- run: npm install --build-from-source --force
- run: npm run standard
- run: |
npm i -g better-npm-audit
npx better-npm-audit audit -p
Publish:
needs: [Build]
runs-on: ubuntu-22.04
permissions:
actions: write
checks: write
contents: write
deployments: write
id-token: write
issues: write
discussions: write
packages: write
pages: write
pull-requests: write
repository-projects: write
security-events: write
statuses: write
name: Publish Controller
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Replace values
shell: bash
env:
PAT: ${{ secrets.PAT }}
run: |
sed -i.back "s|PAT|${PAT}|g" .npmrc
- run: npm config set @datasance:registry https://npm.pkg.github.com/
- run: npm install --build-from-source --force
- name: npm version
id: package-version
uses: martinbeentjes/npm-get-version-action@v1.3.1
- name: package version
shell: bash
id: version
run: |
if [[ ${{ github.ref_name }} =~ ^v.* ]] ; then
echo "pkg_version=${{ steps.package-version.outputs.current-version}}" >> "${GITHUB_OUTPUT}"
else
echo "pkg_version=${{ steps.package-version.outputs.current-version}}-${{ github.run_number }}" >> "${GITHUB_OUTPUT}"
fi
- name: npm pack with version from package version
run: |
npm pack
npm publish --registry=https://npm.pkg.github.com/
- name: 'Get Previous tag'
id: previoustag
uses: "WyriHaximus/github-action-get-previous-tag@v1"
with:
fallback: 0.0.0
- name: Set image tag
shell: bash
id: tags
run: |
if [[ ${{ github.ref_name }} =~ ^v.* ]] ; then
VERSION=${{ github.ref_name }}
echo "VERSION=${VERSION:1}" >> "${GITHUB_OUTPUT}"
else
VERSION=${{ steps.previoustag.outputs.tag }}
echo "VERSION=${VERSION:1}-${{ github.run_number }}" >> "${GITHUB_OUTPUT}"
fi
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Github Container Registry
uses: docker/login-action@v2
with:
registry: "ghcr.io"
username: ${{ github.actor }}
password: ${{ secrets.PAT }}
- name: Build and Push to ghcr
uses: docker/build-push-action@v3
id: build_push_ghcr
with:
file: Dockerfile.dev
context: .
platforms: linux/amd64, linux/arm64
push: true
outputs: type=image,name=target,annotation-index.org.opencontainers.image.description=Controller
build-args: GITHUB_TOKEN=${{ secrets.PAT }}
tags: |
ghcr.io/datasance/${{ env.IMAGE_NAME }}:${{ steps.tags.outputs.VERSION }}
ghcr.io/datasance/${{ env.IMAGE_NAME }}:latest
ghcr.io/datasance/${{ env.IMAGE_NAME }}:main