Compare commits

..

22 Commits

Author SHA1 Message Date
aparnajyothi-y
c908be285a Update build-tool-packages.yml 2024-07-08 16:24:53 +05:30
aparnajyothi-y
9994541f1f Update build-tool-packages.yml 2024-07-08 12:32:34 +05:30
aparnajyothi-y
9a489f7635 Update build-tool-packages.yml 2024-06-28 15:33:49 +05:30
gowridurgad
3e52ce162a Update build-tool-packages.yml 2024-06-28 15:27:44 +05:30
gowridurgad
9f957a33d1 Update build-tool-packages.yml 2024-06-28 13:10:40 +05:30
gowridurgad
396031ea82 Update build-tool-packages.yml 2024-06-28 12:26:21 +05:30
gowridurgad
ce0dee0a96 Update build-tool-packages.yml 2024-06-28 12:06:39 +05:30
aparnajyothi-y
573683ef3f Update build-tool-packages.yml 2024-06-25 12:01:07 +05:30
aparnajyothi-y
9f2090d94f Update build-tool-packages.yml 2024-06-25 11:56:15 +05:30
aparnajyothi-y
59f5c62288 Update build-tool-packages.yml 2024-06-25 11:44:18 +05:30
gowridurgad
6d7d97bbfc Update build-tool-packages.yml 2024-06-25 11:11:42 +05:30
gowridurgad
2261c07726 Update build-tool-packages.yml 2024-06-25 10:52:32 +05:30
gowridurgad
f8d125bd64 Update build-tool-packages.yml 2024-06-25 10:25:30 +05:30
gowridurgad
43ef7a184e Update build-tool-packages.yml 2024-06-25 10:19:33 +05:30
gowridurgad
fd772b10e2 Update build-tool-packages.yml 2024-06-24 19:59:38 +05:30
gowridurgad
94f0c2f0d6 Update build-tool-packages.yml 2024-06-24 19:43:23 +05:30
aparnajyothi-y
8d80095e3d Update build-tool-packages.yml 2024-06-24 16:24:46 +05:30
aparnajyothi-y
e9400c9de0 Update build-tool-packages.yml 2024-06-24 16:21:03 +05:30
aparnajyothi-y
45ee256400 Update build-tool-packages.yml 2024-06-24 16:19:57 +05:30
aparnajyothi-y
4d855dfe21 Update build-tool-packages.yml 2024-06-24 16:18:55 +05:30
aparnajyothi-y
4b176b28ee Update build-tool-packages.yml 2024-06-24 16:16:03 +05:30
aparnajyothi-y
2288f67a93 Update build-tool-packages.yml 2024-06-24 16:03:09 +05:30
8 changed files with 144 additions and 142 deletions

View File

@@ -1,14 +0,0 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
version: 2
updates:
# Enable version updates for GitHub Actions
- package-ecosystem: 'github-actions'
# Workflow files stored in the default location of `.github/workflows`
# You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`.
directory: '/'
schedule:
interval: 'weekly'

View File

