diff --git a/.github/workflows/daily-alpha.yml b/.github/workflows/daily-alpha.yml new file mode 100644 index 0000000000..803be0407b --- /dev/null +++ b/.github/workflows/daily-alpha.yml @@ -0,0 +1,103 @@ +name: Release daily alpha +on: + schedule: + - cron: 0 0 30 * 1-5 # At 12:30am UTC work day + workflow_dispatch: # for testing +jobs: + tag: + outputs: + tagname: v${{ steps.version.outputs.VERSION }} + version: ${{ steps.version.outputs.VERSION }} + continue: ${{ steps.create-branch.outputs.CONTINUE }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: "16.x" + registry-url: "https://npm.pkg.github.com" + + - name: Install deps + run: | + npm i --location=global semver + npm install + + sudo apt-get install -y ripgrep + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Bump version + id: version + run: npm run bump-version-for-cron + - name: Check if branch already exists + id: check-branch + run: git ls-remote --exit-code --tags origin v${{ steps.version.outputs.VERSION }} + continue-on-error: true + - name: Create branch and tag and push + id: create-branch + run: | + # failure means that the tag doesn't exist so we should create it + if [ ${{ steps.check-branch.outcome }} != 'failure' ]; then + echo "CONTINUE=false" >> "$GITHUB_OUTPUT" + exit 0 + fi + + git config --global user.email "bot@k8slens.dev" + git config --global user.name "k8slens bot" + + git checkout -b release/v${{ steps.version.outputs.VERSION }} + git add . + git commit -sm "Release ${{ steps.version.outputs.VERSION }}" + git tag v${{ steps.version.outputs.VERSION }} + git push origin v${{ steps.version.outputs.VERSION }} + echo "CONTINUE=true" >> "$GITHUB_OUTPUT" + create_release: + outputs: + upload_url: ${{ steps.create_release.outputs.upload_url }} + version: ${{ needs.tag.outputs.version }} + needs: [tag] + if: ${{ needs.tag.outputs.continue == 'true' }} + runs-on: ubuntu-20.04 + steps: + - name: Create GitHub release + uses: softprops/action-gh-release@v1 + id: create_release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ needs.tag.outputs.tagname }} + name: ${{ needs.tag.outputs.tagname }} + generate_release_notes: true + prerelease: true + release_packages: + needs: [create_release] + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + with: + ref: v${{ needs.create_release.outputs.version }} + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v3 + with: + node-version: "16.x" + cache: "npm" + registry-url: "https://npm.pkg.github.com" + - name: Build package + shell: bash + run: | + yarn install --frozen-lockfile + yarn run build + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Release to GitHub NPM registry + run: | + npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}" + yarn lerna \ + publish from-package \ + --no-push \ + --no-git-tag-version \ + --yes \ + --dist-tag cron + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/publish-master-npm.yml b/.github/workflows/publish-master-npm.yml deleted file mode 100644 index 464e2adbe7..0000000000 --- a/.github/workflows/publish-master-npm.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Publish NPM Package `master` -on: - pull_request: - types: - - closed -concurrency: - group: publish-master-npm - cancel-in-progress: true -jobs: - publish: - name: Publish Extensions NPM Package `master` - runs-on: ubuntu-latest - if: ${{ github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'area/extension') }} - strategy: - matrix: - node-version: [16.x] - steps: - - name: Checkout Release - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Using Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - - name: Generate NPM packages - run: | - yarn install --frozen-lockfile - yarn run build - - - name: Publish NPM package - run: | - npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}" - yarn lerna publish from-package --dist-tag master --no-push --no-git-tag-version --yes - env: - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/publish-release-npm.yml b/.github/workflows/publish-release-npm.yml index cb87159709..b407ed4ff2 100644 --- a/.github/workflows/publish-release-npm.yml +++ b/.github/workflows/publish-release-npm.yml @@ -40,7 +40,7 @@ jobs: npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}" VERSION=$(cat lerna.json | jq '.version' --raw-output) echo ${VERSION} - DIST_TAG=$(npm exec -- @k8slens/semver --prerelease 0 ${VERSION}) + DIST_TAG=$(node packages/semver/dist/index.js --prerelease 0 ${VERSION}) yarn lerna \ publish from-package \ --no-push \ diff --git a/package.json b/package.json index 3ccfff7c4e..2728d68dea 100644 --- a/package.json +++ b/package.json @@ -18,12 +18,11 @@ "test:unit": "lerna run --stream test:unit", "test:integration": "lerna run --stream test:integration", "bump-version": "lerna version --no-git-tag-version --no-push", - "create-release-pr": "create-release-pr", + "precreate-release-pr": "cd packages/release-tool && yarn run build", + "create-release-pr": "node packages/release-tool/dist/index.js", "postinstall": "lerna bootstrap --ignore open-lens && lerna bootstrap --scope open-lens --include-dependencies" }, "devDependencies": { - "@k8slens/semver": "./packages/semver", - "@k8slens/release-tool": "./packages/release-tool", "adr": "^1.4.3", "cross-env": "^7.0.3", "lerna": "^6.4.1", diff --git a/packages/core/src/renderer/components/+namespaces/namespaces.scss b/packages/core/src/renderer/components/+namespaces/namespaces.scss index 8636d2f5ad..8aabb06a4a 100644 --- a/packages/core/src/renderer/components/+namespaces/namespaces.scss +++ b/packages/core/src/renderer/components/+namespaces/namespaces.scss @@ -22,4 +22,8 @@ @include namespaceStatus; } } + + .subnamespaceBadge { + margin-inline-start: var(--margin); + } } diff --git a/packages/core/src/renderer/components/+namespaces/route.tsx b/packages/core/src/renderer/components/+namespaces/route.tsx index 7efbfb738e..11e6d97864 100644 --- a/packages/core/src/renderer/components/+namespaces/route.tsx +++ b/packages/core/src/renderer/components/+namespaces/route.tsx @@ -16,6 +16,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import namespaceStoreInjectable from "./store.injectable"; import { KubeObjectAge } from "../kube-object/age"; import openAddNamepaceDialogInjectable from "./add-dialog/open.injectable"; +import { SubnamespaceBadge } from "./subnamespace-badge"; enum columnId { name = "name", @@ -55,7 +56,12 @@ const NonInjectedNamespacesRoute = ({ namespaceStore, openAddNamespaceDialog }: { title: "Status", className: "status", sortBy: columnId.status, id: columnId.status }, ]} renderTableContents={namespace => [ - namespace.getName(), + <> + {namespace.getName()} + {namespace.isSubnamespace() && ( + + )} + , , namespace.getLabels().map(label => ( { id: string; } -export function SubnamespaceBadge({ id, ...other }: SubnamespaceBadgeProps) { +export function SubnamespaceBadge({ id, className, ...other }: SubnamespaceBadgeProps) { return ( <>