Merge pull request #242 from opensafely-core/241-syntax-highlight-files #674
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: CI | |
on: | |
push: | |
jobs: | |
check: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: "opensafely-core/setup-action@v1" | |
with: | |
python-version: "3.10" | |
install-just: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.node-version' | |
cache: "npm" | |
cache-dependency-path: | | |
package-lock.json | |
sacro-app/package-lock.json | |
- name: Install dependencies | |
run: just assets-install && just sacro-app/npm-ci | |
- name: Check formatting, linting and import sorting | |
run: just check | |
test-linux: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: "opensafely-core/setup-action@v1" | |
with: | |
python-version: "3.10" | |
install-just: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.node-version' | |
cache: "npm" | |
cache-dependency-path: | | |
package-lock.json | |
sacro-app/package-lock.json | |
- name: Run tests | |
run: just test | |
- name: Cypress run | |
uses: cypress-io/github-action@d69252d52b9a31bad4f418f05ba2bc83687a02eb #v5.8.3 | |
with: | |
start: just run | |
wait-on: "http://localhost:8000/" | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: cypress-screenshots | |
path: cypress/screenshots | |
if-no-files-found: ignore | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: cypress/videos | |
if-no-files-found: ignore | |
test-windows: | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: "opensafely-core/setup-action@v1" | |
with: | |
python-version: "3.11" | |
- uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.node-version' | |
cache: "npm" | |
cache-dependency-path: | | |
**/package-lock.json | |
sacro-app/package-lock.json | |
# our just setup doesn't make just available on the path | |
- uses: extractions/setup-just@69d82fb0233557aec017ef13706851d0694e0f1d | |
- name: Run tests | |
run: just test | |
- name: Cypress run | |
uses: cypress-io/github-action@d69252d52b9a31bad4f418f05ba2bc83687a02eb #v5.8.3 | |
with: | |
start: just run | |
wait-on: "http://localhost:8000/" | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: cypress-screenshots | |
path: cypress/screenshots | |
if-no-files-found: ignore | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: cypress/videos | |
if-no-files-found: ignore | |
build-linux: | |
needs: [check, test-linux] | |
permissions: | |
contents: write | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: "opensafely-core/setup-action@v1" | |
with: | |
python-version: "3.11" | |
- uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.node-version' | |
cache: "npm" | |
cache-dependency-path: | | |
**/package-lock.json | |
sacro-app/package-lock.json | |
# our just setup doesn't make just available on the path | |
- uses: extractions/setup-just@69d82fb0233557aec017ef13706851d0694e0f1d | |
- name: Download sample data | |
run: just test-outputs | |
- name: Build Python binary | |
run: just build | |
- name: Build app | |
run: | | |
mkdir -p sacro-app/dist/@opensafely | |
just sacro-app/build | |
- name: Copy built deb | |
run: cp sacro-app/dist/@opensafely/sacro*.deb . | |
- name: Upload build | |
if: success() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: SACRO-latest-linux-build | |
path: | | |
sacro*.deb | |
outputs/* | |
!outputs/.keep | |
build-windows: | |
needs: [check, test-windows] | |
permissions: | |
contents: write | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: "opensafely-core/setup-action@v1" | |
with: | |
python-version: "3.11" | |
- uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.node-version' | |
cache: "npm" | |
cache-dependency-path: | | |
**/package-lock.json | |
sacro-app/package-lock.json | |
# our just setup doesn't make just available on the path | |
- uses: extractions/setup-just@69d82fb0233557aec017ef13706851d0694e0f1d | |
- name: Download sample data | |
run: just test-outputs | |
- name: Build Python binary | |
run: just build | |
- name: Build app | |
run: just sacro-app/build | |
# this gets us cleaner paths in our artifact | |
- name: Copy built msi | |
run: cp sacro-app/dist/SACRO*.msi . | |
- name: Upload build | |
if: success() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: SACRO-latest-windows-build | |
path: | | |
SACRO*.msi | |
outputs/* | |
!outputs/.keep |