@@ -25,50 +25,13 @@ defaults:
run:
shell: pwsh
# Fix for windows arm64 7z file issue. More details at https://github.com/nodejs/node/issues/52231
jobs:
build:
name: Build ${{ inputs.tool-name }} ${{ inputs.tool-version }} [${{ matrix.platform }}] [${{ matrix.architecture }}]
runs-on: ubuntu-22.04
env:
ARTIFACT_NAME: ${{ inputs.tool-name }}-${{ inputs.tool-version }}-${{ matrix.platform }}-${{ matrix.architecture }}
excludewinarm: ${{ !(inputs.tool-name == 'node' && inputs['tool-version'] < '20.0.0' && matrix.architecture == 'arm64' && matrix.platform == 'win32') }}
strategy:
fail-fast: false
matrix:
platform: [linux, darwin, win32]
architecture: [x64, arm64]
steps:
- name: checkout
if: env.excludewinarm == 'true'
uses: actions/checkout@v5
with:
submodules: true
- name: Build ${{ inputs.tool-name }} ${{ inputs.tool-version }}
if: env.excludewinarm == 'true'
run: |
./builders/build-${{ inputs.tool-name }}.ps1 -Version ${{ inputs.tool-version }} `
-Platform ${{ matrix.platform }} `
-Architecture ${{ matrix.architecture }}
- name: Publish artifact
if: env.excludewinarm == 'true'
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ runner.temp }}/artifact
test:
name: Test ${{ inputs.tool-name }} ${{ inputs.tool-version }} [${{ matrix.platform }}] [${{ matrix.architecture }}]
needs: build
runs-on: ${{ matrix.os }}
env:
ARTIFACT_NAME: ${{ inputs.tool-name }}-${{ inputs.tool-version }}-${{ matrix.platform }}-${{ matrix.architecture }}
excludewinarm: ${{ !(inputs.tool-name == 'node' && inputs['tool-version'] < '20.0.0' && matrix.architecture == 'arm64' && matrix.platform == 'win32') }}
RUNNER_TYPE: ${{ matrix.runner_type }}
strategy:
fail-fast: false
matrix:
@@ -76,42 +39,140 @@ jobs:
- os: ubuntu-latest
platform: linux
architecture: x64
- os: macos-15-intel
- os: ubuntu-latest
platform: darwin
architecture: x64
- os: windows-latest
- os: ubuntu-latest
platform: win32
architecture: x64
- os: ubuntu-22.04-arm
- os: ubuntu-latest
platform: linux
architecture: arm64
- os: macos-latest
- os: ubuntu-latest
platform: darwin
architecture: arm64
- os: windows-11-arm
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Build ${{ inputs.tool-name }} ${{ inputs.tool-version }}
run: |
./builders/build-${{ inputs.tool-name }}.ps1 -Version ${{ inputs.tool-version }} `
-Platform ${{ matrix.platform }} `
-Architecture ${{ matrix.architecture }}
- name: Publish artifact
uses: actions/upload-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ runner.temp }}/artifact
build-arm:
name: Build ${{ inputs.tool-name }} ${{ inputs.tool-version }} [${{ matrix.platform }}] [${{ matrix.architecture }}]
runs-on: windows-latest
if: (inputs.tool-name == 'go') || (inputs.tool-name == 'node' && inputs['tool-version'] > '20.0.0')
env:
ARTIFACT_NAME: ${{ inputs.tool-name }}-${{ inputs.tool-version }}-${{ matrix.platform }}-${{ matrix.architecture }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
platform: win32
architecture: arm64
steps:
- uses: actions/checkout@v4
with:
submodules: true
steps:
- name: checkout
if: env.excludewinarm == 'true'
uses: actions/checkout@v5
- name: Build ${{ inputs.tool-name }} ${{ inputs.tool-version }}
run: |
./builders/build-${{ inputs.tool-name }}.ps1 -Version ${{ inputs.tool-version }} `
-Platform ${{ matrix.platform }} `
-Architecture ${{ matrix.architecture }}
- name: Publish artifact
uses: actions/upload-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ runner.temp }}/artifact
test:
name: Test ${{ inputs.tool-name }} ${{ inputs.tool-version }} [${{ matrix.platform }}] [${{ matrix.arch }}]
needs: build
runs-on: ${{ matrix.os }}
env:
ARTIFACT_NAME: ${{ inputs.tool-name }}-${{ inputs.tool-version }}-${{ matrix.platform }}-${{ matrix.arch }}
RUNNER_TYPE: ${{ matrix.runner_type }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
platform: linux
arch: x64
- os: setup-actions-ubuntu-arm64-2-core
platform: linux
arch: arm64
runner_type: self-hosted
- os: macos-13
platform: darwin
arch: x64
- os: macos-latest
platform: darwin
arch: arm64
- os: windows-latest
platform: win32
arch: x64
- os: setup-actions-windows-arm64-4-core
platform: win32
arch: arm64
runner_type: self-hosted
steps:
- name: Setup Environment on Windows ARM64 Runner
if: matrix.os == 'setup-actions-windows-arm64-4-core'
shell: powershell
run: |
# Install Chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
echo "C:\ProgramData\Chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
# Install PowerShell
choco install powershell-core -y
echo "C:\Program Files\PowerShell\7" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
# Install Git
choco install git -y
echo "C:\Program Files\Git\cmd" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
# Install 7-Zip
choco install 7zip -y
echo "C:\ProgramData\chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- uses: actions/checkout@v3
with:
submodules: true
- name: Fully cleanup the toolcache directory before testing
if: env.excludewinarm == 'true'
run: ./helpers/clean-toolcache.ps1 -ToolName "${{ inputs.tool-name }}"
- name: Download artifact
if: env.excludewinarm == 'true'
uses: actions/download-artifact@v5
uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
path: ${{ runner.temp }}
- name: Extract files
if: env.excludewinarm == 'true'
run: |
if ('${{ matrix.platform }}' -eq 'win32') {
if ('${{ inputs.tool-name }}' -eq 'node') {
@@ -131,28 +192,23 @@ jobs:
working-directory: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
- name: Apply build artifact to the local machine
if: env.excludewinarm == 'true'
run: |
if ('${{ matrix.platform }}' -eq 'win32') { powershell ./setup.ps1 }
else {
sh ./setup.sh
}
if ('${{ matrix.platform }}' -eq 'win32') { powershell ./setup.ps1 } else { sh ./setup.sh }
working-directory: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
- name: Setup Node.js ${{ inputs.tool-version }}
if: env.excludewinarm == 'true' && inputs.tool-name == 'node'
uses: actions/setup-node@v4
if: inputs.tool-name == 'node'
uses: actions/setup-node@v3
with:
node-version: ${{ inputs.tool-version }}
- name: Setup Go ${{ inputs.tool-version }}
if: inputs.tool-name == 'go'
uses: actions/setup-go@v6
uses: actions/setup-go@v3
with:
go-version: ${{ inputs.tool-version }}
- name: Wait for the logs
if: env.excludewinarm == 'true'
run: |
Write-Host "Fake step that does nothing"
Write-Host "We need it because log from the previous step 'Setup ${{ inputs.tool-name }}' is not available here yet."
@@ -160,26 +216,14 @@ jobs:
Write-Host "to determine if ${{ inputs.tool-name }} version was consumed from cache or if it was downloaded"
for ($i = 0; $i -lt 200; $i++) { Get-Random }
- name: Ensure Pester Installed
if: env.excludewinarm == 'true'
run: |
$module = Get-Module -ListAvailable -Name Pester
if (-not $module -or ($module.Version -lt [Version]"5.0.0")) {
Install-Module Pester -Force -Scope CurrentUser -SkipPublisherCheck
}
- name: Run tests
if: env.excludewinarm == 'true'
env:
VERSION: ${{ inputs.tool-version }}
run: |
Install-Module Pester -Force -Scope CurrentUser -SkipPublisherCheck
Import-Module Pester
$toolName = (Get-Culture).TextInfo.ToTitleCase("${{ inputs.tool-name }}")
Invoke-Pester -Configuration @{
Run = @{ Path = "./$toolName.Tests.ps1" }
Should = @{ ErrorAction = 'Continue' }
Output = @{ EnableExit = $true }
}
Invoke-Pester -Script ./$toolName.Tests.ps1 -EnableExit
working-directory: ./tests
publish_release:
@@ -188,7 +232,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v5
- uses: actions/download-artifact@v3
- name: Generate release body
id: generate-release-body
@@ -202,18 +246,14 @@ jobs:
- name: Publish Release
id: create_release
uses: actions/create-release@v1
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: bash
run: |
tag_name="${{ inputs.tool-version }}-${{ github.run_id }}"
gh release create "$tag_name" \
--repo="$GITHUB_REPOSITORY" \
--title="${{ inputs.tool-version }}" \
--notes="${{ steps.generate-release-body.outputs.RELEASE_BODY }}"
release_id=$(gh release view "$tag_name" --repo "$GITHUB_REPOSITORY" --json databaseId --jq '.databaseId')
echo "id=$release_id" >> $GITHUB_OUTPUT
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ inputs.tool-version }}-${{ github.run_id }}
release_name: ${{ inputs.tool-version }}
body: |
${{ steps.generate-release-body.outputs.RELEASE_BODY }}
- name: Generate hash for packages
run: |
@@ -228,7 +268,7 @@ jobs:
}
- name: Upload release assets
uses: actions/github-script@v8
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
@@ -252,7 +292,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Trigger "Create Pull Request" workflow
uses: actions/github-script@v8
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |

