Skip to content

Commit

Permalink
test on macos, use matrix
Browse files Browse the repository at this point in the history
  • Loading branch information
bloodearnest committed Nov 6, 2023
1 parent dc51a37 commit 555b6a2
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 88 deletions.
132 changes: 44 additions & 88 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,60 +26,33 @@ jobs:
- name: Check formatting, linting and import sorting
run: just check

test-linux:
runs-on: ubuntu-22.04
test:
strategy:
matrix:
os: [ubuntu-22.04, windows-2022, macos-13]

runs-on: ${{ matrix.os }}

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"
# our just setup doesn't make just available on the path
- uses: extractions/setup-just@69d82fb0233557aec017ef13706851d0694e0f1d
- 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: dumpenv
if: matrix.os == 'macos-13'
run: |
echo "$DEVELOPER_DIR"
ls /Applicataions/Xcode*
- name: Run tests
run: just test
- name: Cypress run
Expand All @@ -100,17 +73,35 @@ jobs:
path: cypress/videos
if-no-files-found: ignore

build-linux:
needs: [check, test-linux]

build:
needs: [check, test]
permissions:
contents: write
runs-on: ubuntu-22.04
strategy:
matrix:
os: [ubuntu-22.04, windows-2022, macos-13]
include:
- os: ubuntu-22.04
build_name: linux
build_path: sacro-app/dist/@opensafely/sacro*.deb
upload_path: sacro*.deb
- os: windows-2022
build_name: windows
build_path: sacro-app/dist/SACRO*.msi
upload_path: SACRO*.msi
- os: macos-13
build_name: macos
build_path: sacro-app/dist/sacro*.dmg
upload_path: sacro*.dmg

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v3
- uses: "opensafely-core/setup-action@v1"
with:
python-version: "3.11"
python-version: "3.10"
- uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
Expand All @@ -122,59 +113,24 @@ jobs:
- uses: extractions/setup-just@69d82fb0233557aec017ef13706851d0694e0f1d
- name: Download sample data
run: just test-outputs
- name: Build Python binary
# record asset build step separately for CI timings.
- name: Build assets and collect
run: just collectstatic
- name: Build Python pyoxidizer 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 .
# copy build artifact current directory
- name: Copy built artifact
run: cp ${{ matrix.build_path }} .
- name: Upload build
if: success()
uses: actions/upload-artifact@v3
with:
name: SACRO-latest-windows-build
name: SACRO-latest-${{ matrix.build_name }}-build
path: |
SACRO*.msi
${{ matrix.upload_path }}
outputs/*
!outputs/.keep
3 changes: 3 additions & 0 deletions sacro-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@
"category": "Science",
"icon": "build/icon.icns"
},
"mac": {
"target": "dmg"
},
"extraResources": [
{
"from": "${env.BUILD_DIR}",
Expand Down

0 comments on commit 555b6a2

Please sign in to comment.