Loading .gitlab-ci.yml +51 −46 Original line number Diff line number Diff line Loading @@ -3,21 +3,24 @@ default: - cpu image: rust:bookworm before_script: - rustup component add rustfmt - apt-get update && apt-get install -y libssl-dev pkg-config musl-tools - rustup component add clippy - rustup target add x86_64-unknown-linux-gnu - rustup component add rustfmt - rustup target add x86_64-unknown-linux-musl variables: BINARY_NAME: xylem CHANGELOG: https://code.ornl.gov/research-enablement/xylem/-/blob/main/CHANGELOG.md USER: CI EMAIL: wohlgemuthjh@ornl.gov EMAIL: $GITLAB_USER_EMAIL CI_DEBUG_SERVICES: true stages: - prepare - test - build - docs - release - docs prepare-environment: stage: prepare Loading @@ -30,7 +33,6 @@ prepare-environment: when: never - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH script: - echo "======== PREPARE JOB ========" - echo "PKG_VERSION=$(awk -F ' = ' '$1 ~ /version/ { gsub(/["]/, "", $2); printf("%s",$2) }' Cargo.toml)" >> variables.env - echo "PKG_REGISTRY_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic" >> variables.env - echo $PKG_VERSION Loading @@ -44,7 +46,16 @@ test: inherit: default: true variables: true script: make test-ci rules: - if: $CI_COMMIT_TAG when: never - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH changes: - ${BINARY_NAME}-cli/**/* - ${BINARY_NAME}-lib/**/* - Cargo.toml script: - make test-ci build-release: stage: build Loading @@ -56,53 +67,28 @@ build-release: - job: test script: - make build artifacts: paths: - bin/ publish-docs: stage: docs image: rust inherit: default: false variables: true needs: - job: test rules: - if: $CI_COMMIT_TAG when: never - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH changes: - xylem-cli/**/* - xylem-lib/**/* - xylem-py/**/* script: - make doc - git config --global user.name "${USER}" - git config --global user.email "${EMAIL}" - git clone https://user:${ACCESS_TOKEN}@code-int.ornl.gov/sites/xylem.git site - ls - ls site - rm -rf ./site/html - mv target/doc/ ./site/html - echo '<meta http-equiv="refresh" content="0; url=xylem_lib/index.html">' > ./site/html/index.html - cd site - git add html - git commit -m "Publish changes" - git push - Cargo.toml artifacts: paths: - bin/ publish-release: publish-release-linux: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest inherit: default: false variables: false variables: true needs: - job: prepare-environment artifacts: true - job: build-release script: - echo "======== RELEASE JOB ========" - echo "Publishing ${BINARY_NAME} v${PKG_VERSION}" rules: - if: $CI_COMMIT_TAG when: never Loading @@ -110,25 +96,26 @@ publish-release: changes: - Cargo.toml release: tag_name: "v$PKG_VERSION" description: "Xylem v$PKG_VERSION" tag_name: "v${PKG_VERSION}" description: "## ${BINARY_NAME} v${PKG_VERSION}\n> See [CHANGELOG](${CHANGELOG}) for details" ref: "$CI_COMMIT_SHA" assets: links: - name: "v$PKG_VERSION" url: "${PKG_REGISTRY_URL}/x86_64-unknown-linux-gnu/v${PKG_VERSION}/xylem" - name: "${BINARY_NAME} v$PKG_VERSION" url: "${PKG_REGISTRY_URL}/x86_64-unknown-linux-musl/v${PKG_VERSION}/${BINARY_NAME}" upload-binaries: stage: release image: curlimages/curl:latest inherit: default: false variables: false variables: true needs: - job: prepare-environment artifacts: true - job: build-release artifacts: true - job: publish-release-linux rules: - if: $CI_COMMIT_TAG when: never Loading @@ -136,7 +123,25 @@ upload-binaries: changes: - Cargo.toml script: - echo "======== UPLOAD JOB ========" - ls -la bin/ - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/xylem-v${PKG_VERSION} ${PKG_REGISTRY_URL}/x86_64-unknown-linux-gnu/v${PKG_VERSION}/xylem' - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/${BINARY_NAME}-v${PKG_VERSION} ${PKG_REGISTRY_URL}/x86_64-unknown-linux-musl/v${PKG_VERSION}/${BINARY_NAME}' publish-docs: stage: docs image: rust inherit: default: false variables: true rules: - if: $CI_COMMIT_TAG when: never - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH changes: - ${BINARY_NAME}-cli/**/*.rs - ${BINARY_NAME}-lib/**/*.rs - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: manual script: - git config --global user.name "${USER}" - git config --global user.email "${EMAIL}" - make publish-docs Cargo.toml +1 −1 Original line number Diff line number Diff line Loading @@ -30,5 +30,5 @@ tracing-subscriber = { version = "0.3.18", features = ["env-filter"]} uriparse = "0.6.4" [workspace.metadata.cross.build] default-target = "x86_64-unknown-linux-gnu" default-target = "x86_64-unknown-linux-musl" debug-assertions = true Loading
.gitlab-ci.yml +51 −46 Original line number Diff line number Diff line Loading @@ -3,21 +3,24 @@ default: - cpu image: rust:bookworm before_script: - rustup component add rustfmt - apt-get update && apt-get install -y libssl-dev pkg-config musl-tools - rustup component add clippy - rustup target add x86_64-unknown-linux-gnu - rustup component add rustfmt - rustup target add x86_64-unknown-linux-musl variables: BINARY_NAME: xylem CHANGELOG: https://code.ornl.gov/research-enablement/xylem/-/blob/main/CHANGELOG.md USER: CI EMAIL: wohlgemuthjh@ornl.gov EMAIL: $GITLAB_USER_EMAIL CI_DEBUG_SERVICES: true stages: - prepare - test - build - docs - release - docs prepare-environment: stage: prepare Loading @@ -30,7 +33,6 @@ prepare-environment: when: never - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH script: - echo "======== PREPARE JOB ========" - echo "PKG_VERSION=$(awk -F ' = ' '$1 ~ /version/ { gsub(/["]/, "", $2); printf("%s",$2) }' Cargo.toml)" >> variables.env - echo "PKG_REGISTRY_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic" >> variables.env - echo $PKG_VERSION Loading @@ -44,7 +46,16 @@ test: inherit: default: true variables: true script: make test-ci rules: - if: $CI_COMMIT_TAG when: never - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH changes: - ${BINARY_NAME}-cli/**/* - ${BINARY_NAME}-lib/**/* - Cargo.toml script: - make test-ci build-release: stage: build Loading @@ -56,53 +67,28 @@ build-release: - job: test script: - make build artifacts: paths: - bin/ publish-docs: stage: docs image: rust inherit: default: false variables: true needs: - job: test rules: - if: $CI_COMMIT_TAG when: never - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH changes: - xylem-cli/**/* - xylem-lib/**/* - xylem-py/**/* script: - make doc - git config --global user.name "${USER}" - git config --global user.email "${EMAIL}" - git clone https://user:${ACCESS_TOKEN}@code-int.ornl.gov/sites/xylem.git site - ls - ls site - rm -rf ./site/html - mv target/doc/ ./site/html - echo '<meta http-equiv="refresh" content="0; url=xylem_lib/index.html">' > ./site/html/index.html - cd site - git add html - git commit -m "Publish changes" - git push - Cargo.toml artifacts: paths: - bin/ publish-release: publish-release-linux: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest inherit: default: false variables: false variables: true needs: - job: prepare-environment artifacts: true - job: build-release script: - echo "======== RELEASE JOB ========" - echo "Publishing ${BINARY_NAME} v${PKG_VERSION}" rules: - if: $CI_COMMIT_TAG when: never Loading @@ -110,25 +96,26 @@ publish-release: changes: - Cargo.toml release: tag_name: "v$PKG_VERSION" description: "Xylem v$PKG_VERSION" tag_name: "v${PKG_VERSION}" description: "## ${BINARY_NAME} v${PKG_VERSION}\n> See [CHANGELOG](${CHANGELOG}) for details" ref: "$CI_COMMIT_SHA" assets: links: - name: "v$PKG_VERSION" url: "${PKG_REGISTRY_URL}/x86_64-unknown-linux-gnu/v${PKG_VERSION}/xylem" - name: "${BINARY_NAME} v$PKG_VERSION" url: "${PKG_REGISTRY_URL}/x86_64-unknown-linux-musl/v${PKG_VERSION}/${BINARY_NAME}" upload-binaries: stage: release image: curlimages/curl:latest inherit: default: false variables: false variables: true needs: - job: prepare-environment artifacts: true - job: build-release artifacts: true - job: publish-release-linux rules: - if: $CI_COMMIT_TAG when: never Loading @@ -136,7 +123,25 @@ upload-binaries: changes: - Cargo.toml script: - echo "======== UPLOAD JOB ========" - ls -la bin/ - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/xylem-v${PKG_VERSION} ${PKG_REGISTRY_URL}/x86_64-unknown-linux-gnu/v${PKG_VERSION}/xylem' - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/${BINARY_NAME}-v${PKG_VERSION} ${PKG_REGISTRY_URL}/x86_64-unknown-linux-musl/v${PKG_VERSION}/${BINARY_NAME}' publish-docs: stage: docs image: rust inherit: default: false variables: true rules: - if: $CI_COMMIT_TAG when: never - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH changes: - ${BINARY_NAME}-cli/**/*.rs - ${BINARY_NAME}-lib/**/*.rs - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: manual script: - git config --global user.name "${USER}" - git config --global user.email "${EMAIL}" - make publish-docs
Cargo.toml +1 −1 Original line number Diff line number Diff line Loading @@ -30,5 +30,5 @@ tracing-subscriber = { version = "0.3.18", features = ["env-filter"]} uriparse = "0.6.4" [workspace.metadata.cross.build] default-target = "x86_64-unknown-linux-gnu" default-target = "x86_64-unknown-linux-musl" debug-assertions = true