code-server/.github/workflows/ci.yaml

196 lines
5.4 KiB
YAML
Raw Normal View History

2020-05-07 04:06:55 +00:00
name: ci
on:
push:
branches:
- main
pull_request:
branches:
- main
2020-05-07 04:06:55 +00:00
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- 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@v2
- name: Run ./ci/steps/lint.sh
uses: ./ci/images/debian10
with:
args: ./ci/steps/lint.sh
2021-04-05 23:32:01 +00:00
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Audit for vulnerabilities
uses: ./ci/images/debian10
with:
args: ./ci/steps/audit.sh
test-unit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Run unit tests
uses: ./ci/images/debian10
with:
args: ./ci/steps/test-unit.sh
test-e2e:
2021-01-27 23:04:37 +00:00
needs: linux-amd64
2020-05-08 00:44:32 +00:00
runs-on: ubuntu-latest
env:
PASSWORD: e45432jklfdsab
CODE_SERVER_ADDRESS: http://localhost:8080
2020-05-07 04:06:55 +00:00
steps:
- uses: actions/checkout@v2
2021-01-27 23:04:37 +00:00
- name: Download release packages
uses: actions/download-artifact@v2
2020-05-08 00:44:32 +00:00
with:
2021-01-27 23:04:37 +00:00
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
2021-03-09 23:36:56 +00:00
- name: Install dependencies and run end-to-end tests
2021-01-27 23:04:37 +00:00
run: |
./release-packages/code-server*-linux-amd64/bin/code-server --log trace &
2021-01-27 23:04:37 +00:00
yarn --frozen-lockfile
2021-03-09 23:36:56 +00:00
yarn test:e2e
2021-02-02 21:29:02 +00:00
- name: Upload test artifacts
if: always()
2021-02-02 21:29:02 +00:00
uses: actions/upload-artifact@v2
with:
name: test-videos
2021-03-09 23:36:56 +00:00
path: ./test/e2e/videos
- name: Remove release packages and test artifacts
run: rm -rf ./release-packages ./test/e2e/videos
2020-05-08 00:44:32 +00:00
release:
2020-05-08 00:44:32 +00:00
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
2020-05-08 00:44:32 +00:00
- name: Run ./ci/steps/release.sh
uses: ./ci/images/debian10
2020-05-08 00:44:32 +00:00
with:
args: ./ci/steps/release.sh
- name: Upload npm package artifact
uses: actions/upload-artifact@v2
with:
name: npm-package
path: ./release-npm-package
2020-05-08 00:44:32 +00:00
linux-amd64:
needs: release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Download npm package
uses: actions/download-artifact@v2
with:
name: npm-package
path: ./release-npm-package
2020-05-27 22:04:36 +00:00
- name: Run ./ci/steps/release-packages.sh
2020-06-03 16:14:55 +00:00
uses: ./ci/images/centos7
with:
2020-05-27 22:04:36 +00:00
args: ./ci/steps/release-packages.sh
- name: Upload release artifacts
uses: actions/upload-artifact@v2
with:
name: release-packages
path: ./release-packages
2020-05-08 00:44:32 +00:00
linux-arm64:
needs: release
2020-05-08 00:44:32 +00:00
runs-on: ubuntu-arm64-latest
steps:
- uses: actions/checkout@v2
- name: Download npm package
uses: actions/download-artifact@v2
with:
name: npm-package
path: ./release-npm-package
2020-05-27 22:04:36 +00:00
- name: Run ./ci/steps/release-packages.sh
2020-06-03 16:14:55 +00:00
uses: ./ci/images/centos7
2020-05-08 00:44:32 +00:00
with:
2020-05-27 22:04:36 +00:00
args: ./ci/steps/release-packages.sh
2020-05-08 00:44:32 +00:00
- name: Upload release artifacts
uses: actions/upload-artifact@v2
with:
name: release-packages
path: ./release-packages
- name: Remove docker images
run: docker system prune -af
2020-05-08 00:44:32 +00:00
2020-05-08 05:42:46 +00:00
macos-amd64:
needs: release
2020-05-08 00:44:32 +00:00
runs-on: macos-latest
# This job requires secrets, so can only run on the default branch
if: github.ref == 'refs/heads/main'
2020-05-08 00:44:32 +00:00
steps:
- uses: actions/checkout@v2
- name: Download npm package
uses: actions/download-artifact@v2
with:
name: npm-package
path: ./release-npm-package
2020-05-27 22:04:36 +00:00
- run: ./ci/steps/release-packages.sh
2020-05-08 00:44:32 +00:00
env:
# Otherwise we get rate limited when fetching the ripgrep binary.
2020-05-08 20:31:42 +00:00
# For whatever reason only MacOS needs it.
2020-05-08 07:08:30 +00:00
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2020-05-08 00:44:32 +00:00
- name: Upload release artifacts
uses: actions/upload-artifact@v2
2020-05-07 04:06:55 +00:00
with:
name: release-packages
path: ./release-packages
docker-amd64:
runs-on: ubuntu-latest
needs: linux-amd64
steps:
- uses: actions/checkout@v2
- 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@v2
- name: Download release package
uses: actions/download-artifact@v2
with:
name: release-packages
path: ./release-packages
- name: Run ./ci/steps/build-docker-image.sh
2020-06-03 20:22:59 +00:00
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