Skip to content

Commit

Permalink
update CI from master
Browse files Browse the repository at this point in the history
  • Loading branch information
WebFreak001 committed Sep 25, 2023
1 parent 160afda commit ae3a42d
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 114 deletions.
97 changes: 0 additions & 97 deletions .github/workflows/nightly.yml

This file was deleted.

36 changes: 25 additions & 11 deletions .github/workflows/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,41 +9,53 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
# ubuntu / linux must run on kinda old linux for glibc compatibility!
os: [ubuntu-20.04, windows-latest, macos-latest]
arch: [x86_64]
include:
# use for 32 bit build
- os: windows-latest
arch: x86
- os: macos-latest
arch: arm64-apple-macos
arch_short: arm64
cross: "1"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2

- id: vars
shell: bash
run: |
if [ -z "${{matrix.arch_short}}" ]; then
echo "arch_short=${{matrix.arch}}" >> $GITHUB_OUTPUT
else
echo "arch_short=${{matrix.arch_short}}" >> $GITHUB_OUTPUT
fi
- name: Install D compiler
uses: dlang-community/setup-dlang@v1
with:
compiler: ldc-latest

- name: dub upgrade
uses: WebFreak001/[email protected]

- name: Run tests
run: dub test

# Linux release
- name: Build Linux release
run: ./ci/build.sh && rdmd ci/validate_version.d
if: matrix.os == 'ubuntu-latest'
if: matrix.os == 'ubuntu-20.04'
env:
ARCH: ${{ matrix.arch }}
BUILD: release
CROSS: ${{ matrix.cross }}

- name: Deploy Linux release
if: matrix.os == 'ubuntu-latest'
if: matrix.os == 'ubuntu-20.04'
uses: WebFreak001/upload-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OS: linux-${{ matrix.arch }}
OS: linux-${{ steps.vars.outputs.arch_short }}
with:
file: ./serve-d.tar.xz
mime: application/x-gtar
Expand All @@ -52,18 +64,19 @@ jobs:
# OSX release
- name: Build OSX release
run: ./ci/build.sh && rdmd ci/validate_version.d
if: matrix.os == 'macOS-latest'
if: matrix.os == 'macos-latest'
env:
MACOSX_DEPLOYMENT_TARGET: '10.12'
ARCH: ${{ matrix.arch }}
BUILD: release
CROSS: ${{ matrix.cross }}

- name: Deploy OSX release
if: matrix.os == 'macOS-latest'
if: matrix.os == 'macos-latest'
uses: WebFreak001/upload-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OS: osx-${{ matrix.arch }}
OS: osx-${{ steps.vars.outputs.arch_short }}
with:
file: ./serve-d.tar.xz
mime: application/x-gtar
Expand All @@ -76,13 +89,14 @@ jobs:
env:
BUILD: release
ARCH: ${{ matrix.arch }}
CROSS: ${{ matrix.cross }}

- name: Deploy Windows release
if: matrix.os == 'windows-latest'
uses: WebFreak001/upload-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OS: windows-${{ matrix.arch }}
OS: windows-${{ steps.vars.outputs.arch_short }}
with:
file: ./serve-d.zip
mime: application/zip
Expand Down
38 changes: 34 additions & 4 deletions .github/workflows/unittest.yml
Original file line number Diff line number Diff line change
@@ -1,51 +1,81 @@
name: Run Unittests
on: [push, pull_request]
on:
push:
branches:
- master
pull_request:

jobs:
dubtest:
name: Dub Tests
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
# ubuntu / linux must run on kinda old linux for glibc compatibility!
os: [ubuntu-20.04, windows-latest, macos-latest]
dc: [dmd-latest, ldc-latest]
exclude:
- os: windows-latest
dc: dmd-latest
- os: macos-latest
dc: dmd-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2

- name: Install D compiler
uses: dlang-community/setup-dlang@v1
timeout-minutes: 5
with:
compiler: ${{ matrix.dc }}

- name: dub upgrade
run: dub upgrade
- name: Run workspace-d tests
run: dub test :workspace-d
timeout-minutes: 30
env:
MACOSX_DEPLOYMENT_TARGET: '10.12'

- name: serialization tests
run: dub test :protocol
timeout-minutes: 10
env:
# shouldn't break other OSes
MACOSX_DEPLOYMENT_TARGET: '10.12'

- name: LSP tests
run: dub test :lsp
timeout-minutes: 10
env:
# shouldn't break other OSes
MACOSX_DEPLOYMENT_TARGET: '10.12'

- name: serverbase tests
run: dub test :serverbase
timeout-minutes: 10
env:
MACOSX_DEPLOYMENT_TARGET: '10.12'

- name: build minimal server
run: dub build --root=null_server
timeout-minutes: 10
env:
MACOSX_DEPLOYMENT_TARGET: '10.12'

- name: test minimal server
run: dub run --root=null_server_test
timeout-minutes: 10
env:
MACOSX_DEPLOYMENT_TARGET: '10.12'

- name: Run tests
run: dub test
timeout-minutes: 30
env:
MACOSX_DEPLOYMENT_TARGET: '10.12'

- name: Run standalone tests
run: ./runtests.sh
working-directory: ./test
timeout-minutes: 30
env:
MACOSX_DEPLOYMENT_TARGET: '10.12'
10 changes: 8 additions & 2 deletions ci/validate_version.d
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,18 @@ void main()
else
string served = "./serve-d";

if (environment.get("CROSS").length)
{
writeln("Not checking if serve-d version is up-to-date because it's cross-compiled!");
return;
}

auto res = execute([served, "--version"]);
enforce(res.status == 0, "serve-d --version didn't return status 0");

string output = res.output.strip;
enforce(output.startsWith("serve-d v"), "serve-d --version didn't begin with `serve-d v`");
output = output["serve-d v".length .. $];
enforce(output.startsWith("serve-d standalone v"), "serve-d --version didn't begin with `serve-d standalone v`");
output = output["serve-d standalone v".length .. $];

auto space = output.indexOfAny(" \t\r\n");
if (space != -1)
Expand Down

0 comments on commit ae3a42d

Please sign in to comment.