Skip to content

Commit

Permalink
Fix CI
Browse files Browse the repository at this point in the history
  • Loading branch information
koliyo committed Oct 1, 2023
1 parent 74b72f6 commit 3b1b122
Show file tree
Hide file tree
Showing 6 changed files with 123 additions and 66 deletions.
9 changes: 9 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
ARG SWIFT_VERSION

FROM swift:${SWIFT_VERSION}

RUN apt-get update && \
apt-get install -y \
libllvm15 llvm-15 llvm-15-dev llvm-15-doc llvm-15-examples llvm-15-runtime

RUN ln -s /usr/bin/llvm-config-15 /usr/bin/llvm-config
49 changes: 49 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"name": "Swift",
"build": {
"dockerfile": "Dockerfile",
"args": {
"SWIFT_VERSION" : "5.8"
}
},
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"installZsh": "false",
"username": "vscode",
"userUid": "1000",
"userGid": "1000",
"upgradePackages": "false"
},
"ghcr.io/devcontainers/features/git:1": {
"version": "os-provided",
"ppa": "false"
}
},
"runArgs": [
"--cap-add=SYS_PTRACE",
"--security-opt",
"seccomp=unconfined"
],
// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {
"lldb.library": "/usr/lib/liblldb.so"
},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"sswg.swift-lang"
]
}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "./.devcontainer/post-create-command.sh",

// Set `remoteUser` to `root` to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode"
}
4 changes: 4 additions & 0 deletions .devcontainer/post-create-command.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env bash

swift --version && swift package resolve
sudo .build/checkouts/Swifty-LLVM/Tools/make-pkgconfig.sh /usr/local/lib/pkgconfig/llvm.pc
112 changes: 57 additions & 55 deletions .github/workflows/build-and-test-template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,62 +28,64 @@ on:
type: string

jobs:
# build-devcontainer-linux:
# name: "Build and test: ${{ matrix.host.os }}/${{ inputs.build-type }}"
# strategy:
# fail-fast: false
# matrix:
# host: [
# { type: linux, os: ubuntu-latest,
# build-options: "-v --build-tests -Xswiftc -enable-testing",
# test-options: "-v --enable-code-coverage"
# }
# ]
# configuration: [ "debug", "release" ]

# runs-on: ${{ matrix.host.os }}
# steps:
# - uses: actions/checkout@v3
build-devcontainer-linux:
name: "Build and test: ${{ matrix.host.os }}/${{ inputs.build-type }}"
strategy:
fail-fast: false
matrix:
host: [
{ type: linux, os: ubuntu-latest,
build-options: "--build-tests -Xswiftc -enable-testing",
test-options: "--enable-code-coverage"
}
]
# configuration: [ "debug", "release" ]

# - uses: actions/cache@v3
# with:
# path: .build
# key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
# restore-keys: |
# ${{ runner.os }}-spm-
runs-on: ${{ matrix.host.os }}
steps:
- uses: actions/checkout@v3

# - name: Build and Test
# uses: devcontainers/[email protected]
# with:
# runCmd: |
# set -eo pipefail
# swift package resolve
# .build/checkouts/Swifty-LLVM/Tools/make-pkgconfig.sh llvm.pc
# export PKG_CONFIG_PATH=$PWD
# swift build -c ${{ inputs.build-type }} ${{ matrix.host.build-options }}
# BUILD_DIR=$(swift build -c ${{ inputs.build-type }} --show-bin-path)
# echo "BUILD_DIR=$BUILD_DIR" >> $GITHUB_ENV
# # swift test -c ${{ inputs.build-type }} ${{ matrix.host.test-options }} |
# # tee testoutput.txt && (
# # (grep -q "[.']EndToEndTests[/. ]test_" testoutput.txt && grep -q "[.']HyloTests[/. ]test_" testoutput.txt) ||
# # (echo "error: generated tests failed to run; see
# # https://github.com/apple/swift-package-manager/issues/6595" && false) )

# # - name: Check code coverage
# # uses: mattpolzin/[email protected]
# # with:
# # SORT_ORDER: +cov
# # MINIMUM_COVERAGE: 84
# # CODECOV_JSON: .build/${{ inputs.build-type }}/codecov/*.json


# - name: Upload Hylo LSP artifacts (${{ inputs.build-type }})
# uses: actions/upload-artifact@v3
# with:
# name: hylo-lsp-artifacts-linux
# path: |
# ${{ env.BUILD_DIR }}/hylo-lsp-client
# ${{ env.BUILD_DIR }}/hylo-lsp-server
- uses: actions/cache@v3
with:
path: .build
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-
- name: Build and Test
uses: devcontainers/[email protected]
with:
runCmd: |
set -eo pipefail
cd hylo
swift package resolve
.build/checkouts/Swifty-LLVM/Tools/make-pkgconfig.sh llvm.pc
export PKG_CONFIG_PATH=$PWD
cd ..
swift build -c ${{ inputs.build-type }} ${{ matrix.host.build-options }}
BUILD_DIR=$(swift build -c ${{ inputs.build-type }} --show-bin-path)
echo "BUILD_DIR=$BUILD_DIR" >> $GITHUB_ENV
# swift test -c ${{ inputs.build-type }} ${{ matrix.host.test-options }} |
# tee testoutput.txt && (
# (grep -q "[.']EndToEndTests[/. ]test_" testoutput.txt && grep -q "[.']HyloTests[/. ]test_" testoutput.txt) ||
# (echo "error: generated tests failed to run; see
# https://github.com/apple/swift-package-manager/issues/6595" && false) )
# - name: Check code coverage
# uses: mattpolzin/[email protected]
# with:
# SORT_ORDER: +cov
# MINIMUM_COVERAGE: 84
# CODECOV_JSON: .build/${{ inputs.build-type }}/codecov/*.json


- name: Upload Hylo LSP artifacts (${{ inputs.build-type }})
uses: actions/upload-artifact@v3
with:
name: hylo-lsp-artifacts-linux
path: |
${{ env.BUILD_DIR }}/hylo-lsp-client
${{ env.BUILD_DIR }}/hylo-lsp-server
build-native-macos:
name: "Build and test: ${{ matrix.host.os }}/${{ inputs.build-type }}"
Expand All @@ -95,7 +97,7 @@ jobs:
type: macos, os: macos-13,
build-options: "--build-tests -Xswiftc -enable-testing",
# No coverage support on MacOS
test-options: "-v"
test-options: ""
}
]
swift: [
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ env:

jobs:
build:
name: Build and test
uses: ./.github/workflows/build-and-test-template.yml
with:
build-type: debug
Expand Down
14 changes: 3 additions & 11 deletions .github/workflows/publish-release-version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@ on:

jobs:
build:
name: Build and test
uses: ./.github/workflows/build-and-test-template.yml
with:
build-type: release
publish-release:
name: Publish release
needs: [build]
runs-on: ubuntu-latest
steps:
Expand All @@ -19,21 +21,11 @@ jobs:
submodules: 'true'

- name: Download hylo-lsp-artifacts-mac
id: download-artifact
uses: dawidd6/action-download-artifact@v2
uses: actions/download-artifact@v3
with:
workflow: build-and-test.yml
name: hylo-lsp-artifacts-mac
path: hylo-lsp-mac

# - name: Download Hylo LSP artifact-common
# id: download-artifact
# uses: dawidd6/action-download-artifact@v2
# with:
# workflow: build-and-test.yml
# name: hylo-lsp-artifacts-common
# path: hylo-lsp-artifacts-common

- name: Package Hylo release artifacts
run: |
set -eo pipefail
Expand Down

0 comments on commit 3b1b122

Please sign in to comment.