Skip to content

feat: projects integration #3903

feat: projects integration

feat: projects integration #3903

Workflow file for this run

name: Build binaries
on:
pull_request:
push:
branches:
- "master"
- "dev"
tags:
- "v*"
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
name: Build binary packages
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
with:
fetch-depth: 0
# Check https://github.com/livepeer/go-livepeer/pull/1891
# for ref value discussion
ref: ${{ github.event.pull_request.head.sha }}
- uses: actions/setup-node@v3
with:
node-version: "18"
cache: "yarn"
- name: Tags
id: tags
uses: livepeer/action-gh-release-tags@latest
- name: restore lerna
id: cache-lerna
uses: actions/cache@v3
with:
path: "**/node_modules"
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
- name: yarn install
run: yarn install --frozen-lockfile --silent
- name: build api server
# I want to do --parallel here, but the binary downloads conflict with each other
run: |
echo RELEASE_PATH="${GITHUB_WORKSPACE}/releases" >> "${GITHUB_ENV}"
yarn run esbuild
- name: Rename and move built binaries
run: |
mkdir -p "${RELEASE_PATH}"
cd ./packages/api/dist-esbuild
tar -czvf "${RELEASE_PATH}/livepeer-api.tar.gz" livepeer-api
- name: Upload artifacts for cutting release
uses: actions/upload-artifact@v3
with:
name: release-artifacts
path: releases/
upload:
name: Upload artifacts to google bucket
if:
${{ github.event.pull_request.head.repo.full_name ==
github.event.pull_request.base.repo.full_name }}
permissions:
contents: "read"
id-token: "write"
runs-on: ubuntu-latest
needs:
- build
steps:
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: release-artifacts
path: releases/
- name: Generate sha256 checksum and gpg signatures for release artifacts
uses: livepeer/action-gh-checksum-and-gpg-sign@latest
with:
artifacts-dir: releases
release-name:
${{ github.ref_type == 'tag' && github.ref_name ||
github.event.pull_request.head.sha || github.sha }}
gpg-key: ${{ secrets.CI_GPG_SIGNING_KEY }}
gpg-key-passphrase: ${{ secrets.CI_GPG_SIGNING_PASSPHRASE }}
- name: Generate branch manifest
id: branch-manifest
uses: livepeer/branch-manifest-action@latest
with:
project-name: ${{ github.event.repository.name }}
platform: linux, darwin
- name: Authenticate to Google Cloud
id: auth
uses: google-github-actions/auth@v2
with:
workload_identity_provider:
${{ secrets.CI_GOOGLE_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ secrets.CI_GOOGLE_SERVICE_ACCOUNT }}
- name: Upload release archives to Google Cloud
id: upload-archives
uses: google-github-actions/upload-cloud-storage@v1
with:
path: "releases"
destination:
"build.livepeer.live/${{ github.event.repository.name }}/${{
(github.ref_type == 'tag' && github.ref_name) ||
github.event.pull_request.head.sha || github.sha }}"
parent: false
- name: Upload branch manifest file
id: upload-manifest
uses: google-github-actions/upload-cloud-storage@v1
with:
path: ${{ steps.branch-manifest.outputs.manifest-file }}
destination:
"build.livepeer.live/${{ github.event.repository.name }}/"
parent: false
- name: Notify new build upload
run: curl -X POST https://holy-bread-207a.livepeer.workers.dev