Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Release 1.2.0 #279

Merged
merged 22 commits into from
Jun 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
ef3de3e
fix: Removed sdk as required field from Device.version (#231)
kevinshahfws Feb 28, 2024
20c4564
chore(release): 1.1.1-next.1 [skip ci]
semantic-release-bot Feb 28, 2024
9769d6d
fix: Add PlaylistEntity to EntityIntent
jlacivita Mar 6, 2024
869d942
chore(release): 1.1.1-next.2 [skip ci]
semantic-release-bot Mar 6, 2024
7c6ca7e
CoreSDK suite on MFOS - FCA standalone actions (#234)
bpvstaty366 Mar 8, 2024
5ea5d4e
feat: Firebolt CPP SDKs
HaseenaSainul Mar 27, 2024
ef6e851
chore(release): 1.2.0-next.1 [skip ci]
semantic-release-bot Mar 27, 2024
49ab03d
feat: CI/CD docs (next-major) and merges (next-major/main) (#245)
kschrief Apr 8, 2024
696f1f9
chore(release): 1.2.0-next.2 [skip ci]
semantic-release-bot Apr 8, 2024
7b1ddb4
chore: Update openRPC dependency (#262)
kschrief May 9, 2024
61e152a
Featuer/play intent (#272)
jlacivita May 23, 2024
48a1094
feat: User Interest (#170)
jlacivita Jun 6, 2024
e68c061
chore(release): 1.2.0-next.3 [skip ci]
semantic-release-bot Jun 6, 2024
c8f8dae
feat: Command and Control Intents (#251)
jlacivita Jun 6, 2024
5213418
chore(release): 1.2.0-next.4 [skip ci]
semantic-release-bot Jun 6, 2024
12628e2
chore: Adding Capabilities Specification (#273)
jlacivita Jun 13, 2024
fe8a895
chore: Adding spec for existing Language APIs (#167)
jlacivita Jun 13, 2024
e38ad5a
fix: Remove x-alternatives that don't exist (#278)
jlacivita Jun 13, 2024
e00a1dd
chore(release): 1.2.0-next.5 [skip ci]
semantic-release-bot Jun 13, 2024
c307f45
chore: Updated OpenRPC version to the 3.0.0
kevinshahfws Jun 14, 2024
fbe0610
chore: Updated OpenRPC version to the 3.0.0
kevinshahfws Jun 14, 2024
0a3eb68
chore: Updated OpenRPC version to the 3.0.0
kevinshahfws Jun 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/workflows/merge-to-main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Attempt to merge next to main
on:
workflow_dispatch:

jobs:
# Check if next can merge into main
perform_merge:
name: Perform merge if "next" can merge into "main"
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
repo-token: ${{ secrets.SEMANTIC_RELEASE_BOT_PAT }}
persist-credentials: true

# Set user identity
- name: Set-Identity
run: |
git config --global user.email "${{ secrets.GLOBAL_GITHUB_EMAIL }}"
git config --global user.name "${{ secrets.GLOBAL_GITHUB_USER }}"

# Checkout "main"
- name: Checkout main
run: git checkout "main"

- name: Perform the merge from next to main
run: |
git merge next
git push origin "main"
echo "Push to main succeeded"

# If the merge cannot be performed, let stakeholders know
message_on_failure:
name: Merge failure
needs: perform_merge
runs-on: ubuntu-latest
if: ${{ failure() }}

steps:
- name: Post error message (To-Do)
run: echo "Next cannot be merged into main cleanly"
72 changes: 72 additions & 0 deletions .github/workflows/merge-to-next-major.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Attempt to merge next to next-major
on:
workflow_dispatch:
push:
branches:
- 'next'

jobs:
# Check if next can merge into next-major
perform_merge:
name: Perform merge if "next" can merge into "next-major"
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
repo-token: ${{ secrets.SEMANTIC_RELEASE_BOT_PAT }}
persist-credentials: true

# Set user identity
- name: Set-Identity
run: |
git config --global user.email "${{ secrets.GLOBAL_GITHUB_EMAIL }}"
git config --global user.name "${{ secrets.GLOBAL_GITHUB_USER }}"

# Checkout "next-major"
- name: Checkout next-major
run: git checkout "next-major"

# Get the "next-major" version number
- name: Extract next-major version
id: extract_version
run: echo "::set-output name=version::$(node -e 'console.log(require("./package.json").version)')"

# Checkout "next"
- name: Checkout next
run: git checkout "next"

# Update "next" version to match "next-major"
- name: Update "next" version to match "next-major"
run: |
jq '.version = "${{ steps.extract_version.outputs.version }}"' package.json > temp.json

if diff -q "package.json" "temp.json" >/dev/null; then
echo "Versions are identical. No change required."
rm temp.json
else
mv temp.json package.json
git add package.json && git commit -m "Sync version to ${{ steps.extract_version.outputs.version }}"
fi

# Checkout "next-major"
- name: Checkout next-major
run: git checkout "next-major"

- name: Perform the merge from next to next-major
run: |
git merge next
git push origin "next-major"
echo "Push to next-major succeeded"

# If the merge cannot be performed, let stakeholders know
message_on_failure:
name: Merge failure
needs: perform_merge
runs-on: ubuntu-latest
if: ${{ failure() }}

steps:
- name: Post error message (To-Do)
run: echo "Next cannot be merged into next-major cleanly"
52 changes: 52 additions & 0 deletions .github/workflows/pr-comment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Comment Artifact URL on PR

on:
workflow_run:
types:
- "completed"
workflows:
- "Core SDK - MFOS standalone sanity report"

jobs:
comment-on-pr:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Get Artifact And Job Data
env:
GITHUB_TOKEN: ${{ github.token }}
OWNER: ${{ github.repository_owner }}
REPO: ${{ github.event.repository.name }}
SERVER_URL: ${{ github.server_url }}
GITHUB_REPO: ${{ github.repository }}
WORKFLOW_RUN_EVENT_OBJ: ${{ toJSON(github.event.workflow_run) }}
run: |
./.github/workflows/utils.sh getArtifactData

- name: Download an artifact
uses: actions/github-script@v6
with:
script: |
const { downloadArtifact } = require('./.github/workflows/utils.cjs');
downloadArtifact(process.env.ARTIFACT_ID,process.env.JOB_PATH,process.env.PR_NUMBER,context,github);

- name: Unzip an artifact
run: |
./.github/workflows/utils.sh unzipArtifact

- name: Post a Comment
uses: actions/github-script@v6
with:
script: |
const { createComment } = require('./.github/workflows/utils.cjs');
createComment(github, context);
env:
issue_number: ${{ env.PR_NUMBER }}
Passes: ${{ env.Passes }}
Failures: ${{ env.Failures }}
Pending: ${{ env.Pending }}
Skipped: ${{ env.Skipped }}
ARTIFACT_URL: ${{ env.ARTIFACT_URL }}
JOB_PATH: ${{ env.JOB_PATH }}
28 changes: 19 additions & 9 deletions .github/workflows/release-github.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
- 'proposed'
pull_request:
types: [opened, synchronize]
branches:
branches:
- 'next'
- 'proposed'
env:
Expand All @@ -19,6 +19,7 @@ jobs:
name: Release
runs-on: ubuntu-latest
steps:
# Checkout/install project
- name: Checkout
uses: actions/checkout@v2
with:
Expand All @@ -35,6 +36,8 @@ jobs:
run: 'echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc'
- name: Install dependencies
run: npm ci

# Set NPM_DIST_TAGS and DOCS_TAG if applicable based on branch
- name: Set main tags
if: github.ref_name == 'main' && github.event_name != 'pull_request'
run: |
Expand All @@ -45,17 +48,24 @@ jobs:
run: |
echo "NPM_DIST_TAG=next" >> $GITHUB_ENV
echo "DOCS_TAG=next" >> $GITHUB_ENV
- name: Set next-major tags
if: github.ref_name == 'next-major' && github.event_name != 'pull_request'
run: |
echo "NPM_DIST_TAG=next-major" >> $GITHUB_ENV
echo "DOCS_TAGE=next-major" >> $GITHUB_ENV
- name: Set feature branch tags
if: github.ref_name != 'main' && github.ref_name != 'next' && github.event_name != 'pull_request'
if: github.ref_name != 'main' && github.ref_name != 'next' && github.ref_name != 'next-major' && github.event_name != 'pull_request'
run: |
echo "NPM_DIST_TAG=test" >> $GITHUB_ENV
echo "FEATURE_BRANCH=${{ github.ref_name }}" >> $GITHUB_ENV
- name: Set PR tags
if: github.ref_name != 'main' && github.ref_name != 'next' && github.event_name == 'pull_request'
if: github.ref_name != 'main' && github.ref_name != 'next' && github.ref_name != 'next-major' && github.event_name == 'pull_request'
run: |
echo "NPM_DIST_TAG=test" >> $GITHUB_ENV
echo "DOCS_TAG=pr-$(node ./src/js/version.mjs branch-to-prerelease ${{ github.head_ref }})" >> $GITHUB_ENV
echo "FEATURE_BRANCH=${{ github.head_ref }}" >> $GITHUB_ENV

# Perform real (When not a PR) or dry-run (When PR) semantic-release
- name: Release mono-artifact to GitHub
if: (github.ref_name != 'main' && github.event_name != 'pull_request') || github.event_name == 'workflow_dispatch'
env:
Expand All @@ -67,7 +77,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_BOT_PAT }} # <-- Allows semantic-release-bot to push changes to protected branches
run: npx semantic-release --dry-run
- name: Build artifacts for feature branches
if: github.ref_name != 'main' && github.ref_name != 'next'
if: github.ref_name != 'main' && github.ref_name != 'next' && github.ref_name != 'next-major'
run: |
PRERELEASE=$(node ./src/js/version.mjs branch-to-prerelease $FEATURE_BRANCH)
node ./src/js/version.mjs latest-prerelease $PRERELEASE
Expand All @@ -78,15 +88,15 @@ jobs:
id: check_build
uses: andstor/file-existence-action@v2
with:
files: "./src/sdks/core/dist/lib/firebolt.mjs"
files: './src/sdks/core/dist/lib/firebolt.mjs'
- name: Release Firebolt SDKs to NPM
if: steps.check_build.outputs.files_exists == 'true' && github.event_name != 'pull_request' && (github.ref_name != 'main' || github.event_name == 'workflow_dispatch')
env:
NPM_TOKEN: ${{ secrets.SEMANTIC_RELEASE_NPM_TOKEN }} # <-- Allows semantic-release to publish to npm without 2 factor auth.
run: |
npm --version
echo "NPM DIST TAG :: " $NPM_DIST_TAG
npm publish --tag $NPM_DIST_TAG --workspaces
npm --version
echo "NPM DIST TAG :: " $NPM_DIST_TAG
npm publish --tag $NPM_DIST_TAG --workspaces
- name: Dry-run Firebolt SDKs to NPM
if: steps.check_build.outputs.files_exists == 'true' && (github.ref_name == 'main' && github.event_name != 'workflow_dispatch')
env:
Expand All @@ -100,7 +110,7 @@ jobs:
cd /tmp
git clone https://rdkcentral:[email protected]/rdkcentral/firebolt.git ./firebolt-docs
- name: Release docs to GitHub.io
if: steps.check_build.outputs.files_exists == 'true' && (github.ref_name == 'main' || github.ref_name == 'next' || github.event_name == 'pull_request')
if: steps.check_build.outputs.files_exists == 'true' && (github.ref_name == 'main' || github.ref_name == 'next' || github.ref_name == 'next-major' || github.event_name == 'pull_request')
env:
GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_BOT_PAT }} # <-- Allows semantic-release-bot to push changes to protected branches
run: |
Expand Down
34 changes: 34 additions & 0 deletions .github/workflows/run-standalone-mfos-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Core SDK - MFOS standalone sanity report

on:
pull_request:
types:
- opened
- synchronize
branches: [ next ]

jobs:
RunStandaloneTests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Run tests and create assets
env:
EVENT_NAME: ${{ github.event_name }}
GITHUB_REF: ${{ github.ref }}
PR_HEAD_REF: ${{ github.event.pull_request.head.ref }}
INTENT: ${{ secrets.INTENT }}
run: |
./.github/workflows/utils.sh runTests

- name: Upload report.json as an artifact
uses: actions/upload-artifact@v2
with:
name: report
path: ${{ github.workspace }}/report

- name: Get results from report.json
run: |
./.github/workflows/utils.sh getResults
53 changes: 53 additions & 0 deletions .github/workflows/utils.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@

async function downloadArtifact(ARTIFACT_ID, JOB_PATH, PR_NUMBER, context, github) {
if (!ARTIFACT_ID) {
console.log("Send the comment to PR and exit the job");
// Create a comment
const comment = `Failed to create a report:\n Job logs: ${JOB_PATH}`;

// Post the comment to the pull request
let prcomment = await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: PR_NUMBER,
body: comment,
});

process.exit(1);
} else {
// Download report.json
let download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: ARTIFACT_ID,
archive_format: 'zip',
});

let fs = require('fs');
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/report.zip`, Buffer.from(download.data));

console.log("Artifact downloaded successfully.");
}
}

async function createComment(github, context) {
const { issue_number, Passes, Failures, Pending, Skipped, ARTIFACT_URL, JOB_PATH } = process.env;

const body = `
Core SDK - MFOS standalone sanity report:
Passes - ${Passes} Failures - ${Failures} Pending - ${Pending} Skipped - ${Skipped}
Report JSON/HTML Files: ${ARTIFACT_URL}
Job Logs: ${JOB_PATH}
`;

const response = await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue_number,
body: body.trim()
});

console.log('Comment updated successfully.');
}

module.exports = { downloadArtifact, createComment };
Loading
Loading