Skip to content

Commit

Permalink
Merge branch 'develop' into slurm-oci-docs-updates
Browse files Browse the repository at this point in the history
  • Loading branch information
araghukas authored May 15, 2024
2 parents 2caf0e0 + 5486a14 commit 7b87df3
Show file tree
Hide file tree
Showing 54 changed files with 819 additions and 558 deletions.
8 changes: 3 additions & 5 deletions .github/actions/changelog/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,14 @@ const readline = require("readline");

const check_author = (author, authors) => {
if (
typeof author === "object" &&
"email" in author &&
!authors.includes(author.email)
typeof author === "object"
) {
return "- " + author.name + " <" + author.email + ">\n";
return "- " + author.name + "\n";
} else if (
typeof author === "string" &&
!authors.includes(author.split(/[<>]/)[1])
) {
return "- " + author + "\n";
return "- " + author.split(/[<>]/)[1].trim() + "\n";
} else {
return "";
}
Expand Down
19 changes: 18 additions & 1 deletion .github/workflows/boilerplate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,26 @@ jobs:
# See the License for the specific language governing permissions and
# limitations under the License.
boilerplate2024: |-
# Copyright 2024 Agnostiq Inc.
#
# This file is part of Covalent.
#
# Licensed under the Apache License 2.0 (the "License"). A copy of the
# License may be obtained with this software package or at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Use of this file is prohibited except in compliance with the License.
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if [[ ! $( cat $file | tr -d '\r' ) =~ "$boilerplate2021" && ! $( cat $file | tr -d '\r' ) =~ "$boilerplate2022" && ! $( cat $file | tr -d '\r' ) =~ "$boilerplate2023" ]] ; then
if [[ ! $( cat $file | tr -d '\r' ) =~ "$boilerplate2021" && ! $( cat $file | tr -d '\r' ) =~ "$boilerplate2022" && ! $( cat $file | tr -d '\r' ) =~ "$boilerplate2023" && ! $( cat $file | tr -d '\r' ) =~ "$boilerplate2024" ]] ; then
printf "Boilerplate is missing from $file.\n"
printf "The first 15 lines of $file are\n\n"
cat $file | tr -d '\r' | cat -ET | head -n 15
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ jobs:
uses: actions/checkout@v4
with:
token: ${{ secrets.COVALENT_OPS_BOT_TOKEN }}

- uses: dorny/paths-filter@v2
id: filter
with:
Expand All @@ -42,13 +43,15 @@ jobs:
- '.github/actions/changelog/action.yml'
dist:
- '.github/actions/changelog/dist/**'
- name: Latest tag
id: get-latest-tag
uses: ./.github/actions/describe
with:
token: ${{ secrets.COVALENT_OPS_BOT_TOKEN }}
branch: develop
stable: false

- name: Update version number
id: changelog
uses: ./.github/actions/changelog
Expand All @@ -57,6 +60,7 @@ jobs:
version-path: VERSION
token: ${{ secrets.COVALENT_OPS_BOT_TOKEN }}
basehead: ${{ steps.get-latest-tag.outputs.tag }}...${{ github.sha }}

- name: Commit
if: ${{ steps.changelog.outputs.message != 'noop' }}
uses: EndBug/add-and-commit@v9
Expand Down
52 changes: 52 additions & 0 deletions .github/workflows/man_0_assign_version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Copyright 2024 Agnostiq Inc.
#
# This file is part of Covalent.
#
# Licensed under the Apache License 2.0 (the "License"). A copy of the
# License may be obtained with this software package or at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Use of this file is prohibited except in compliance with the License.
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: man_0_assign_version

on:
workflow_dispatch:
inputs:
nightly_tests_failed:
type: boolean
required: true
default: true
description: "WARNING: Make sure the `nightly-tests` or the most recent `tests` workflow has passed successfully in develop before running this workflow.
Uncheck this box if it has."

workflow_call:
inputs:
nightly_tests_failed:
type: boolean
required: true
default: false

permissions:
id-token: write
contents: read

jobs:
license:
name: License Scanner
uses: ./.github/workflows/license.yml

version_assigner:
name: Assign Version
needs:
- license
if: >
!inputs.nightly_tests_failed
uses: ./.github/workflows/changelog.yml
secrets: inherit # pragma: allowlist secret
87 changes: 87 additions & 0 deletions .github/workflows/man_1_push_to_master.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Copyright 2024 Agnostiq Inc.
#
# This file is part of Covalent.
#
# Licensed under the Apache License 2.0 (the "License"). A copy of the
# License may be obtained with this software package or at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Use of this file is prohibited except in compliance with the License.
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: man_1_push_to_master

on:
workflow_dispatch:
inputs:
assign_version_failed:
type: boolean
required: true
default: true
description: "WARNING: Make sure the `man_0_assign_version` workflow has passed successfully before running this workflow.
Uncheck this box if it has."

workflow_call:
inputs:
assign_version_failed:
type: boolean
required: true
default: false

permissions:
id-token: write
contents: read

jobs:
push_to_master:
name: Push develop to master
runs-on: ubuntu-latest
outputs:
release: ${{ steps.push.outputs.release }}

steps:
- name: Checkout develop
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 0

- name: Get versions of develop and master
id: get-versions
run: |
develop_version="$(cat ./VERSION)"
master_version="$(git show origin/master:VERSION)"
echo "::set-output name=develop_version::${develop_version}"
echo "::set-output name=master_version::${master_version}"
- name: Perform the push to master if develop is ahead
id: push
if: >
!inputs.assign_version_failed
run: |
DEVELOP_VERSION="${{ steps.get-versions.outputs.develop_version }}"
MASTER_VERSION="${{ steps.get-versions.outputs.master_version }}"
release=false
echo "Develop version: ${DEVELOP_VERSION}"
echo "Master version: ${MASTER_VERSION}"
if [[ "${DEVELOP_VERSION}" == "${MASTER_VERSION}" ]]; then
echo "No new version detected. Exiting."
exit 1
elif dpkg --compare-versions $DEVELOP_VERSION 'gt' $MASTER_VERSION ; then
echo "Pushing to master."
git config user.name "CovalentOpsBot"
git config user.email "[email protected]"
git remote set-url origin https://${{ secrets.COVALENT_OPS_BOT_TOKEN }}@github.com/AgnostiqHQ/covalent.git
git push origin HEAD:master
release=true
else
echo "This means the version on develop is lower than the version on master or something is wrong."
exit 1
fi
echo "Ready to release: ${release}"
echo "::set-output name=release::$release"
73 changes: 73 additions & 0 deletions .github/workflows/man_2_create_prerelease.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Copyright 2024 Agnostiq Inc.
#
# This file is part of Covalent.
#
# Licensed under the Apache License 2.0 (the "License"). A copy of the
# License may be obtained with this software package or at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Use of this file is prohibited except in compliance with the License.
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: man_2_create_prerelease

on:
workflow_dispatch:
inputs:
push_to_master_failed:
type: boolean
required: true
default: true
description: "WARNING: Make sure the `man_1_push_to_master` workflow has passed successfully before running this workflow.
Uncheck this box if it has."

workflow_call:
inputs:
push_to_master_failed:
type: boolean
required: true
default: false

permissions:
id-token: write
contents: read

jobs:
create_release:
name: Create a Prerelease
uses: ./.github/workflows/release.yml
if: >
!inputs.push_to_master_failed
with:
prerelease: true
secrets: inherit # pragma: allowlist secret

notify_slack:
name: Notify on Slack
needs:
- create_release
runs-on: ubuntu-latest
steps:
- name: Checkout master
uses: actions/checkout@v4
with:
ref: ${{ inputs.branch_name }}

- name: Format Slack message
run: |
VERSION="$(cat ./VERSION)"
SLACK_MSG=":rocket: Version $VERSION is now available."
echo "SLACK_MSG=$SLACK_MSG" >> $GITHUB_ENV
- name: Notify Slack
uses: rtCamp/action-slack-notify@v2
env:
SLACK_CHANNEL: "covalent-ci"
SLACK_USERNAME: "CovalentOpsBot"
SLACK_MESSAGE: ${{ env.SLACK_MSG }}
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
66 changes: 66 additions & 0 deletions .github/workflows/nightly-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Copyright 2024 Agnostiq Inc.
#
# This file is part of Covalent.
#
# Licensed under the Apache License 2.0 (the "License"). A copy of the
# License may be obtained with this software package or at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Use of this file is prohibited except in compliance with the License.
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: nightly-tests

on:
schedule:
- cron: "0 0 * * *"

workflow_dispatch:

permissions:
id-token: write
contents: read

jobs:
license:
name: License Scanner
uses: ./.github/workflows/license.yml

tests:
name: Unit and Functional Tests
needs:
- license
uses: ./.github/workflows/tests.yml
secrets: inherit # pragma: allowlist secret

assign_version:
name: Assign Version
needs:
- tests
uses: ./.github/workflows/man_0_assign_version.yml
secrets: inherit # pragma: allowlist secret
with:
nightly_tests_failed: false

push_to_master:
name: Push to Master
needs:
- assign_version
uses: ./.github/workflows/man_1_push_to_master.yml
secrets: inherit # pragma: allowlist secret
with:
assign_version_failed: false

create_prerelease:
name: Create a Prerelease
needs:
- push_to_master
uses: ./.github/workflows/man_2_create_prerelease.yml
secrets: inherit # pragma: allowlist secret
with:
push_to_master_failed: false
Loading

0 comments on commit 7b87df3

Please sign in to comment.