View File

@@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v3
- name: Install Pester
shell: pwsh
@@ -20,4 +20,4 @@ jobs:
run: |
Import-Module Pester
Import-Module Assert
Invoke-Pester -EnableExit
Invoke-Pester -EnableExit

View File

@@ -20,7 +20,7 @@ jobs:
name: Create Pull Request
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v3
with:
submodules: true
@@ -40,4 +40,4 @@ jobs:
-BranchName "update-versions-manifest-file" `
-CommitMessage "Update versions-manifest" `
-PullRequestTitle "[versions-manifest] Update for release from ${formattedDate}" `
-PullRequestBody "Update versions-manifest.json for release from ${formattedDate}"
-PullRequestBody "Update versions-manifest.json for release from ${formattedDate}"

View File

@@ -30,7 +30,7 @@ jobs:
outputs:
versions_output: ${{ steps.Get_new_versions.outputs.TOOL_VERSIONS }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v3
with:
submodules: true
@@ -45,7 +45,7 @@ jobs:
env:
TOOL_VERSIONS: ${{needs.find_new_versions.outputs.versions_output}}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v3
with:
submodules: true
@@ -75,7 +75,7 @@ jobs:
TOOL_VERSIONS: ${{needs.find_new_versions.outputs.versions_output}}
environment: Get Available Tools Versions - Publishing Approval
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v3
with:
submodules: true
@@ -95,7 +95,7 @@ jobs:
needs: [find_new_versions, check_new_versions, trigger_builds]
if: failure()
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v3
with:
submodules: true

View File

@@ -42,7 +42,7 @@ jobs:
name: 'Searching for new versions of ${{ matrix.tool.name }}'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v3
- id: get-new-tool-versions
name: Get new tool versions
run: |
@@ -71,7 +71,7 @@ jobs:
needs: [find-new-tool-versions]
if: failure()
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v2
- id: get-failed-jobs
name: Get failed jobs
run: |

View File

@@ -24,7 +24,7 @@ jobs:
validation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v3
with:
submodules: true
@@ -37,7 +37,7 @@ jobs:
needs: [validation]
if: failure()
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v3
with:
submodules: true

View File

@@ -1,29 +1,5 @@
# Common tools for generation of packages in the actions/*-versions repositories
This repository contains PowerShell modules that are used to generate packages for Actions. The packages are consumed by the images generated through [actions/runner-images](https://github.com/actions/runner-images) and some of the setup-* Actions
## Recommended permissions
When using the `versions-package-tools` in your GitHub Actions workflow, it is recommended to set the following permissions to ensure proper functionality:
```yaml
permissions:
contents: read # access to read repository's content
actions: read # access to reading actions
```
### Note
Thank you for your interest in this GitHub action, however, right now we are not taking contributions. Add commentMore actionsAdd commentMore actions
We continue to focus our resources on strategic areas that help our customers be successful while making developers' lives easier. While GitHub Actions remains a key part of this vision, we are allocating resources towards other areas of Actions and are not taking contributions to this repository at this time. The GitHub public roadmap is the best place to follow along for any updates on features were working on and what stage theyre in.
We are taking the following steps to better direct requests related to GitHub Actions, including:
1. We will be directing questions and support requests to our [Community Discussions area](https://github.com/orgs/community/discussions/categories/actions)
2. High Priority bugs can be reported through Community Discussions or you can report these to our support team https://support.github.com/contact/bug-report.
3. Security Issues should be handled as per our [security.md](security.md)
We will still provide security updates for this project and fix major breaking changes during this time.
You are welcome to still raise bugs in this repo.
## Contribution
Contributions are welcome! See [Contributor's Guide](./CONTRIBUTING.md) for more details about contribution process and code structure