Skip to content

🚀 Publish Package #54

🚀 Publish Package

🚀 Publish Package #54

Workflow file for this run

on:
workflow_dispatch:
inputs:
test:
type: boolean
description: Skip publishing step
push:
tags:
- "*"
name: 🚀 Publish Package
jobs:
build-x86_64:
runs-on: ubuntu-latest
steps:
- name: 📥 Checkout
uses: actions/checkout@v3
- name: 🏗️ Build Addon
uses: addnab/docker-run-action@4f65fabd2431ebc8d299f8e5a018d79a769ae185
with:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
options: -v ${{ github.workspace }}:/work --platform linux/amd64
image: ghcr.io/vencord/venmic-builder-x86_64:latest
registry: gcr.io
shell: bash
run: |
source /root/.bashrc
cd /work
pnpm install --ignore-scripts && pnpm run install
- name: ♻️ Upload Artifact
uses: actions/upload-artifact@v3
with:
name: addon-x86_64
path: build/Release
build-arm64:
runs-on: ubuntu-latest
steps:
- name: 📥 Checkout
uses: actions/checkout@v3
- name: 🤖 Setup Qemu
uses: docker/setup-qemu-action@v3
with:
platforms: "arm64"
- name: 🦥 Cache Dependencies
uses: actions/cache@v3
with:
key: venmic-arm-deps
path: build/_deps
- name: 🏗️ Build Addon
uses: addnab/docker-run-action@4f65fabd2431ebc8d299f8e5a018d79a769ae185
with:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
options: -v ${{ github.workspace }}:/work --platform linux/arm64
image: ghcr.io/vencord/venmic-builder-arm64:latest
registry: gcr.io
shell: bash
run: |
source /root/.bashrc
cd /work
pnpm install --ignore-scripts && pnpm run install
- name: ♻️ Upload Artifact
uses: actions/upload-artifact@v3
with:
name: addon-arm64
path: build/Release
publish:
needs: [build-arm64, build-x86_64]
runs-on: ubuntu-latest
container: fedora:38
steps:
- name: 📥 Checkout
uses: actions/checkout@v3
- name: 🛑 Check Tag
run: |
dnf install -y jq
pkg_version="v$(jq -r .version < package.json)"
if [[ "${{ github.ref_name }}" != "$pkg_version" ]]; then
echo "Tag ${{ github.ref_name }} does not match package.json version $pkg_version" >&2
exit 1
fi
- name: 🍃 Install Node
uses: actions/setup-node@v3
with:
node-version: 16
registry-url: "https://registry.npmjs.org"
- name: 🍃 Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8
run_install: false
- name: 🏗️ Setup Dependencies
run: pnpm install --ignore-scripts
- name: 📦 Download Build (x86_64)
uses: actions/download-artifact@v3
with:
name: addon-x86_64
path: build/Release
- name: 🛠️ Prepare Prebuilds (x86_64)
run: pnpm pkg-prebuilds-copy --baseDir build/Release --source venmic-addon.node --name=venmic-addon --strip --napi_version=7 --arch=x64
- name: 📦 Download Build (arm64)
uses: actions/download-artifact@v3
with:
name: addon-arm64
path: build/Release
- name: 🛠️ Prepare Prebuilds (arm64)
run: pnpm pkg-prebuilds-copy --baseDir build/Release --source venmic-addon.node --name=venmic-addon --strip --napi_version=7 --arch=arm64
- name: 🛒 Publish
if: "${{ github.event.inputs.test != 'true' }}"
run: pnpm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}