9cbf6926f2
Before this commit, if the tests fail then the artifacts don't get uploaded. This makes it harder to debug failing e2e tests. To prevent this, this commit adds an "if" condition which says always run this step. Source: https://stackoverflow.com/a/58859404/3015595
167 lines
4.6 KiB
YAML
167 lines
4.6 KiB
YAML
name: ci
|
|
|
|
on: [push]
|
|
|
|
jobs:
|
|
fmt:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Run ./ci/steps/fmt.sh
|
|
uses: ./ci/images/debian10
|
|
with:
|
|
args: ./ci/steps/fmt.sh
|
|
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Run ./ci/steps/lint.sh
|
|
uses: ./ci/images/debian10
|
|
with:
|
|
args: ./ci/steps/lint.sh
|
|
|
|
test:
|
|
needs: linux-amd64
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
PASSWORD: e45432jklfdsab
|
|
CODE_SERVER_ADDRESS: http://localhost:8080
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Download release packages
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
name: release-packages
|
|
path: ./release-packages
|
|
- name: Untar code-server file
|
|
run: |
|
|
cd release-packages && tar -xzf code-server*-linux-amd64.tar.gz
|
|
- uses: microsoft/playwright-github-action@v1
|
|
- name: Install dependencies and run tests
|
|
run: |
|
|
./release-packages/code-server*-linux-amd64/bin/code-server --home $CODE_SERVER_ADDRESS/healthz &
|
|
yarn --frozen-lockfile
|
|
yarn test
|
|
- name: Upload test artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: test-videos
|
|
path: ./test/videos
|
|
|
|
release:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Run ./ci/steps/release.sh
|
|
uses: ./ci/images/debian10
|
|
with:
|
|
args: ./ci/steps/release.sh
|
|
- name: Upload npm package artifact
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: npm-package
|
|
path: ./release-npm-package
|
|
|
|
linux-amd64:
|
|
needs: release
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Download npm package
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
name: npm-package
|
|
path: ./release-npm-package
|
|
- name: Run ./ci/steps/release-packages.sh
|
|
uses: ./ci/images/centos7
|
|
with:
|
|
args: ./ci/steps/release-packages.sh
|
|
- name: Upload release artifacts
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: release-packages
|
|
path: ./release-packages
|
|
|
|
linux-arm64:
|
|
needs: release
|
|
runs-on: ubuntu-arm64-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Download npm package
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
name: npm-package
|
|
path: ./release-npm-package
|
|
- name: Run ./ci/steps/release-packages.sh
|
|
uses: ./ci/images/centos7
|
|
with:
|
|
args: ./ci/steps/release-packages.sh
|
|
- name: Upload release artifacts
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: release-packages
|
|
path: ./release-packages
|
|
|
|
macos-amd64:
|
|
needs: release
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Download npm package
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
name: npm-package
|
|
path: ./release-npm-package
|
|
- run: ./ci/steps/release-packages.sh
|
|
env:
|
|
# Otherwise we get rate limited when fetching the ripgrep binary.
|
|
# For whatever reason only MacOS needs it.
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Upload release artifacts
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: release-packages
|
|
path: ./release-packages
|
|
|
|
docker-amd64:
|
|
runs-on: ubuntu-latest
|
|
needs: linux-amd64
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Download release package
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
name: release-packages
|
|
path: ./release-packages
|
|
- name: Run ./ci/steps/build-docker-image.sh
|
|
uses: ./ci/images/debian10
|
|
with:
|
|
args: ./ci/steps/build-docker-image.sh
|
|
- name: Upload release image
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: release-images
|
|
path: ./release-images
|
|
|
|
docker-arm64:
|
|
runs-on: ubuntu-arm64-latest
|
|
needs: linux-arm64
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Download release package
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
name: release-packages
|
|
path: ./release-packages
|
|
- name: Run ./ci/steps/build-docker-image.sh
|
|
uses: ./ci/images/centos7
|
|
with:
|
|
args: ./ci/steps/build-docker-image.sh
|
|
- name: Upload release image
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: release-images
|
|
path: ./release-images
|