Merge pull request 'CI Improvements' (#142) from issue/color-eyre into master

Reviewed-on: #142
This commit is contained in:
Lucas Schwiderski 2023-11-23 15:30:30 +01:00
commit ff98a4a511
9 changed files with 61 additions and 33 deletions

View file

@ -5,6 +5,7 @@ RUN set -eux; \
apt-get install --no-install-recommends -y \
build-essential \
curl \
git \
gpg \
jq \
libatk1.0-dev \

View file

@ -40,4 +40,4 @@ jobs:
pr: ((.:pr))
gitea_api_key: ((gitea_api_key))
instance_vars:
n: ((.:pr.number))
number: ((.:pr.number))

View file

@ -37,7 +37,6 @@ resources:
url: http://forgejo:3000
owner: bitsquid_dt
repo: dtmt
sha: ((pr.head.sha))
context: lint/clippy
description: Checking for common mistakes and opportunities for code improvement
@ -48,7 +47,6 @@ resources:
url: http://forgejo:3000
owner: bitsquid_dt
repo: dtmt
sha: ((pr.head.sha))
context: build/msvc
description: "Build for the target platform: msvc"
@ -59,7 +57,6 @@ resources:
url: http://forgejo:3000
owner: bitsquid_dt
repo: dtmt
sha: ((pr.head.sha))
context: build/linux
description: "Build for the target platform: linux"
@ -72,23 +69,29 @@ jobs:
no_get: true
params:
state: success
sha: ((.:git_sha))
on_failure:
put: state-success
put: state-failure
resource: pr-status-lint-clippy
no_get: true
params:
state: failure
sha: ((.:git_sha))
plan:
- get: repo
trigger: true
- load_var: git_sha
file: repo/.git/ref
- put: state-pending
resource: pr-status-lint-clippy
no_get: true
params:
state: pending
- get: repo
trigger: true
sha: ((.:git_sha))
- task: check
file: repo/.ci/tasks/clippy.yml
@ -103,23 +106,29 @@ jobs:
no_get: true
params:
state: success
sha: ((.:git_sha))
on_failure:
put: state-success
put: state-failure
resource: pr-status-build-msvc
no_get: true
params:
state: failure
sha: ((.:git_sha))
plan:
- get: repo
trigger: true
- load_var: git_sha
file: repo/.git/ref
- put: state-pending
resource: pr-status-build-msvc
no_get: true
params:
state: pending
- get: repo
trigger: true
sha: ((.:git_sha))
- task: build
file: repo/.ci/tasks/build.yml
@ -154,23 +163,29 @@ jobs:
no_get: true
params:
state: success
sha: ((.:git_sha))
on_failure:
put: state-success
put: state-failure
resource: pr-status-build-linux
no_get: true
params:
state: failure
sha: ((.:git_sha))
plan:
- get: repo
trigger: true
- load_var: git_sha
file: repo/.git/ref
- put: state-pending
resource: pr-status-build-linux
no_get: true
params:
state: pending
- get: repo
trigger: true
sha: ((.:git_sha))
- task: build
file: repo/.ci/tasks/build.yml

View file

@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
set -eu
@ -12,39 +12,42 @@ title() {
printf "\033[1m%s\033[0m\n" "$1"
}
cd "repo"
if [ -n "${PR:-}" ]; then
title "PR: $(echo "$PR" | jq '.number') - $(echo "$PR" | jq '.title')"
ref="pr-$(echo "$PR" | jq '.number')-$(git rev-parse --short HEAD 2>/dev/null || echo 'manual')"
ref="pr-$(echo "$PR" | jq '.number')-$(git rev-parse --short "$(cat .git/ref || echo "HEAD")" 2>/dev/null || echo 'manual')"
else
ref=$(git describe --tags)
fi
title "Version is '$ref'"
title "Version: '$ref'"
echo "$ref" > "$OUTPUT/version"
cd "repo"
case "$TARGET" in
msvc)
cp /src/*.lib ./lib/oodle/
title "Build project for target $TARGET"
title "Building project for target $TARGET"
cargo build --color always --locked --release --target x86_64-pc-windows-msvc -Zbuild-std
title "Install artifacts"
install -t "$OUTPUT/" target/x86_64-pc-windows-msvc/release/dtmt.exe
install -t "$OUTPUT/" target/x86_64-pc-windows-msvc/release/dtmm.exe
install -v -t "$OUTPUT/" target/x86_64-pc-windows-msvc/release/dtmt.exe
install -v -t "$OUTPUT/" target/x86_64-pc-windows-msvc/release/dtmm.exe
;;
linux)
cp /src/*.a ./lib/oodle/
title "Build project for target $TARGET"
title "Building project for target $TARGET"
cargo build --color always --locked --profile release-lto
title "Install artifacts"
install -t "$OUTPUT/" target/release-lto/dtmt
install -t "$OUTPUT/" target/release-lto/dtmm
title "Installing artifacts"
install -v -t "$OUTPUT/" target/release-lto/dtmt
install -v -t "$OUTPUT/" target/release-lto/dtmm
;;
*)
echo "Env var 'TARGET' must either be 'msvc' or 'linux'. Got '$TARGET'." >&2
echo -e "\033[31;1mEnv var 'TARGET' must either be 'msvc' or 'linux'. Got '$TARGET'.\033[0m" >&2
exit 1
esac
title "Done"

View file

@ -1,7 +1,15 @@
#!/bin/sh
set -eux
set -eu
title() {
printf "\033[1m%s\033[0m\n" "$1"
}
title "Install clippy"
rustup component add clippy
title "Run clippy"
cargo clippy --color always --no-deps
title "Done"

1
.gitmodules vendored
View file

@ -7,6 +7,7 @@
[submodule "lib/color-eyre"]
path = lib/color-eyre
url = https://github.com/sclu1034/color-eyre.git
branch = "fork"
[submodule "lib/ansi-parser"]
path = lib/ansi-parser
url = https://gitlab.com/lschwiderski/ansi-parser.git

View file

@ -29,7 +29,7 @@ ci-image-linux:
docker push registry.sclu1034.dev/dtmt-ci-base-linux
set-base-pipeline:
fly -t ((fly_target)) set-pipeline \
fly -t {{fly_target}} set-pipeline \
--pipeline dtmt-prs \
--config .ci/pipelines/base-pipeline.yml \
-v gitea_api_key=${GITEA_API_KEY} \
@ -46,7 +46,7 @@ set-pr-pipeline pr:
--pipeline dtmt-pr \
--config .ci/pipelines/pr.yml \
-v gitea_api_key=${GITEA_API_KEY} \
-i n={{pr}} \
-i number={{pr}} \
-y branch="$(yq -y '.head.ref' 'pr-{{pr}}.yaml')" \
-y pr="$(cat 'pr-{{pr}}.yaml')"

@ -1 +1 @@
Subproject commit 55f8c6b7481d462e50ee4a03a43253d80d648ae2
Subproject commit 0fa05eba9954be223b06468c8760b97e660f9941

@ -1 +1 @@
Subproject commit 24da35e631099e914d6fc1bcc863228c48e540ec
Subproject commit 19120166f9fc7838b98c71fc348791abc820e323