mirror of
https://github.com/transloadit/uppy.git
synced 2026-01-22 18:16:26 +00:00
This triggers way too often, which is not needed. Especially pushing to DockerHub is very unnecessary whenever `yarn.lock` changes.
93 lines
3.1 KiB
YAML
93 lines
3.1 KiB
YAML
# N.B.: This won't run on releases because of
|
|
# https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow.
|
|
# However, we also have a companion deploy that's part of the release.yml workflow.
|
|
name: Companion Edge Deploy
|
|
|
|
on:
|
|
push:
|
|
branches: ['main']
|
|
paths:
|
|
- 'packages/@uppy/companion/**'
|
|
- '.github/workflows/companion-deploy.yml'
|
|
|
|
env:
|
|
YARN_ENABLE_GLOBAL_CACHE: false
|
|
|
|
jobs:
|
|
npm:
|
|
name: Generate npm tarball
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v6
|
|
- name: Set SHA commit in version
|
|
run:
|
|
(cd packages/@uppy/companion && node -e 'const
|
|
pkg=require("./package.json");pkg.version+="+${{ github.sha
|
|
}}";fs.writeFileSync("package.json",JSON.stringify(pkg, undefined,
|
|
2)+"\n")')
|
|
- name: Create Companion tarball
|
|
run:
|
|
corepack yarn workspace @uppy/companion pack --install-if-needed -o
|
|
/tmp/companion-${{ github.sha }}.tar.gz
|
|
- name: Upload artifact
|
|
if: success()
|
|
uses: actions/upload-artifact@v6
|
|
with:
|
|
name: companion-${{ github.sha }}.tar.gz
|
|
path: /tmp/companion-${{ github.sha }}.tar.gz
|
|
|
|
docker:
|
|
name: DockerHub
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
DOCKER_BUILDKIT: 0
|
|
COMPOSE_DOCKER_CLI_BUILD: 0
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v6
|
|
- name: Docker meta
|
|
id: docker_meta
|
|
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
|
|
with:
|
|
images: transloadit/companion
|
|
tags: |
|
|
type=edge
|
|
type=raw,value=latest,enable=false
|
|
- uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
|
|
- uses: docker/setup-buildx-action@v3
|
|
- name: Log in to DockerHub
|
|
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
|
with:
|
|
username: ${{secrets.DOCKER_USERNAME}}
|
|
password: ${{secrets.DOCKER_PASSWORD}}
|
|
- name: Build and push
|
|
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
|
with:
|
|
push: true
|
|
context: .
|
|
platforms: linux/amd64,linux/arm64
|
|
file: Dockerfile
|
|
tags: ${{ steps.docker_meta.outputs.tags }}
|
|
labels: ${{ steps.docker_meta.outputs.labels }}
|
|
|
|
heroku:
|
|
name: Heroku
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v6
|
|
- name: Alter dockerfile
|
|
run: |
|
|
sed -i 's/^EXPOSE 3020$/EXPOSE $PORT/g' Dockerfile
|
|
# https://github.com/AkhileshNS/heroku-deploy/issues/188
|
|
- name: Install Heroku CLI
|
|
run: |
|
|
curl https://cli-assets.heroku.com/install.sh | sh
|
|
- name: Deploy to heroku
|
|
uses: akhileshns/heroku-deploy@e3eb99d45a8e2ec5dca08735e089607befa4bf28 # v3.14.15
|
|
with:
|
|
heroku_api_key: ${{secrets.HEROKU_API_KEY}}
|
|
heroku_app_name: companion-demo
|
|
heroku_email: ${{secrets.HEROKU_EMAIL}}
|
|
usedocker: true
|