You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Hydro/.github/workflows/build.yml

131 lines
3.9 KiB
YAML

name: CI
on:
- push
- pull_request
env:
CI: true
YARN_ENABLE_IMMUTABLE_INSTALLS: 'false'
jobs:
build:
runs-on: ubuntu-latest
env:
4 years ago
LICENSE_KEY: ${{ secrets.MAXMIND_KEY }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
steps:
- name: Check out
uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 2
- name: Set up Node
uses: actions/setup-node@v3
4 years ago
with:
node-version: 16.x
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn config get cacheFolder)"
- uses: actions/cache@v3
id: yarn-cache
with:
path: |
${{ steps.yarn-cache-dir-path.outputs.dir }}
yarn.lock
.cache
**/tsconfig.tsbuildinfo
2 years ago
key: cache-${{ github.ref }}-${{ github.sha }}
restore-keys: |
2 years ago
cache-${{ github.ref }}-
cache-
- name: Config And Install
3 years ago
run: |
[[ ! -z "${{secrets.NPM_TOKEN}}" ]] && echo "npmAuthToken: ${{secrets.NPM_TOKEN}}" >> .yarnrc.yml
git config --global user.name undefined
git config --global user.email i@undefined.moe
yarn
- name: Get specific changed files
id: ui-changed-files
uses: tj-actions/changed-files@v23.1
with:
files: |
/package.json
.eslint*
packages/ui-default/**
packages/utils/**
.github/workflows/**
- name: Build And Lint
run: |
if [[ ${{ steps.ui-changed-files.outputs.any_changed }} == true ]] || [[ $(npm info @hydrooj/ui-default version) != $(node -e 'console.log(require("./packages/ui-default/package.json").version)') ]]
then
2 years ago
yarn build:ui:gulp
parallel --tty -j+0 yarn ::: lint:ci lint:ui:ci build build:ui:production:webpack test
else
parallel --tty -j+0 yarn ::: lint:ci build test
fi
env:
PT_PROJECT_TOKEN: ${{ secrets.PT_PROJECT_TOKEN }}
- name: Publish
if: ${{ github.event_name == 'push' }}
run: node build/publish.js
# - name: Benchmark
# run: yarn benchmark
# - name: Benchmark result
# uses: benchmark-action/github-action-benchmark@v1
# with:
# name: Benchmark
# tool: customBiggerIsBetter
# output-file-path: benchmark.json
3 years ago
# web:
# needs: build
# permissions:
# packages: write
# contents: read
# runs-on: ubuntu-latest
# if: ${{ github.event_name == 'push' }}
# steps:
# - name: Check out
# uses: actions/checkout@v2
# with:
# submodules: recursive
# - name: Log in to GitHub Docker Registry
# uses: docker/login-action@v1
# with:
# registry: docker.pkg.github.com
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
# - name: Docker:Web
# uses: docker/build-push-action@v2
# with:
# push: true
# context: ./install/docker/backend
# tags: |
# docker.pkg.github.com/hydro-dev/web:${{ github.sha }}
# docker.pkg.github.com/hydro-dev/web:${{ github.ref }}
# judge:
# needs: build
# if: ${{ github.event_name == 'push' }}
# permissions:
# packages: write
# contents: read
# runs-on: ubuntu-latest
# steps:
# - name: Check out
# uses: actions/checkout@v2
# with:
# submodules: recursive
# - name: Log in to GitHub Docker Registry
# uses: docker/login-action@v1
# with:
# registry: docker.pkg.github.com
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
# - name: Docker:Judge
# uses: docker/build-push-action@v2
# with:
# push: true
# context: ./install/docker/judge
# tags: |
# docker.pkg.github.com/hydro-dev/judge:${{ github.sha }}
# docker.pkg.github.com/hydro-dev/judge:${{ github.ref }}