ZSCGR's picture
Upload folder using huggingface_hub
5ed446f verified
name: Publish
on:
push:
branches:
- "main"
tags:
- "v*"
workflow_dispatch:
inputs:
docker:
description: "Deploy to DockerHub"
required: true
type: boolean
default: false
deno:
description: "Deploy to deno"
required: true
type: boolean
default: false
jobs:
unit-test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: ['18.x', '19.x', '20.x', '21.x']
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- run: npm i
- run: npm run build:all
- run: npm test
test-docker:
runs-on: ubuntu-latest
needs: [unit-test]
steps:
- uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build docker image
uses: docker/build-push-action@v3
with:
load: true
push: false
tags: meting-api:latest
context: .
- name: Test Docker image
run: bash scripts/docker/test-docker.sh
env:
TAG: latest
- name: Export Docker image
run: docker save meting-api:latest | gzip -1cf > meting.tar.gz
- name: Upload Docker image
uses: actions/upload-artifact@v4
with:
name: meting.tar.gz
path: meting.tar.gz
retention-days: 1
upload-art:
needs: [test-docker]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- run: npm i
- run: npm run build:all
- uses: actions/upload-artifact@v4
with:
name: cloudflare-workers.js
path: dist/cloudflare-workers.js
retention-days: 1
- uses: actions/upload-artifact@v4
with:
name: deno.js
path: dist/deno.js
retention-days: 1
# deploy-to-deno:
# needs: [upload-art]
# if: ${{ inputs.deno || github.event_name == 'push' }}
# runs-on: ubuntu-latest
# permissions:
# id-token: write
# contents: read
# steps:
# - uses: actions/download-artifact@v3
# with:
# name: deno.js
# - name: Upload to Deno Deploy
# uses: denoland/deployctl@v1
# with:
# project: meting
# entrypoint: deno.js
release-docker:
needs: [test-docker]
if: ${{ inputs.docker || github.event_name == 'push' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ secrets.DOCKERHUB_USERNAME }}/meting-api
- name: Push docker image
uses: docker/build-push-action@v3
with:
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/meting-api:latest
${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
context: .