diff options
| author | TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com> | 2020-12-04 20:59:07 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-04 20:59:07 +0000 |
| commit | ca4408b343887581abd16b7f85b71f1abdb2d4e3 (patch) | |
| tree | 5a787892f910d25246c39fef4411b31166a4d493 /.github | |
| parent | 527f408f6a288a7e2f0df3e7bcac183f3d7ca4b9 (diff) | |
| parent | eb6d3d68a9ed880fe0e3e4b6404925d0f4a4c5ad (diff) | |
| download | invidious-ca4408b343887581abd16b7f85b71f1abdb2d4e3.tar.gz invidious-ca4408b343887581abd16b7f85b71f1abdb2d4e3.tar.bz2 invidious-ca4408b343887581abd16b7f85b71f1abdb2d4e3.zip | |
Merge pull request #1519 from saltycrys/github-actions-ci
Switch to GitHub Actions for CI
Diffstat (limited to '.github')
| -rw-r--r-- | .github/workflows/ci.yml | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..affa7337 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,88 @@ +name: Invidious CI + +on: + push: + branches: + - "master" + - "api-only" + pull_request: + branches: "*" + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + # - name: Find out latest Crystal version + # run: | + # crystal_latest=$(curl -ILs -o /dev/null -w %{url_effective} https://github.com/crystal-lang/crystal/releases/latest | grep -o '[^/]*$') + # echo "crystal_latest=$crystal_latest" >> $GITHUB_ENV + # echo $crystal_latest + # + # - name: Cache Crystal + # uses: actions/cache@v2 + # with: + # path: ./crystal-bin + # key: crystal-${{ env.crystal_latest }} + # + # - name: Add custom Crystal dir to path + # run: echo "./crystal-bin" >> $GITHUB_PATH + # + # - name: Find out installed Crystal version + # run: | + # if ! [ -x "$(command -v crystal)" ]; then + # crystal_installed="none" + # else + # crystal_installed=$(crystal version | grep Crystal | awk '{print $2}') + # fi + # echo "crystal_installed=$crystal_installed" >> $GITHUB_ENV + # echo $crystal_installed + + - name: Install Crystal + uses: oprypin/install-crystal@v1.2.4 + # if: env.crystal_installed != env.crystal_latest + # with: + # destination: ./crystal-bin + + - name: Cache Shards + uses: actions/cache@v2 + with: + path: ./lib + key: shards-${{ hashFiles('shard.lock') }} + + - name: Install Shards + run: | + if ! shards check; then + shards install + fi + + - name: Run tests + run: crystal spec + + - name: Run lint + run: | + if ! crystal tool format --check; then + crystal tool format + git diff + exit 1 + fi + + - name: Build + run: crystal build --warnings all --error-on-warnings --error-trace src/invidious.cr + + build-docker: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Build Docker + run: docker-compose up -d + + - name: Test Docker + run: while curl -Isf http://localhost:3000; do sleep 1; done + |
