cloudsmith-package-synchronised #23498
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Cloudsmith package synchronised | |
on: | |
repository_dispatch: | |
types: | |
- cloudsmith-package-synchronised | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
packages: write | |
jobs: | |
build-latest-gnu-docker-image: | |
if: | | |
github.event.client_payload.data.repository == 'nightlies' && | |
github.event.client_payload.data.name == 'ponyc-x86-64-unknown-linux-ubuntu24.04.tar.gz' | |
name: Build latest GNU Docker image | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- name: Login to GitHub Container Registry | |
# v2.2.0 | |
uses: docker/login-action@5139682d94efc37792e6b54386b5b470a68a4737 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
run: bash .dockerfiles/latest/x86-64-unknown-linux-gnu/build-and-push.bash | |
- name: Alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. | |
build-latest-musl-docker-image: | |
if: | | |
github.event.client_payload.data.repository == 'nightlies' && | |
github.event.client_payload.data.name == 'ponyc-x86-64-unknown-linux-musl.tar.gz' | |
name: Build latest musl Docker image | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- name: Login to GitHub Container Registry | |
# v2.2.0 | |
uses: docker/login-action@5139682d94efc37792e6b54386b5b470a68a4737 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
run: bash .dockerfiles/latest/x86-64-unknown-linux-musl/build-and-push.bash | |
- name: Alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. | |
build-latest-windows-docker-image: | |
if: | | |
github.event.client_payload.data.repository == 'nightlies' && | |
github.event.client_payload.data.name == 'ponyc-x86-64-pc-windows-msvc.zip' | |
name: Build latest Windows Docker image | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- name: Login to GitHub Container Registry | |
# v2.2.0 | |
uses: docker/login-action@5139682d94efc37792e6b54386b5b470a68a4737 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
run: .dockerfiles/latest/x86-64-pc-windows-msvc/build-and-push.ps1 | |
- name: Alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. | |
build-release-gnu-docker-image: | |
if: | | |
github.event.client_payload.data.repository == 'releases' && | |
github.event.client_payload.data.name == 'ponyc-x86-64-unknown-linux-ubuntu24.04.tar.gz' | |
name: Build release GNU Docker image | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- name: Login to GitHub Container Registry | |
# v2.2.0 | |
uses: docker/login-action@5139682d94efc37792e6b54386b5b470a68a4737 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
run: bash .dockerfiles/release/x86-64-unknown-linux-gnu/build-and-push.bash | |
env: | |
VERSION: ${{ github.event.client_payload.data.version }} | |
build-release-musl-docker-image: | |
if: | | |
github.event.client_payload.data.repository == 'releases' && | |
github.event.client_payload.data.name == 'ponyc-x86-64-unknown-linux-musl.tar.gz' | |
name: Build release musl Docker image | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- name: Login to GitHub Container Registry | |
# v2.2.0 | |
uses: docker/login-action@5139682d94efc37792e6b54386b5b470a68a4737 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
run: bash .dockerfiles/release/x86-64-unknown-linux-musl/build-and-push.bash | |
env: | |
VERSION: ${{ github.event.client_payload.data.version }} | |
build-release-windows-docker-image: | |
if: | | |
github.event.client_payload.data.repository == 'releases' && | |
github.event.client_payload.data.name == 'ponyc-x86-64-pc-windows-msvc.zip' | |
name: Build release Windows Docker image | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- name: Login to GitHub Container Registry | |
# v2.2.0 | |
uses: docker/login-action@5139682d94efc37792e6b54386b5b470a68a4737 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
run: .dockerfiles/release/x86-64-pc-windows-msvc/build-and-push.ps1 | |
env: | |
VERSION: ${{ github.event.client_payload.data.version }} | |
update-playground-image-on-release: | |
needs: | |
- build-release-musl-docker-image | |
name: Update https://playground.ponylang.io/ | |
runs-on: ubuntu-latest | |
steps: | |
- name: Run remote command | |
uses: ponylang-main/ssh-action@ffff33f8fe0318345a4f00f0e847325954b2a3ed | |
with: | |
host: ${{ secrets.PLAYGROUND_HOST }} | |
username: ${{ secrets.PLAYGROUND_ADMIN_USER }} | |
key: ${{ secrets.PLAYGROUND_KEY }} | |
script: bash update-playground.bash | |
update-stdlib-builder-image-on-release: | |
needs: | |
- build-release-musl-docker-image | |
name: Update stdlib-builder Docker image with newly released ponyc version | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- name: Login to GitHub Container Registry | |
# v2.2.0 | |
uses: docker/login-action@5139682d94efc37792e6b54386b5b470a68a4737 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
run: bash .ci-dockerfiles/stdlib-builder/build-and-push.bash | |
env: | |
MATERIAL_INSIDERS_ACCESS: ${{ secrets.MATERIAL_INSIDERS_ACCESS }} | |
update-stdlib-builder-image-on-nightly: | |
needs: | |
- build-latest-musl-docker-image | |
name: Update stdlib-builder Docker image with nightly ponyc version | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- name: Login to GitHub Container Registry | |
# v2.2.0 | |
uses: docker/login-action@5139682d94efc37792e6b54386b5b470a68a4737 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
run: bash .ci-dockerfiles/stdlib-builder/build-and-push.bash | |
env: | |
MATERIAL_INSIDERS_ACCESS: ${{ secrets.MATERIAL_INSIDERS_ACCESS }} | |
- name: Alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. | |
build-and-push-stdlib-documentation: | |
needs: | |
- update-stdlib-builder-image-on-release | |
name: Build and Push standard library documentation | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/ponylang/ponyc-ci-stdlib-builder:release | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4.1.1 | |
- name: Build | |
run: "bash .ci-scripts/build-stdlib-documentation.bash" | |
- name: Setup Pages | |
uses: actions/configure-pages@v2 | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v1 | |
with: | |
path: 'stdlib-docs/site/' | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v1 | |
trigger-release-announcement: | |
needs: | |
- build-and-push-stdlib-documentation | |
- update-playground-image-on-release | |
name: Trigger release announcement | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout main | |
uses: actions/checkout@v4.1.1 | |
with: | |
ref: "main" | |
token: ${{ secrets.RELEASE_TOKEN }} | |
- name: Trigger | |
uses: docker://ghcr.io/ponylang/release-bot-action:0.6.3 | |
with: | |
entrypoint: trigger-release-announcement | |
env: | |
GIT_USER_NAME: "Ponylang Main Bot" | |
GIT_USER_EMAIL: "ponylang.main@gmail.com" | |
CUSTOM_VERSION: ${{ github.event.client_payload.data.version }} | |
test-building-stdlib-documentation: | |
needs: | |
- update-stdlib-builder-image-on-nightly | |
name: Test building standard library documentation | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/ponylang/ponyc-ci-stdlib-builder:latest | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- name: Build | |
run: "bash .ci-scripts/build-stdlib-documentation.bash" | |
- name: Alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. | |
prune-untagged-stdlib-builders: | |
needs: | |
- update-stdlib-builder-image-on-nightly | |
name: Prune untagged stdlib builders | |
runs-on: ubuntu-latest | |
steps: | |
- name: Prune | |
# v4.1.1 | |
uses: actions/delete-package-versions@0d39a63126868f5eefaa47169615edd3c0f61e20 | |
with: | |
package-name: 'ponyc-ci-stdlib-builder' | |
package-type: 'container' | |
min-versions-to-keep: 0 | |
delete-only-untagged-versions: 'true' | |
- name: Send alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. | |
send-x86-64-macos-nightly-release-event: | |
if: | | |
github.event.client_payload.data.repository == 'nightlies' && | |
github.event.client_payload.data.name == 'ponyc-x86-64-apple-darwin.tar.gz' | |
name: Send x86-64 macos nightly release event | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
repo: | |
- ponylang/corral | |
- ponylang/ponyup | |
steps: | |
- name: Send | |
# v2.1.1 | |
uses: peter-evans/repository-dispatch@8324ecf35877f9b02961dd5aaf43ed7be7db9373 | |
with: | |
token: ${{ secrets.PONYLANG_MAIN_API_TOKEN }} | |
repository: ${{ matrix.repo }} | |
event-type: ponyc-x86_64-macos-nightly-released | |
client-payload: '{"version": "${{ github.event.client_payload.data.version }}"}' | |
- name: Alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. | |
send-arm64-macos-nightly-release-event: | |
if: | | |
github.event.client_payload.data.repository == 'nightlies' && | |
github.event.client_payload.data.name == 'ponyc-arm64-apple-darwin.tar.gz' | |
name: Send arm64 macos nightly release event | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
repo: | |
- ponylang/corral | |
- ponylang/ponyup | |
steps: | |
- name: Send | |
# v2.1.1 | |
uses: peter-evans/repository-dispatch@8324ecf35877f9b02961dd5aaf43ed7be7db9373 | |
with: | |
token: ${{ secrets.PONYLANG_MAIN_API_TOKEN }} | |
repository: ${{ matrix.repo }} | |
event-type: ponyc-arm64-macos-nightly-released | |
client-payload: '{"version": "${{ github.event.client_payload.data.version }}"}' | |
- name: Alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. | |
send-musl-nightly-release-event: | |
needs: [build-latest-musl-docker-image] | |
name: Send musl nightly release event | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
repo: | |
- ponylang/library-documentation-action-v2 | |
- ponylang/shared-docker | |
steps: | |
- name: Send | |
# v2.1.1 | |
uses: peter-evans/repository-dispatch@8324ecf35877f9b02961dd5aaf43ed7be7db9373 | |
with: | |
token: ${{ secrets.PONYLANG_MAIN_API_TOKEN }} | |
repository: ${{ matrix.repo }} | |
event-type: ponyc-musl-nightly-released | |
client-payload: '{"version": "${{ github.event.client_payload.data.version }}"}' | |
- name: Alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. | |
send-windows-nightly-release-event: | |
needs: [build-latest-windows-docker-image] | |
name: Send windows nightly release event | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
repo: | |
- ponylang/corral | |
steps: | |
- name: Send | |
# v2.1.1 | |
uses: peter-evans/repository-dispatch@8324ecf35877f9b02961dd5aaf43ed7be7db9373 | |
with: | |
token: ${{ secrets.PONYLANG_MAIN_API_TOKEN }} | |
repository: ${{ matrix.repo }} | |
event-type: ponyc-windows-nightly-released | |
client-payload: '{"version": "${{ github.event.client_payload.data.version }}"}' | |
- name: Alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. | |
send-musl-release-event: | |
needs: [build-release-musl-docker-image] | |
name: Send release event | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
repo: | |
- ponylang/library-documentation-action | |
- ponylang/library-documentation-action-v2 | |
- ponylang/shared-docker | |
steps: | |
- name: Send | |
# v2.1.1 | |
uses: peter-evans/repository-dispatch@8324ecf35877f9b02961dd5aaf43ed7be7db9373 | |
with: | |
token: ${{ secrets.PONYLANG_MAIN_API_TOKEN }} | |
repository: ${{ matrix.repo }} | |
event-type: ponyc-musl-released | |
client-payload: '{"version": "${{ github.event.client_payload.data.version }}"}' | |
prune-untagged-images: | |
needs: | |
- build-latest-musl-docker-image | |
name: Prune untagged images | |
runs-on: ubuntu-latest | |
steps: | |
- name: Prune | |
# v4.1.1 | |
uses: actions/delete-package-versions@0d39a63126868f5eefaa47169615edd3c0f61e20 | |
with: | |
package-name: 'ponyc' | |
package-type: 'container' | |
min-versions-to-keep: 1 | |
delete-only-untagged-versions: 'true' | |
- name: Send alert on failure | |
if: ${{ failure() }} | |
uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 | |
with: | |
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }} | |
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }} | |
organization-url: 'https://ponylang.zulipchat.com/' | |
to: notifications | |
type: stream | |
topic: ${{ github.repository }} scheduled job failure | |
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed. |