Skip to content

deps(dev): bump @types/node from 20.17.10 to 20.17.11 #299

deps(dev): bump @types/node from 20.17.10 to 20.17.11

deps(dev): bump @types/node from 20.17.10 to 20.17.11 #299

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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
- name: Set up Node.js with Cache and Install
uses: ./.github/actions/install-dependencies
with:
node-version: '20.18.0'
- name: Fetch main branch and run commitlint
if: github.event_name == 'pull_request' && github.event.pull_request.user.login != 'dependabot[bot]'
run: |
git fetch origin main
npx commitlint --from=origin/main
- name: Run linters (eslint, markdownlint)
run: |
npm run eslint
npm run markdownlint
- name: Run Hadolint on Dockerfile
uses: hadolint/hadolint-action@54c9adbab1582c2ef04b2016b760714a4bfde3cf # v3.1.0
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@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Download build artifacts
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- 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@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Download build artifacts
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: build-artifacts
path: ./
- name: Set up QEMU for multi-arch
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3.2.0
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@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
# ----------
# Download and Organize Artifacts
# ----------
- name: Download Artifacts
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
- 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@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
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@6524bf65af31da8d45b59e8c27de4bd072b392f5 # v3.8.0
with:
install: true
- name: Log in to DockerHub
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
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@48aba3b46d1b1fec4febb7c5d0c644b249a11355 # v6.10.0
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@48aba3b46d1b1fec4febb7c5d0c644b249a11355 # v6.10.0
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