name: cd on: push: branches: [main] jobs: cd: # job is named poorly, all I can tell you about it is: it’s *not* CD runs-on: ubuntu-latest outputs: HAS_ARTIFACTS: ${{ env.HAS_ARTIFACTS }} steps: - uses: actions/checkout@v3 - uses: actions/cache@v3 with: path: $HOME/.cache/deno key: ${{ runner.os }}-deno-cd-${{ hashFiles('deno.jsonc')}} - uses: teaxyz/setup@v0 - run: scripts/map-projects-to-githubs.ts env: WATCHER_URL: ${{ secrets.WATCHER_URL }} TEA_API_TOKEN: ${{ secrets.TEA_API_TOKEN }} - run: scripts/has-artifacts.ts ${{ github.repository }} ${{ github.sha }} >>$GITHUB_ENV env: GITHUB_TOKEN: ${{github.token}} AWS_S3_CACHE: ${{ secrets.AWS_S3_CACHE }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} bottle-pr: strategy: fail-fast: false matrix: platform: - darwin+x86-64 - linux+x86-64 - darwin+aarch64 - linux+aarch64 needs: [cd] if: ${{ needs.cd.outputs.HAS_ARTIFACTS == 'true' }} uses: ./.github/workflows/bottle.yml with: platform: ${{ matrix.platform }} secrets: inherit cleanup: needs: [bottle-pr] runs-on: ubuntu-latest if: ${{ needs.cd.outputs.HAS_ARTIFACTS == 'true' }} env: PR: ${{ needs.bottle.outputs.pr }} steps: - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: us-east-1 - run: | REPO=$(echo ${{github.repository}} | sed -e 's_teaxyz/__') if test -z "$PR"; then echo "no PR to clean up" exit 0 fi aws s3 rm --recursive s3://$AWS_S3_CACHE/pull-request/$REPO/$PR env: AWS_S3_CACHE: ${{ secrets.AWS_S3_CACHE }} PR: ${{ needs.bottle.outputs.pr }} bottle-standalone: runs-on: ubuntu-latest needs: [cd] if: ${{ needs.cd.outputs.HAS_ARTIFACTS == 'false' }} steps: - uses: actions/checkout@v3 - uses: technote-space/get-diff-action@v6 id: get-diff with: PATTERNS: projects/**/package.yml - id: diff run: | RESULT=$(echo ${{ steps.get-diff.outputs.diff }} | sed 's#projects/\(.*\)/.*#\1#') echo "diff=$RESULT" >> $GITHUB_OUTPUT - run: gh workflow run new-version.yml -R teaxyz/pantry.core -f "projects=$PROJECTS" if: ${{ steps.diff.outputs.diff != '' }} env: GITHUB_TOKEN: ${{ secrets.TEMP_JACOBS_GITHUB_PAT }} PROJECTS: ${{ steps.diff.outputs.diff }}