diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index db05427c316..67aeb533cbb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,7 +46,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 # Build runner layout - name: Build & Layout Release diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 28f447736f3..2d0e6efbbba 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8383337589b..a3ec84623ce 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ jobs: if: startsWith(github.ref, 'refs/heads/releases/') || github.ref == 'refs/heads/main' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 # Make sure ./releaseVersion match ./src/runnerversion # Query GitHub release ensure version is not used @@ -51,24 +51,28 @@ jobs: linux-arm-sha: ${{ steps.sha.outputs.linux-arm-sha256 }} win-x64-sha: ${{ steps.sha.outputs.win-x64-sha256 }} osx-x64-sha: ${{ steps.sha.outputs.osx-x64-sha256 }} + osx-arm64-sha: ${{ steps.sha.outputs.osx-arm64-sha256 }} linux-x64-sha-noexternals: ${{ steps.sha_noexternals.outputs.linux-x64-sha256 }} linux-arm64-sha-noexternals: ${{ steps.sha_noexternals.outputs.linux-arm64-sha256 }} linux-arm-sha-noexternals: ${{ steps.sha_noexternals.outputs.linux-arm-sha256 }} win-x64-sha-noexternals: ${{ steps.sha_noexternals.outputs.win-x64-sha256 }} osx-x64-sha-noexternals: ${{ steps.sha_noexternals.outputs.osx-x64-sha256 }} + osx-arm64-sha-noexternals: ${{ steps.sha_noexternals.outputs.osx-arm64-sha256 }} linux-x64-sha-noruntime: ${{ steps.sha_noruntime.outputs.linux-x64-sha256 }} linux-arm64-sha-noruntime: ${{ steps.sha_noruntime.outputs.linux-arm64-sha256 }} linux-arm-sha-noruntime: ${{ steps.sha_noruntime.outputs.linux-arm-sha256 }} win-x64-sha-noruntime: ${{ steps.sha_noruntime.outputs.win-x64-sha256 }} osx-x64-sha-noruntime: ${{ steps.sha_noruntime.outputs.osx-x64-sha256 }} + osx-arm64-sha-noruntime: ${{ steps.sha_noruntime.outputs.osx-arm64-sha256 }} linux-x64-sha-noruntime-noexternals: ${{ steps.sha_noruntime_noexternals.outputs.linux-x64-sha256 }} linux-arm64-sha-noruntime-noexternals: ${{ steps.sha_noruntime_noexternals.outputs.linux-arm64-sha256 }} linux-arm-sha-noruntime-noexternals: ${{ steps.sha_noruntime_noexternals.outputs.linux-arm-sha256 }} win-x64-sha-noruntime-noexternals: ${{ steps.sha_noruntime_noexternals.outputs.win-x64-sha256 }} osx-x64-sha-noruntime-noexternals: ${{ steps.sha_noruntime_noexternals.outputs.osx-x64-sha256 }} + osx-arm64-sha-noruntime-noexternals: ${{ steps.sha_noruntime_noexternals.outputs.osx-arm64-sha256 }} strategy: matrix: - runtime: [ linux-x64, linux-arm64, linux-arm, win-x64, osx-x64 ] + runtime: [ linux-x64, linux-arm64, linux-arm, win-x64, osx-x64, osx-arm64 ] include: - runtime: linux-x64 os: ubuntu-latest @@ -85,6 +89,10 @@ jobs: - runtime: osx-x64 os: macOS-latest devScript: ./dev.sh + + - runtime: osx-arm64 + os: macOS-latest + devScript: ./dev.sh - runtime: win-x64 os: windows-2019 @@ -92,7 +100,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 # Build runner layout - name: Build & Layout Release @@ -100,13 +108,6 @@ jobs: ${{ matrix.devScript }} layout Release ${{ matrix.runtime }} working-directory: src - # Run tests - #- name: L0 - # run: | - # ${{ matrix.devScript }} test - # working-directory: src - # if: matrix.runtime != 'linux-arm64' && matrix.runtime != 'linux-arm' - # Create runner package tar.gz/zip - name: Package Release if: github.event_name != 'pull_request' @@ -217,7 +218,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 # Download runner package tar.gz/zip produced by 'build' job - name: Download Artifact @@ -239,21 +240,25 @@ jobs: var releaseNote = fs.readFileSync('${{ github.workspace }}/releaseNote.md', 'utf8').replace(//g, runnerVersion) releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.win-x64-sha}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.osx-x64-sha}}') + releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.osx-arm64-sha}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-x64-sha}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-arm-sha}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-arm64-sha}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.win-x64-sha-noexternals}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.osx-x64-sha-noexternals}}') + releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.osx-arm64-sha-noexternals}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-x64-sha-noexternals}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-arm-sha-noexternals}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-arm64-sha-noexternals}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.win-x64-sha-noruntime}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.osx-x64-sha-noruntime}}') + releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.osx-arm64-sha-noruntime}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-x64-sha-noruntime}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-arm-sha-noruntime}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-arm64-sha-noruntime}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.win-x64-sha-noruntime-noexternals}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.osx-x64-sha-noruntime-noexternals}}') + releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.osx-arm64-sha-noruntime-noexternals}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-x64-sha-noruntime-noexternals}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-arm-sha-noruntime-noexternals}}') releaseNote = releaseNote.replace(//g, '${{needs.build.outputs.linux-arm64-sha-noruntime-noexternals}}') @@ -267,6 +272,7 @@ jobs: ls -l echo "${{needs.build.outputs.win-x64-sha}} actions-runner-win-x64-${{ steps.releaseNote.outputs.version }}.zip" | shasum -a 256 -c echo "${{needs.build.outputs.osx-x64-sha}} actions-runner-osx-x64-${{ steps.releaseNote.outputs.version }}.tar.gz" | shasum -a 256 -c + echo "${{needs.build.outputs.osx-arm64-sha}} actions-runner-osx-arm64-${{ steps.releaseNote.outputs.version }}.tar.gz" | shasum -a 256 -c echo "${{needs.build.outputs.linux-x64-sha}} actions-runner-linux-x64-${{ steps.releaseNote.outputs.version }}.tar.gz" | shasum -a 256 -c echo "${{needs.build.outputs.linux-arm-sha}} actions-runner-linux-arm-${{ steps.releaseNote.outputs.version }}.tar.gz" | shasum -a 256 -c echo "${{needs.build.outputs.linux-arm64-sha}} actions-runner-linux-arm64-${{ steps.releaseNote.outputs.version }}.tar.gz" | shasum -a 256 -c @@ -314,6 +320,16 @@ jobs: asset_name: actions-runner-osx-x64-${{ steps.releaseNote.outputs.version }}.tar.gz asset_content_type: application/octet-stream + - name: Upload Release Asset (osx-arm64) + uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.createRelease.outputs.upload_url }} + asset_path: ${{ github.workspace }}/_package/actions-runner-osx-arm64-${{ steps.releaseNote.outputs.version }}.tar.gz + asset_name: actions-runner-osx-arm64-${{ steps.releaseNote.outputs.version }}.tar.gz + asset_content_type: application/octet-stream + - name: Upload Release Asset (linux-arm) uses: actions/upload-release-asset@v1.0.1 env: @@ -365,6 +381,16 @@ jobs: asset_name: actions-runner-osx-x64-${{ steps.releaseNote.outputs.version }}-noexternals.tar.gz asset_content_type: application/octet-stream + - name: Upload Release Asset (osx-arm64-noexternals) + uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.createRelease.outputs.upload_url }} + asset_path: ${{ github.workspace }}/_package_trims/trim_externals/actions-runner-osx-arm64-${{ steps.releaseNote.outputs.version }}-noexternals.tar.gz + asset_name: actions-runner-osx-arm64-${{ steps.releaseNote.outputs.version }}-noexternals.tar.gz + asset_content_type: application/octet-stream + - name: Upload Release Asset (linux-arm-noexternals) uses: actions/upload-release-asset@v1.0.1 env: @@ -416,6 +442,16 @@ jobs: asset_name: actions-runner-osx-x64-${{ steps.releaseNote.outputs.version }}-noruntime.tar.gz asset_content_type: application/octet-stream + - name: Upload Release Asset (osx-arm64-noruntime) + uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.createRelease.outputs.upload_url }} + asset_path: ${{ github.workspace }}/_package_trims/trim_runtime/actions-runner-osx-arm64-${{ steps.releaseNote.outputs.version }}-noruntime.tar.gz + asset_name: actions-runner-osx-arm64-${{ steps.releaseNote.outputs.version }}-noruntime.tar.gz + asset_content_type: application/octet-stream + - name: Upload Release Asset (linux-arm-noruntime) uses: actions/upload-release-asset@v1.0.1 env: @@ -467,6 +503,16 @@ jobs: asset_name: actions-runner-osx-x64-${{ steps.releaseNote.outputs.version }}-noruntime-noexternals.tar.gz asset_content_type: application/octet-stream + - name: Upload Release Asset (osx-arm64-noruntime-noexternals) + uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.createRelease.outputs.upload_url }} + asset_path: ${{ github.workspace }}/_package_trims/trim_runtime_externals/actions-runner-osx-arm64-${{ steps.releaseNote.outputs.version }}-noruntime-noexternals.tar.gz + asset_name: actions-runner-osx-arm64-${{ steps.releaseNote.outputs.version }}-noruntime-noexternals.tar.gz + asset_content_type: application/octet-stream + - name: Upload Release Asset (linux-arm-noruntime-noexternals) uses: actions/upload-release-asset@v1.0.1 env: @@ -518,6 +564,16 @@ jobs: asset_name: actions-runner-osx-x64-${{ steps.releaseNote.outputs.version }}-trimmedpackages.json asset_content_type: application/octet-stream + - name: Upload Release Asset (osx-arm64-trimmedpackages.json) + uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.createRelease.outputs.upload_url }} + asset_path: ${{ github.workspace }}/osx-arm64-trimmedpackages.json + asset_name: actions-runner-osx-arm64-${{ steps.releaseNote.outputs.version }}-trimmedpackages.json + asset_content_type: application/octet-stream + - name: Upload Release Asset (linux-arm-trimmedpackages.json) uses: actions/upload-release-asset@v1.0.1 env: diff --git a/docs/start/envosx.md b/docs/start/envosx.md index 025e5dcc2f7..7a2e95fc85b 100644 --- a/docs/start/envosx.md +++ b/docs/start/envosx.md @@ -5,12 +5,6 @@ ## Supported Versions - macOS High Sierra (10.13) and later versions - -## Apple Silicon M1 - -The runner is currently not supported on devices with an Apple M1 chip. -We are waiting for official .NET support. You can read more here about the [current state of support here](https://github.com/orgs/dotnet/projects/18#card-56812463). -Current .NET project board about M1 support: -https://github.com/orgs/dotnet/projects/18#card-56812463 + - x64 and arm64 (Apple Silicon) ## [More .Net Core Prerequisites Information](https://docs.microsoft.com/en-us/dotnet/core/macos-prerequisites?tabs=netcore30) diff --git a/releaseNote.md b/releaseNote.md index 4a52b1cb555..518f7f1e616 100644 --- a/releaseNote.md +++ b/releaseNote.md @@ -22,7 +22,7 @@ Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO.Compression.ZipFile]::ExtractToDirectory("$PWD\actions-runner-win-x64-.zip", "$PWD") ``` -## OSX +## OSX x64 ``` bash # Create a folder @@ -33,6 +33,17 @@ curl -O -L https://github.com/actions/runner/releases/download/v tar xzf ./actions-runner-osx-x64-.tar.gz ``` +## [Pre-release] OSX arm64 (Apple silicon) + +``` bash +# Create a folder +mkdir actions-runner && cd actions-runner +# Download the latest runner package +curl -O -L https://github.com/actions/runner/releases/download/v/actions-runner-osx-arm64-.tar.gz +# Extract the installer +tar xzf ./actions-runner-osx-arm64-.tar.gz +``` + ## Linux x64 ``` bash @@ -75,24 +86,28 @@ The SHA-256 checksums for the packages included in this build are shown below: - actions-runner-win-x64-.zip - actions-runner-osx-x64-.tar.gz +- actions-runner-osx-arm64-.tar.gz - actions-runner-linux-x64-.tar.gz - actions-runner-linux-arm64-.tar.gz - actions-runner-linux-arm-.tar.gz - actions-runner-win-x64--noexternals.zip - actions-runner-osx-x64--noexternals.tar.gz +- actions-runner-osx-arm64--noexternals.tar.gz - actions-runner-linux-x64--noexternals.tar.gz - actions-runner-linux-arm64--noexternals.tar.gz - actions-runner-linux-arm--noexternals.tar.gz - actions-runner-win-x64--noruntime.zip - actions-runner-osx-x64--noruntime.tar.gz +- actions-runner-osx-arm64--noruntime.tar.gz - actions-runner-linux-x64--noruntime.tar.gz - actions-runner-linux-arm64--noruntime.tar.gz - actions-runner-linux-arm--noruntime.tar.gz - actions-runner-win-x64--noruntime-noexternals.zip - actions-runner-osx-x64--noruntime-noexternals.tar.gz +- actions-runner-osx-arm64--noruntime-noexternals.tar.gz - actions-runner-linux-x64--noruntime-noexternals.tar.gz - actions-runner-linux-arm64--noruntime-noexternals.tar.gz - actions-runner-linux-arm--noruntime-noexternals.tar.gz