Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
484b6eb423 |
@@ -1,18 +1,13 @@
|
|||||||
name: Create release PR
|
name: Create release PR
|
||||||
|
|
||||||
run-name: Create release PR for new ${{ github.event.inputs.version }} version
|
run-name: Create release PR for v${{ github.event.inputs.version }}
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
version:
|
version:
|
||||||
required: true
|
required: true
|
||||||
type: choice
|
description: "Version to bump `package.json` to (format: x.y.z)"
|
||||||
description: "What type of release is this"
|
|
||||||
options:
|
|
||||||
- "major"
|
|
||||||
- "minor"
|
|
||||||
- "patch"
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
create-release-pr:
|
create-release-pr:
|
||||||
@@ -36,27 +31,21 @@ jobs:
|
|||||||
git config --global user.email "[email protected]"
|
git config --global user.email "[email protected]"
|
||||||
git config --global user.name "GitHub Actions"
|
git config --global user.name "GitHub Actions"
|
||||||
|
|
||||||
NEW_VERSION=$(./script/workflows/increment-version.sh ${{ inputs.version }})
|
git checkout -b release/${{ inputs.version }}
|
||||||
|
|
||||||
git checkout -b release/$NEW_VERSION
|
npx lerna version ${{ inputs.version }} --yes --no-push --no-git-tag-version --force-publish
|
||||||
|
|
||||||
npx lerna version $NEW_VERSION --yes --no-push --no-git-tag-version --force-publish
|
|
||||||
|
|
||||||
git add **/package.json package-lock.json lerna.json
|
git add **/package.json package-lock.json lerna.json
|
||||||
git commit -m "Release extension version $NEW_VERSION"
|
git commit -m "Release extension version ${{ inputs.version }}"
|
||||||
|
|
||||||
git push --set-upstream origin release/$NEW_VERSION
|
git push --set-upstream origin release/${{ inputs.version }}
|
||||||
|
|
||||||
echo "new_version=$NEW_VERSION" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Create PR
|
- name: Create PR
|
||||||
run: |
|
run: |
|
||||||
LAST_PR=$(gh pr list --repo ${{ github.repository }} --limit 1 --state merged --search "Release version" --json number | jq -r '.[0].number')
|
|
||||||
./script/workflows/generate-release-notes.sh $LAST_PR ${{ env.new_version }}
|
|
||||||
gh pr create \
|
gh pr create \
|
||||||
--title "Release version ${{ env.new_version }}" \
|
--title "Release version ${{ inputs.version }}" \
|
||||||
--body-file releasenotes.md \
|
--body "Release version ${{ inputs.version }}" \
|
||||||
--base main \
|
--base main \
|
||||||
--head release/${{ env.new_version }}
|
--head release/${{ inputs.version }}
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@actions/expressions",
|
"name": "@actions/expressions",
|
||||||
"version": "0.3.5",
|
"version": "0.3.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"source": "./src/index.ts",
|
"source": "./src/index.ts",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@actions/languageserver",
|
"name": "@actions/languageserver",
|
||||||
"version": "0.3.5",
|
"version": "0.3.3",
|
||||||
"description": "Language server for GitHub Actions",
|
"description": "Language server for GitHub Actions",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -43,8 +43,8 @@
|
|||||||
"watch": "tsc --build tsconfig.build.json --watch"
|
"watch": "tsc --build tsconfig.build.json --watch"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/languageservice": "^0.3.5",
|
"@actions/languageservice": "^0.3.3",
|
||||||
"@actions/workflow-parser": "^0.3.5",
|
"@actions/workflow-parser": "^0.3.3",
|
||||||
"@octokit/rest": "^19.0.7",
|
"@octokit/rest": "^19.0.7",
|
||||||
"@octokit/types": "^9.0.0",
|
"@octokit/types": "^9.0.0",
|
||||||
"vscode-languageserver": "^8.0.2",
|
"vscode-languageserver": "^8.0.2",
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ import {Octokit} from "@octokit/rest";
|
|||||||
export function getClient(token: string, userAgent?: string): Octokit {
|
export function getClient(token: string, userAgent?: string): Octokit {
|
||||||
return new Octokit({
|
return new Octokit({
|
||||||
auth: token,
|
auth: token,
|
||||||
userAgent: userAgent || `GitHub Actions Language Server`
|
userAgent: userAgent || `GitHub Actions Language Server`,
|
||||||
|
request: {
|
||||||
|
insecure_ssl: 1
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ export async function getSecrets(
|
|||||||
}
|
}
|
||||||
|
|
||||||
const eventsConfig = workflowContext?.template?.events;
|
const eventsConfig = workflowContext?.template?.events;
|
||||||
|
|
||||||
if (eventsConfig?.workflow_call) {
|
if (eventsConfig?.workflow_call) {
|
||||||
// Unpredictable secrets may be passed in via a workflow_call trigger
|
// Unpredictable secrets may be passed in via a workflow_call trigger
|
||||||
secretsContext.complete = false;
|
secretsContext.complete = false;
|
||||||
@@ -39,7 +38,6 @@ export async function getSecrets(
|
|||||||
}
|
}
|
||||||
|
|
||||||
let environmentName: string | undefined;
|
let environmentName: string | undefined;
|
||||||
|
|
||||||
if (workflowContext?.job?.environment) {
|
if (workflowContext?.job?.environment) {
|
||||||
if (isString(workflowContext.job.environment)) {
|
if (isString(workflowContext.job.environment)) {
|
||||||
environmentName = workflowContext.job.environment.value;
|
environmentName = workflowContext.job.environment.value;
|
||||||
@@ -48,17 +46,10 @@ export async function getSecrets(
|
|||||||
if (isString(x.key) && x.key.value === "name") {
|
if (isString(x.key) && x.key.value === "name") {
|
||||||
if (isString(x.value)) {
|
if (isString(x.value)) {
|
||||||
environmentName = x.value.value;
|
environmentName = x.value.value;
|
||||||
} else {
|
|
||||||
// this means we have a dynamic enviornment, in those situations we
|
|
||||||
// want to make sure we skip doing secret validation
|
|
||||||
secretsContext.complete = false;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
// if the expression is something like environment: ${{ ... }} then we want to skip validation
|
|
||||||
secretsContext.complete = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@actions/languageservice",
|
"name": "@actions/languageservice",
|
||||||
"version": "0.3.5",
|
"version": "0.3.3",
|
||||||
"description": "Language service for GitHub Actions",
|
"description": "Language service for GitHub Actions",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -44,8 +44,8 @@
|
|||||||
"watch": "tsc --build tsconfig.build.json --watch"
|
"watch": "tsc --build tsconfig.build.json --watch"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/expressions": "^0.3.5",
|
"@actions/expressions": "^0.3.3",
|
||||||
"@actions/workflow-parser": "^0.3.5",
|
"@actions/workflow-parser": "^0.3.3",
|
||||||
"vscode-languageserver-textdocument": "^1.0.7",
|
"vscode-languageserver-textdocument": "^1.0.7",
|
||||||
"vscode-languageserver-types": "^3.17.2",
|
"vscode-languageserver-types": "^3.17.2",
|
||||||
"vscode-uri": "^3.0.7",
|
"vscode-uri": "^3.0.7",
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
|
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
|
||||||
"useWorkspaces": true,
|
"useWorkspaces": true,
|
||||||
"version": "0.3.5"
|
"version": "0.3.3"
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+9
-9
@@ -135,7 +135,7 @@
|
|||||||
},
|
},
|
||||||
"expressions": {
|
"expressions": {
|
||||||
"name": "@actions/expressions",
|
"name": "@actions/expressions",
|
||||||
"version": "0.3.5",
|
"version": "0.3.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^29.0.3",
|
"@types/jest": "^29.0.3",
|
||||||
@@ -395,11 +395,11 @@
|
|||||||
},
|
},
|
||||||
"languageserver": {
|
"languageserver": {
|
||||||
"name": "@actions/languageserver",
|
"name": "@actions/languageserver",
|
||||||
"version": "0.3.5",
|
"version": "0.3.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/languageservice": "^0.3.5",
|
"@actions/languageservice": "^0.3.3",
|
||||||
"@actions/workflow-parser": "^0.3.5",
|
"@actions/workflow-parser": "^0.3.3",
|
||||||
"@octokit/rest": "^19.0.7",
|
"@octokit/rest": "^19.0.7",
|
||||||
"@octokit/types": "^9.0.0",
|
"@octokit/types": "^9.0.0",
|
||||||
"vscode-languageserver": "^8.0.2",
|
"vscode-languageserver": "^8.0.2",
|
||||||
@@ -678,11 +678,11 @@
|
|||||||
},
|
},
|
||||||
"languageservice": {
|
"languageservice": {
|
||||||
"name": "@actions/languageservice",
|
"name": "@actions/languageservice",
|
||||||
"version": "0.3.5",
|
"version": "0.3.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/expressions": "^0.3.5",
|
"@actions/expressions": "^0.3.3",
|
||||||
"@actions/workflow-parser": "^0.3.5",
|
"@actions/workflow-parser": "^0.3.3",
|
||||||
"vscode-languageserver-textdocument": "^1.0.7",
|
"vscode-languageserver-textdocument": "^1.0.7",
|
||||||
"vscode-languageserver-types": "^3.17.2",
|
"vscode-languageserver-types": "^3.17.2",
|
||||||
"vscode-uri": "^3.0.7",
|
"vscode-uri": "^3.0.7",
|
||||||
@@ -11720,10 +11720,10 @@
|
|||||||
},
|
},
|
||||||
"workflow-parser": {
|
"workflow-parser": {
|
||||||
"name": "@actions/workflow-parser",
|
"name": "@actions/workflow-parser",
|
||||||
"version": "0.3.5",
|
"version": "0.3.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/expressions": "^0.3.5",
|
"@actions/expressions": "^0.3.3",
|
||||||
"cronstrue": "^2.21.0",
|
"cronstrue": "^2.21.0",
|
||||||
"yaml": "^2.0.0-8"
|
"yaml": "^2.0.0-8"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
Release 0.3.5
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# this script is used to generate release notes for a given release
|
|
||||||
# first argument is the pull request id for the last release
|
|
||||||
# the second is the new release number
|
|
||||||
|
|
||||||
# the script then grabs every pull request merged since that pull request
|
|
||||||
# and outputs a string of release notes
|
|
||||||
|
|
||||||
# get the new release number
|
|
||||||
NEW_RELEASE=$2
|
|
||||||
|
|
||||||
echo "Generating release notes for $NEW_RELEASE"
|
|
||||||
|
|
||||||
# get the last release pull request id
|
|
||||||
LAST_RELEASE_PR=$1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#get when the last release was merged
|
|
||||||
LAST_RELEASE_MERGED_AT=$(gh pr view $LAST_RELEASE_PR --repo actions/languageservices --json mergedAt | jq -r '.mergedAt')
|
|
||||||
|
|
||||||
CHANGELIST=$(gh pr list --repo actions/languageservices --base main --state merged --json title --search "merged:>$LAST_RELEASE_MERGED_AT -label:no-release")
|
|
||||||
|
|
||||||
# store the release notes in a variable so we can use it later
|
|
||||||
|
|
||||||
echo "Release $NEW_RELEASE" >> releasenotes.md
|
|
||||||
|
|
||||||
echo $CHANGELIST | jq -r '.[].title' | while read line; do
|
|
||||||
echo " - $line" >> releasenotes.md
|
|
||||||
done
|
|
||||||
|
|
||||||
echo " "
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
VERSION=$(cat lerna.json | jq -r '.version')
|
|
||||||
|
|
||||||
MAJOR=$(echo $VERSION | cut -d. -f1)
|
|
||||||
MINOR=$(echo $VERSION | cut -d. -f2)
|
|
||||||
PATCH=$(echo $VERSION | cut -d. -f3)
|
|
||||||
|
|
||||||
if [ "$1" == "major" ]; then
|
|
||||||
MAJOR=$((MAJOR+1))
|
|
||||||
MINOR=0
|
|
||||||
PATCH=0
|
|
||||||
elif [ "$1" == "minor" ]; then
|
|
||||||
MINOR=$((MINOR+1))
|
|
||||||
PATCH=0
|
|
||||||
elif [ "$1" == "patch" ]; then
|
|
||||||
PATCH=$((PATCH+1))
|
|
||||||
else
|
|
||||||
echo "Invalid version type. Use 'major', 'minor' or 'patch'"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
|
|
||||||
echo $NEW_VERSION
|
|
||||||
@@ -35,7 +35,7 @@ jobs:
|
|||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
`convertWorkflowTemplate` then takes that intermediate representation and converts it to a [`WorkflowTemplate`](./src/model/workflow-template.ts) object, which is a more convenient representation for working with workflows.
|
`convertWorkflowTemplate` then takes that intermediate representation and converts it to a [`WorkflowTemplate`](./src/workflow-template.ts) object, which is a more convenient representation for working with workflows.
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
const workflowTemplate = await convertWorkflowTemplate(result.context, result.value);
|
const workflowTemplate = await convertWorkflowTemplate(result.context, result.value);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@actions/workflow-parser",
|
"name": "@actions/workflow-parser",
|
||||||
"version": "0.3.5",
|
"version": "0.3.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"source": "./src/index.ts",
|
"source": "./src/index.ts",
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
"watch": "tsc --build tsconfig.build.json --watch"
|
"watch": "tsc --build tsconfig.build.json --watch"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/expressions": "^0.3.5",
|
"@actions/expressions": "^0.3.3",
|
||||||
"cronstrue": "^2.21.0",
|
"cronstrue": "^2.21.0",
|
||||||
"yaml": "^2.0.0-8"
|
"yaml": "^2.0.0-8"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -577,8 +577,7 @@
|
|||||||
"mapping": {
|
"mapping": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"types": "merge-group-activity",
|
"types": "merge-group-activity",
|
||||||
"branches": "event-branches",
|
"branches": "event-branches"
|
||||||
"branches-ignore": "event-branches-ignore"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
+2
-7
@@ -73,10 +73,8 @@ on:
|
|||||||
- deleted
|
- deleted
|
||||||
merge_group:
|
merge_group:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
- main
|
- main
|
||||||
branches-ignore:
|
|
||||||
- develop
|
|
||||||
types:
|
types:
|
||||||
- checks_requested
|
- checks_requested
|
||||||
milestone:
|
milestone:
|
||||||
@@ -323,9 +321,6 @@ jobs:
|
|||||||
"master",
|
"master",
|
||||||
"main"
|
"main"
|
||||||
],
|
],
|
||||||
"branches-ignore": [
|
|
||||||
"develop"
|
|
||||||
],
|
|
||||||
"types": [
|
"types": [
|
||||||
"checks_requested"
|
"checks_requested"
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user