Release Packages #17
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release Packages | |
on: | |
workflow_dispatch: | |
release: | |
types: [published] | |
env: | |
CARGO_TERM_COLOR: always | |
REGISTRY: ghcr.io | |
IMAGE_OWNER: ferrohd | |
IMAGE_NAME: marecchia-tracker | |
jobs: | |
rs-toolchain: | |
name: ⚒️ Toolchain | |
runs-on: ubuntu-latest | |
steps: | |
- name: ⚒️ Toolchain Info | |
run: | | |
cargo --version --verbose | |
rustc --version | |
cargo clippy --version | |
rs-backend: | |
name: 🛥️ Marecchia Tracker Docker Image | |
needs: rs-toolchain | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
- name: 🛒 Checkout | |
uses: actions/checkout@v4 | |
- name: 🎭 Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: 🪛 Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: 👤 Log in to the GitHub Container registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: 🗄️ Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }} | |
tags: | | |
latest | |
- name: 👷 Build and push Docker image | |
uses: docker/build-push-action@v5 | |
with: | |
platforms: linux/amd64, linux/arm64 | |
context: "{{defaultContext}}:crates" | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
marecchia-core: | |
name: 📦 @marecchia/marecchia-core Release | |
needs: rs-toolchain | |
runs-on: ubuntu-latest | |
steps: | |
- name: 🛒 Checkout | |
uses: actions/checkout@v4 | |
- name: 📦 Install wasm-pack | |
working-directory: crates | |
run: | | |
npm install -g wasm-pack | |
- name: 🎯 Install WASM Target | |
working-directory: crates | |
run: | | |
rustup target add wasm32-unknown-unknown | |
- name: 🔨 Build | |
working-directory: crates/marecchia-core | |
run: | | |
wasm-pack build --release --target web --scope marecchia | |
- name: 🪛 Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 'lts/*' | |
registry-url: 'https://registry.npmjs.org' | |
- name: 📦 Publish Package | |
uses: JS-DevTools/npm-publish@v3 | |
with: | |
token: ${{ secrets.NPM_TOKEN }} | |
package: ./crates/marecchia-core/pkg | |
access: public | |
- name: 💾 Save Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: marecchia-core | |
path: ./crates/marecchia-core/pkg | |
marecchia-libraries: | |
name: 📦 ${{ matrix.packages.name }} Release | |
runs-on: ubuntu-latest | |
needs: marecchia-core | |
strategy: | |
fail-fast: true | |
matrix: | |
packages: | |
- name: '@marecchia/hlsjs' | |
path: marecchia/hlsjs | |
steps: | |
- name: 🛒 Checkout | |
uses: actions/checkout@v4 | |
- name: 🔽 Get WASM Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: marecchia-core | |
path: ./crates/marecchia-core/pkg | |
- name: 🗑️ Delete Artifact | |
uses: geekyeggo/delete-artifact@v5 | |
with: | |
name: marecchia-core | |
- name: 🪛 Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 'lts/*' | |
registry-url: 'https://registry.npmjs.org' | |
- name: 📦 Install Dependencies | |
working-directory: ${{ matrix.packages.path }} | |
run: | | |
npm install | |
- name: 🛠️ Build ${{ matrix.packages.name }} | |
working-directory: ${{ matrix.packages.path }} | |
run: | | |
npm build | |
- name: 📦 Publish Package | |
uses: JS-DevTools/npm-publish@v3 | |
with: | |
token: ${{ secrets.NPM_TOKEN }} | |
package: ${{ matrix.packages.path }} | |
#- name: 🔼 Publish to NPM | |
# uses: JS-DevTools/npm-publish@v3 | |
# with: | |
# package: ./marecchia | |
# token: ${{ secrets.NPM_TOKEN }} |