diff --git a/.github/workflows/npm-cd.yml b/.github/workflows/npm-cd.yml index 83b0ab6185..3457d347a2 100644 --- a/.github/workflows/npm-cd.yml +++ b/.github/workflows/npm-cd.yml @@ -16,7 +16,24 @@ concurrency: cancel-in-progress: true jobs: + start-self-hosted-runner: + name: Start self hosted EC2 runner + runs-on: ubuntu-latest + steps: + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_EC2_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_EC2_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Start EC2 self hosted runner + run: | + sudo apt update + sudo apt install awscli -y + aws ssm send-command --instance-ids ${{secrets.AWS_EC2_INSTANCE_ID }} --document-name StartGithubSelfHostedRunner --output text + aws ssm list-command-invocations publish-binaries: + needs: start-self-hosted-runner if: github.repository_owner == 'aws' name: Publish packages to NPM runs-on: ${{ matrix.build.RUNNER }} @@ -54,6 +71,9 @@ jobs: TARGET: aarch64-apple-darwin, } steps: + - name: Cleanup self-hosted runner + if: ${{ contains(matrix.build.RUNNER, 'self-hosted') }} + run: sudo rm -rf /home/ubuntu/actions-runner/_work - name: Checkout uses: actions/checkout@v4 with: diff --git a/.github/workflows/pypi-cd.yml b/.github/workflows/pypi-cd.yml index 81bd8c165f..ff949a36a3 100644 --- a/.github/workflows/pypi-cd.yml +++ b/.github/workflows/pypi-cd.yml @@ -20,9 +20,6 @@ jobs: start-self-hosted-runner: name: Start self hosted EC2 runner runs-on: ubuntu-latest - outputs: - label: ${{ steps.start-ec2-runner.outputs.label }} - ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} steps: - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 @@ -30,27 +27,17 @@ jobs: aws-access-key-id: ${{ secrets.AWS_EC2_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_EC2_SECRET_ACCESS_KEY }} aws-region: ${{ secrets.AWS_REGION }} - - name: Start EC2 runner - id: start-ec2-runner - uses: machulav/ec2-github-runner@v2 - with: - mode: start - github-token: ${{ secrets.GITHUB_TOKEN }} - ec2-image-id: ami-03831836fb1f65aac - ec2-instance-type: m6g.xlarge - subnet-id: subnet-0a88f7abc7e1490e1 - security-group-id: sg-05024f40170e648f0 - iam-role-name: github-actions-role - aws-resource-tags: > - [ - {"Key": "Name", "Value": "ec2-github-runner"}, - {"Key": "GitHubRepository", "Value": "${{ github.repository }}"} - ] + - name: Start EC2 self hosted runner + run: | + sudo apt update + sudo apt install awscli -y + aws ssm send-command --instance-ids ${{secrets.AWS_EC2_INSTANCE_ID }} --document-name StartGithubSelfHostedRunner --output text + aws ssm list-command-invocations publish-binaries: needs: start-self-hosted-runner if: github.repository_owner == 'aws' name: Publish packages to PyPi - runs-on: ${{ matrix.build.RUNNER == 'self-hosted' && needs.start-self-hosted-runner.outputs.label || matrix.build.RUNNER }} + runs-on: ${{ matrix.build.RUNNER }} strategy: fail-fast: false matrix: @@ -65,7 +52,7 @@ jobs: - { OS: ubuntu-latest, NAMED_OS: linux, - RUNNER: self-hosted, + RUNNER: [self-hosted, Linux, ARM64], ARCH: arm64, TARGET: aarch64-unknown-linux-gnu, CONTAINER: "2_28", @@ -85,6 +72,9 @@ jobs: TARGET: aarch64-apple-darwin, } steps: + - name: Cleanup self-hosted runner + if: ${{ contains(matrix.build.RUNNER, 'self-hosted') }} + run: sudo rm -rf /home/ubuntu/actions-runner/_work - name: Checkout uses: actions/checkout@v4 with: @@ -201,24 +191,3 @@ jobs: with: command: upload args: --skip-existing python/wheels/* - stop-runner: - name: Stop self-hosted EC2 runner - needs: - - start-self-hosted-runner # required to get output from the start-runner job - - publish-to-pypi # required to wait when the main job is done - runs-on: ubuntu-latest - if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs - steps: - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v4 - with: - aws-access-key-id: ${{ secrets.AWS_EC2_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_EC2_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_REGION }} - - name: Stop EC2 runner - uses: machulav/ec2-github-runner@v2 - with: - mode: stop - github-token: ${{ secrets.GITHUB_TOKEN }} - label: ${{ needs.start-self-hosted-runner.outputs.label }} - ec2-instance-id: ${{ needs.start-self-hosted-runner.outputs.ec2-instance-id }}