diff --git a/.ci/image/Dockerfile.linux b/.ci/image/Dockerfile.linux index 4927810..df10059 100644 --- a/.ci/image/Dockerfile.linux +++ b/.ci/image/Dockerfile.linux @@ -5,6 +5,7 @@ RUN set -eux; \ apt-get install --no-install-recommends -y \ build-essential \ curl \ + git \ gpg \ jq \ libatk1.0-dev \ diff --git a/.ci/pipelines/base-pipeline.yml b/.ci/pipelines/base-pipeline.yml index ae9e323..f231fb7 100644 --- a/.ci/pipelines/base-pipeline.yml +++ b/.ci/pipelines/base-pipeline.yml @@ -40,4 +40,4 @@ jobs: pr: ((.:pr)) gitea_api_key: ((gitea_api_key)) instance_vars: - n: ((.:pr.number)) + number: ((.:pr.number)) diff --git a/.ci/pipelines/pr.yml b/.ci/pipelines/pr.yml index 267db09..a9060f9 100644 --- a/.ci/pipelines/pr.yml +++ b/.ci/pipelines/pr.yml @@ -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 diff --git a/.ci/tasks/build.sh b/.ci/tasks/build.sh index 226f137..9d294b8 100755 --- a/.ci/tasks/build.sh +++ b/.ci/tasks/build.sh @@ -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" diff --git a/.ci/tasks/clippy.sh b/.ci/tasks/clippy.sh index a7b6e11..33901a9 100755 --- a/.ci/tasks/clippy.sh +++ b/.ci/tasks/clippy.sh @@ -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" diff --git a/.gitmodules b/.gitmodules index 9398bb8..a03eebf 100644 --- a/.gitmodules +++ b/.gitmodules @@ -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 diff --git a/Justfile b/Justfile index 964dc1f..70af61a 100644 --- a/Justfile +++ b/Justfile @@ -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')" diff --git a/lib/color-eyre b/lib/color-eyre index 55f8c6b..0fa05eb 160000 --- a/lib/color-eyre +++ b/lib/color-eyre @@ -1 +1 @@ -Subproject commit 55f8c6b7481d462e50ee4a03a43253d80d648ae2 +Subproject commit 0fa05eba9954be223b06468c8760b97e660f9941 diff --git a/lib/luajit2-sys b/lib/luajit2-sys index 24da35e..1912016 160000 --- a/lib/luajit2-sys +++ b/lib/luajit2-sys @@ -1 +1 @@ -Subproject commit 24da35e631099e914d6fc1bcc863228c48e540ec +Subproject commit 19120166f9fc7838b98c71fc348791abc820e323