Skip to content

Merge pull request #242 from opensafely-core/241-syntax-highlight-files #674

Merge pull request #242 from opensafely-core/241-syntax-highlight-files

Merge pull request #242 from opensafely-core/241-syntax-highlight-files #674

Workflow file for this run

---
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