From 1001167daef8432df6ff2754a5beef6384dbaf42 Mon Sep 17 00:00:00 2001 From: Federico Maleh Date: Fri, 5 Jul 2024 10:51:49 -0300 Subject: [PATCH 1/3] Build with cli --- .github/workflows/ci-ecr.yml | 66 +++++++++--------------------------- start.sh | 5 +++ 2 files changed, 21 insertions(+), 50 deletions(-) diff --git a/.github/workflows/ci-ecr.yml b/.github/workflows/ci-ecr.yml index 25c8db7..5463e7c 100644 --- a/.github/workflows/ci-ecr.yml +++ b/.github/workflows/ci-ecr.yml @@ -1,29 +1,19 @@ name: ci-nullplatform +env: + NULLPLATFORM_API_KEY: ${{ secrets.NULLPLATFORM_API_KEY }} on: push: branches: - master - main + - fix/runner-authorization permissions: id-token: write contents: read packages: read jobs: - prepare: - runs-on: ubuntu-latest - steps: - - name: Start Nullplatform CI - id: setup-ci - uses: nullplatform/github-action-setup-ci@v1 - with: - api-key: ${{ secrets.NULLPLATFORM_API_KEY }} - outputs: - application-id: ${{ steps.setup-ci.outputs.application-id }} - application-name: ${{ steps.setup-ci.outputs.application-name }} - build-id: ${{ steps.setup-ci.outputs.build-id }} build: runs-on: ubuntu-latest - needs: prepare strategy: matrix: platform: @@ -34,44 +24,20 @@ jobs: runner-arch: linux-arm64 asset-name: runner-linux-arm64 steps: + - name: Install nullplatform cli + run: curl https://cli.nullplatform.com/install.sh | sh + - name: Checkout code + uses: actions/checkout@v4 + - name: Start nullplatform CI + run: np build start - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Get build parameters - id: get-build-parameters - uses: nullplatform/github-action-secrets-and-variables@v1 - with: - api-key: ${{ secrets.NULLPLATFORM_API_KEY }} - application-id: ${{ needs.prepare.outputs.application-id }} - - name: Build asset for ${{ needs.prepare.outputs.application-name }} - id: build-asset - uses: nullplatform/github-action-asset-build@v1 - env: - VERSION: ${{ vars.VERSION }} - ARCH: ${{ matrix.platform.runner-arch }} - PLATFORM: ${{ matrix.platform.asset-arch }} - with: - name: ${{ matrix.platform.asset-name }} - - name: Push asset for ${{ needs.prepare.outputs.application-name }} - id: push-asset - uses: nullplatform/github-action-asset-push@v1 - with: - build-id: ${{ needs.prepare.outputs.build-id }} - type: docker-image - name: ${{ matrix.platform.asset-name }} - outputs: - build-id: ${{ needs.prepare.outputs.build-id }} - status: ${{ contains(fromJSON('["failure", "cancelled"]'), job.status) && 'failed' || 'successful' }} - finalize: - runs-on: ubuntu-latest - if: ${{ always() && needs.prepare.outputs.build-id }} - needs: [prepare, build] - steps: - - name: End Nullplatform CI - id: end-setup-ci - uses: nullplatform/github-action-setup-ci@v1 - with: - api-key: ${{ secrets.NULLPLATFORM_API_KEY }} - build-id: ${{ needs.prepare.outputs.build-id }} - status: ${{ needs.build.outputs.status || 'failed' }} + - name: Build asset + run: docker buildx build --platform ${{ matrix.platform.asset-arch }} -t main --load . + - name: Push ARM asset + run: np asset push --type docker-image --source main --name ${{ matrix.platform.asset-arch }} + - name: End nullplatform CI + if: ${{ always() }} + run: np build update --status ${{ contains(fromJSON('["failure", "cancelled"]'), job.status) && 'failed' || 'successful' }} \ No newline at end of file diff --git a/start.sh b/start.sh index 07081f3..9d7eb65 100755 --- a/start.sh +++ b/start.sh @@ -2,6 +2,11 @@ ID=$(($(date +%s)*1000)) +echo "Starting Runner" + +echo "Config Runner with URL: ${URL}" + + cd /home/docker/actions-runner ./config.sh --url ${URL} --token ${TOKEN} --name ${NAME:-self-hosted}-${ID} --work working-dir --labels ${LABELS:-nullplatform} --unattended --replace From 87a7c829f2c990b28c902df820b3b0cc0b8e7edc Mon Sep 17 00:00:00 2001 From: Federico Maleh Date: Fri, 5 Jul 2024 10:59:23 -0300 Subject: [PATCH 2/3] Fix matrix setup --- .github/workflows/ci-ecr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-ecr.yml b/.github/workflows/ci-ecr.yml index 5463e7c..77a4178 100644 --- a/.github/workflows/ci-ecr.yml +++ b/.github/workflows/ci-ecr.yml @@ -35,9 +35,9 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build asset - run: docker buildx build --platform ${{ matrix.platform.asset-arch }} -t main --load . + run: docker buildx build --build-arg ARCH=${{ matrix.platform.runner-arch }} --platform ${{ matrix.platform.asset-arch }} -t ${{ matrix.platform.asset-name }} --load . - name: Push ARM asset - run: np asset push --type docker-image --source main --name ${{ matrix.platform.asset-arch }} + run: np asset push --type docker-image --source ${{ matrix.platform.asset-name }} --name ${{ matrix.platform.asset-name }} - name: End nullplatform CI if: ${{ always() }} run: np build update --status ${{ contains(fromJSON('["failure", "cancelled"]'), job.status) && 'failed' || 'successful' }} \ No newline at end of file From f388f0229240c7b3186f77debf9786d27ec9aa1f Mon Sep 17 00:00:00 2001 From: Federico Maleh Date: Fri, 5 Jul 2024 11:50:30 -0300 Subject: [PATCH 3/3] remove matrix --- .github/workflows/ci-ecr.yml | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci-ecr.yml b/.github/workflows/ci-ecr.yml index 77a4178..f34bce3 100644 --- a/.github/workflows/ci-ecr.yml +++ b/.github/workflows/ci-ecr.yml @@ -4,8 +4,8 @@ env: on: push: branches: - - master - main + - master - fix/runner-authorization permissions: id-token: write @@ -14,15 +14,6 @@ permissions: jobs: build: runs-on: ubuntu-latest - strategy: - matrix: - platform: - - asset-arch: linux/amd64 - runner-arch: linux-x64 - asset-name: runner-linux-amd64 - - asset-arch: linux/arm64 - runner-arch: linux-arm64 - asset-name: runner-linux-arm64 steps: - name: Install nullplatform cli run: curl https://cli.nullplatform.com/install.sh | sh @@ -34,10 +25,14 @@ jobs: uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Build asset - run: docker buildx build --build-arg ARCH=${{ matrix.platform.runner-arch }} --platform ${{ matrix.platform.asset-arch }} -t ${{ matrix.platform.asset-name }} --load . + - name: Build AMD asset + run: docker buildx build --platform linux/amd64 --build-arg linux-x64 -t amd --load . + - name: Build ARM asset + run: docker buildx build --platform linux/arm64 --build-arg linux-arm64 -t arm --load . + - name: Push AMD asset + run: np asset push --type docker-image --source amd --name runner-linux-amd64 - name: Push ARM asset - run: np asset push --type docker-image --source ${{ matrix.platform.asset-name }} --name ${{ matrix.platform.asset-name }} + run: np asset push --type docker-image --source arm --name runner-linux-arm64 - name: End nullplatform CI if: ${{ always() }} run: np build update --status ${{ contains(fromJSON('["failure", "cancelled"]'), job.status) && 'failed' || 'successful' }} \ No newline at end of file