Skip to content

Commit

Permalink
Split workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
crohr committed Sep 11, 2024
1 parent f73e479 commit 01ceebf
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 37 deletions.
63 changes: 26 additions & 37 deletions .github/workflows/build-and-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,61 +43,50 @@ jobs:
timeout-minutes: 300
- if: always()
run: bundle exec bin/utils/cleanup-instances
# wait 3 min for the RunsOn image cache to be expired
- run: sleep 180

test1:
needs: build
runs-on: runs-on,runner=2cpu-linux-${{ inputs.architecture }},image=${{ inputs.distribution }}-dev-${{ inputs.architecture }}
steps:
- uses: actions/checkout@v4
- run: echo "Testing ${{ inputs.architecture }}"
uses: ./.github/workflows/test.yml
with:
architecture: ${{ inputs.architecture }}
distribution: ${{ inputs.distribution }}

test2:
needs: test1
runs-on: runs-on,runner=2cpu-linux-${{ inputs.architecture }},image=${{ inputs.distribution }}-dev-${{ inputs.architecture }}
steps:
- uses: actions/checkout@v4
- run: echo "Testing ${{ inputs.architecture }}"
uses: ./.github/workflows/test.yml
with:
architecture: ${{ inputs.architecture }}
distribution: ${{ inputs.distribution }}

test3:
needs: test2
runs-on: runs-on,runner=2cpu-linux-${{ inputs.architecture }},image=${{ inputs.distribution }}-dev-${{ inputs.architecture }}
steps:
- uses: actions/checkout@v4
- run: echo "Testing ${{ inputs.architecture }}"
uses: ./.github/workflows/test.yml
with:
architecture: ${{ inputs.architecture }}
distribution: ${{ inputs.distribution }}

test4:
needs: test3
runs-on: runs-on,runner=2cpu-linux-${{ inputs.architecture }},image=${{ inputs.distribution }}-dev-${{ inputs.architecture }}
steps:
- uses: actions/checkout@v4
- run: echo "Testing ${{ inputs.architecture }}"
uses: ./.github/workflows/test.yml
with:
architecture: ${{ inputs.architecture }}
distribution: ${{ inputs.distribution }}

test5:
needs: test4
runs-on: runs-on,runner=2cpu-linux-${{ inputs.architecture }},image=${{ inputs.distribution }}-dev-${{ inputs.architecture }}
steps:
- uses: actions/checkout@v4
- run: echo "Testing ${{ inputs.architecture }}"
uses: ./.github/workflows/test.yml
with:
architecture: ${{ inputs.architecture }}
distribution: ${{ inputs.distribution }}

promote:
if: inputs.promote
needs:
- build
- test5
runs-on: ubuntu-latest
environment:
name: ${{ inputs.distribution }}/${{ inputs.architecture }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 3.2.2
bundler-cache: true
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Promote AMI
run: bundle exec bin/copy-ami --force ${{ needs.build.outputs.ami_name }}
uses: ./.github/workflows/promote.yml
with:
image_id: ${{ inputs.distribution }}-full-${{ inputs.architecture }}
ami_name: ${{ steps.build.outputs.ami_name }}
38 changes: 38 additions & 0 deletions .github/workflows/promote.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Promote
run-name: Promote ${{ inputs.image_id }}

on:
workflow_call:
inputs:
# e.g. ubuntu22-full-x64
image_id:
required: true
type: string
# e.g. runs-on-dev-ubuntu22-full-x64-20240911101937
ami_name:
required: true
type: string

jobs:
promote:
runs-on: ubuntu-latest
environment:
name: ${{ inputs.image_id }}
steps:
# Make sure AMI name includes the image ID
- name: Verify AMI name
run: |
echo "${{ inputs.ami_name }}" | grep "${{ inputs.image_id }}"
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 3.2.2
bundler-cache: true
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Promote AMI
run: bundle exec bin/copy-ami --force ${{ inputs.ami_name }}
42 changes: 42 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Test
run-name: Test ${{ inputs.distribution }}-full-${{ inputs.architecture }}

on:
workflow_call:
inputs:
distribution:
required: true
type: string
architecture:
required: true
type: string

jobs:
test:
runs-on: runs-on,runner=2cpu-linux-${{ inputs.architecture }},image=${{ inputs.distribution }}-dev-${{ inputs.architecture }}
steps:
- name: Logs
run: sudo cat /var/log/cloud-init-output.log
- name: Systemctl status
run: sudo systemctl status
- name: Disk
run: |
sudo df -ah
sudo lsblk -l
- name: env
run: env | sort
- name: Checkout
uses: actions/checkout@v4
- name: Docker
run: docker run hello-world
- name: envinfo
run: npx envinfo
- name: env
run: env | sort
- name: show HOME
run: ls -al $HOME
- name: rustup
run: rustup --version
- name: Do something
run: |
echo "Hello world from $HOSTNAME"

0 comments on commit 01ceebf

Please sign in to comment.