Skip to content

150: Support more cpu architectures#184

Merged
dakale merged 27 commits into
masterfrom
150-runner-arch
Nov 13, 2019
Merged

150: Support more cpu architectures#184
dakale merged 27 commits into
masterfrom
150-runner-arch

Conversation

@dakale

@dakale dakale commented Nov 7, 2019

Copy link
Copy Markdown
Contributor

For: https://github.com/github/pe-actions-runtime/issues/150

Adds a win-x86, linux-arm, and linux-arm64 build

Alpine-based node external is currently not built for arm or arm64

Comment thread azure-pipelines.yml Outdated
Comment thread src/Misc/externals.sh Outdated
fi

if [[ "$PACKAGERUNTIME" == "linux-arm64" ]]; then
acquireExternalTool "$NODE_URL/v${NODE12_VERSION}/node-v${NODE12_VERSION}-linux-armv64.tar.gz" node12 fix_nested_dir

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also need to build node.js for alpine ARM i think.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Agree, its in progress

Comment thread .github/workflows/build.yml Outdated
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
runtime: [ linux-x64, linux-arm64, linux-arm, win-x64, win-x86, osx-x64, rhel.6-x64 ]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hope we can kill redhat 6 for now. :D it make the runner download page looks odd...

win x64/x86
linux x64/arm32/arm64
mac x64
redhat6....

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dropped rhel from the build, still need to clean up some spots where rhel.6 is referenced

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RedHat 6 is just its own beast, haha!

@TingluoHuang

Copy link
Copy Markdown
Member

@dakale you mind want to take the C# file change i made in my branch which fix a bug for ARM64 runner.
users/tihuang/arm64

@dakale dakale marked this pull request as ready for review November 8, 2019 21:53
@dakale dakale changed the title 150 runner arch [WIP] 150: Support more cpu architectures Nov 8, 2019
@dakale

dakale commented Nov 11, 2019

Copy link
Copy Markdown
Contributor Author

Note: Need to update docs per #162

@dakale dakale requested review from juliobbv and thboop November 11, 2019 16:10
Comment thread src/runnerversion Outdated
Comment thread src/Misc/externals.sh
Comment thread azure-pipelines-release.yml Outdated
David Kale added 2 commits November 11, 2019 15:02
Dont release x86 until we have an e2e test machine
@dakale

dakale commented Nov 11, 2019

Copy link
Copy Markdown
Contributor Author

i would suggest these are features. :D
need to double check whether we really need win-x86, since we need to setup extra machines to do E2E validation...

win-x86 temporarily commented out of build/release. We can set this up later since arm is higher priority

Comment thread azure-pipelines-release.yml Outdated
@bryanmacfarlane

Copy link
Copy Markdown
Contributor

Yes, we are starting with ARM

Conflicts:
releaseNote.md
src/runnerversion
@thboop

thboop commented Nov 12, 2019

Copy link
Copy Markdown
Collaborator

Really great work 🥇 , there are a few other notes we should add in the release notes

Comment thread src/dev.sh Outdated
esac
fi

if [ -e /etc/redhat-release ]; then

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can drop this as its redhat 6 related correct?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea.. theres several things that need to be cleaned up. Balancing being lazy/trying to keep this pr simple, but I think it makes sense to just go ahead and clean out the rhel6 stuff

@juliobbv juliobbv Nov 13, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, we should wait re-adding Red Hat 6 support until there's significant customer demand. Red Hat 6 is considerably harder to give technical support than the other runners due to dependencies being very out of date, which result in a more complex and error-prone setup experience.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will likely never need a redhat drop since go / node will just work for the linux distro

Comment thread azure-pipelines-release.yml Outdated
# Upload agent package zip as build artifact
- task: PublishBuildArtifacts@1
displayName: Publish Artifact (Linux)
displayName: Publish Artifact (Linux)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Publish Artifact (Linux-arm64)

Might be a little clearer

Comment thread azure-pipelines-release.yml Outdated

# Upload agent package zip as build artifact
- task: PublishBuildArtifacts@1
displayName: Publish Artifact (Linux)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Publish Artifact (Linux-arm) may be a little clearer

@thboop thboop left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor thoughts on code cleanup but it looks good

@bryanmacfarlane

bryanmacfarlane commented Nov 13, 2019

Copy link
Copy Markdown
Contributor

It's a bit awkward to update the release notes announcing the availability of ARM when the feature work for ARM isn't done. Still needs UX and setup-* action reaction work. I think it will just lead to a bunch of questions (if and when open sourced) instead of being helpful.

@thejoebourneidentity

Copy link
Copy Markdown

@cdb is working on the 'add runner' modal UX now. Not sure about the setup-* work to make them all work.

@thboop

thboop commented Nov 13, 2019

Copy link
Copy Markdown
Collaborator

It's a bit awkward to update the release notes announcing the availability of ARM when the feature work for ARM isn't done. Still needs UX and setup-* action reaction work. I think it will just lead to a bunch of questions (if and when open sourced) instead of being helpful.

We can update the release notes to indicate ARM and ARM64 are not production ready or alpha or simply just remove the download information, it should address a majority of the confusion.

@dakale dakale merged commit 45c19eb into master Nov 13, 2019
@dakale dakale deleted the 150-runner-arch branch November 13, 2019 16:26
AdamOlech pushed a commit to antmicro/runner that referenced this pull request Jan 28, 2021
* Cross compile for win-x86, linux-arm, linux-arm64

* Build with actions instead

* Remove win-x86

* Preserve CURRENT_PLATFORM in dev.sh

* build.yaml

* Fix formatting. Remove piplines

* Use 4 space indent consistently

* x32 -> x86

* TEMP: Only test when platform === target runtime

Fix arm64 node externals url

* win-x86 externals

* Temporarily bench rhel

* Add RHEL6, skip L0 on arm for now

* Add stub for downloading new node externals when they are ready

* Remove RHEL6

* Package based on new runtime names

* Remove unused rhel from matrix includes

* Update release, add packages

* RID typo

* Cant cross test arm on x64 hosts

* New arch is a feature

Dont release x86 until we have an e2e test machine

* Fix version

* Get version from file to avoid exec error during package on x64 host for arm package

* Update Release Notes for 2.161.0 (actions#195)

* More cleanup

* Update release notes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants