Skip to content

Observe quiet field in configuration file #190

Observe quiet field in configuration file

Observe quiet field in configuration file #190

Workflow file for this run

name: CI Pipeline
on:
push:
branches:
- main
- beta
pull_request:
branches:
- '**'
jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js with Cache and Install
uses: ./.github/actions/install-dependencies
with:
node-version: '20.18.0'
- name: Run linter
run: npm run lint
- name: Run Hadolint on Dockerfile
uses: hadolint/[email protected]
with:
dockerfile: ./Dockerfile
- name: Run tests
run: npm run test:coverage
- name: Report coverage to Codacy
if: github.ref == 'refs/heads/main'
env:
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}
run: wget -qO - https://coverage.codacy.com/get.sh | bash -s -- report -r ./coverage/cobertura-coverage.xml
- name: Build the project
run: npm run build:cli
- name: Upload tests artifacts
uses: actions/upload-artifact@v4
with:
name: tests-artifacts
path: |
./dist
./bin
retention-days: 1
debug:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
needs: tests
strategy:
matrix:
node-version: [18, 20, 22, 23]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: tests-artifacts
path: ./
- name: Set up Node.js with Cache and Install
uses: ./.github/actions/install-dependencies
with:
node-version: '20.18.0'
- name: Run debug:bin
run: npm run debug:bin
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js with Cache and Install
uses: ./.github/actions/install-dependencies
with:
node-version: '20.18.0'
- name: Generate new version
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npx semantic-release --dry-run --no-ci
- name: Build the project
run: |
export VERSION=$(cat .VERSION)
npm run build
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: |
./dist
./bin
./pkg
retention-days: 7
build_sea:
runs-on: ubuntu-latest
needs:
- build
strategy:
matrix:
arch: [amd64, arm64]
os: [alpine, bullseye]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-artifacts
path: ./
- name: Set up QEMU for multi-arch
uses: docker/setup-qemu-action@v3
with:
platforms: linux/arm64
- name: Build SEA
run: |
docker run --rm --platform linux/${{ matrix.arch }} -v "$PWD":/app -w /app node:20.18.0-${{ matrix.os }} ./scripts/generate-sea.sh ./sea/dclint-${{ matrix.os }}-${{ matrix.arch }}
- name: Upload build SEA artifacts
uses: actions/upload-artifact@v4
with:
name: build-sea-artifacts-${{ matrix.os }}-${{ matrix.arch }}
path: |
./sea
retention-days: 7
release:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
needs:
- tests
- build
- build_sea
steps:
- name: Checkout code
uses: actions/checkout@v4
# ----------
# Download and Organize Artifacts
# ----------
- name: Download Artifacts
uses: actions/download-artifact@v4
- name: Organize downloaded artifacts
run: |
mv build-artifacts/* .
mkdir -p ./sea
for dir in build-sea-artifacts-*; do
mv "$dir/"* ./sea
done
# ----------
# Create npm release, tag, github release
# ----------
- name: Set up Node.js with Cache and Install
uses: ./.github/actions/install-dependencies
with:
node-version: '20.18.0'
- name: Run semantic-release
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npx semantic-release
- name: Upload release artifacts
uses: actions/upload-artifact@v4
with:
name: release-artifacts
path: |
./package.json
./package-lock.json
./CHANGELOG.md
retention-days: 1
# ----------
# Publishing Docker images
# ----------
- name: Get build arguments
id: vars
run: |
BUILD_DATE=$(date +%Y-%m-%dT%T%z)
BUILD_VERSION=$(awk -F\" '/"version":/ {print $4}' package.json)
BUILD_REVISION=$(git rev-parse --short HEAD)
echo "BUILD_DATE=$BUILD_DATE" >> $GITHUB_ENV
echo "BUILD_VERSION=$BUILD_VERSION" >> $GITHUB_ENV
echo "BUILD_REVISION=$BUILD_REVISION" >> $GITHUB_ENV
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
install: true
- name: Log in to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# Build and push the Alpine version
- name: Build and push Alpine version
uses: docker/build-push-action@v6
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/dclint:alpine
${{ secrets.DOCKERHUB_USERNAME }}/dclint:latest-alpine
${{ secrets.DOCKERHUB_USERNAME }}/dclint:${{ env.BUILD_VERSION }}-alpine
build-args: |
BUILD_DATE=${{ env.BUILD_DATE }}
BUILD_VERSION=${{ env.BUILD_VERSION }}
BUILD_REVISION=${{ env.BUILD_REVISION }}
target: alpine-version
cache-from: type=gha
cache-to: type=gha,mode=max
# Build and push the Scratch version
- name: Build and push Scratch version
uses: docker/build-push-action@v6
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/dclint:latest
${{ secrets.DOCKERHUB_USERNAME }}/dclint:${{ env.BUILD_VERSION }}
build-args: |
BUILD_DATE=${{ env.BUILD_DATE }}
BUILD_VERSION=${{ env.BUILD_VERSION }}
BUILD_REVISION=${{ env.BUILD_REVISION }}
target: scratch-version
cache-from: type=gha
cache-to: type=gha,mode=max