116 lines
3.8 KiB
YAML
116 lines
3.8 KiB
YAML
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
# Based on Apache Arrow's java-nightly workflow
|
|
# https://github.com/apache/arrow/blob/master/.github/workflows/java_nightly.yml
|
|
name: Publish nightly artifacts
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
keep:
|
|
description: Number of versions to keep.
|
|
required: false
|
|
default: 30
|
|
schedule:
|
|
- cron: "0 0 * * *"
|
|
push:
|
|
branches:
|
|
- 'main'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
publish-nightly:
|
|
name: Publish nightly
|
|
runs-on: ubuntu-20.04
|
|
if: github.repository == 'apache/incubator-pekko'
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up JDK 11
|
|
uses: olafurpg/setup-scala@v13
|
|
with:
|
|
java-version: adopt@1.11
|
|
|
|
- name: Publish local
|
|
run: |-
|
|
sudo apt-get install graphviz
|
|
# disable mima check until first pekko release is done
|
|
# sbt +mimaReportBinaryIssues
|
|
sbt +publishM2
|
|
|
|
- name: Cache Coursier cache
|
|
uses: coursier/cache-action@v6.4.0
|
|
|
|
- name: Sync from remote
|
|
uses: ./.github/actions/sync-nightlies
|
|
with:
|
|
switches: -avzh --update --delete --progress
|
|
local_path: repo
|
|
remote_path: ${{ secrets.NIGHTLIES_RSYNC_PATH }}/pekko/snapshots
|
|
remote_host: ${{ secrets.NIGHTLIES_RSYNC_HOST }}
|
|
remote_port: ${{ secrets.NIGHTLIES_RSYNC_PORT }}
|
|
remote_user: ${{ secrets.NIGHTLIES_RSYNC_USER }}
|
|
remote_key: ${{ secrets.NIGHTLIES_RSYNC_KEY }}
|
|
|
|
- shell: bash
|
|
name: Show local repo sync from remote
|
|
run: |
|
|
for i in `ls -t repo/org/apache/pekko/`; do
|
|
echo "- $i: $(find repo/org/apache/pekko/$i -mindepth 1 -maxdepth 1 -type d \
|
|
| wc -l \
|
|
| xargs) versions available"
|
|
done
|
|
|
|
- shell: bash
|
|
name: Copy snapshots from local m2 repository
|
|
run: |
|
|
mkdir -p repo/org/apache/pekko/
|
|
cp -R $HOME/.m2/repository/org/apache/pekko/ repo/org/apache
|
|
|
|
- name: Prune repository
|
|
shell: bash
|
|
env:
|
|
KEEP: ${{ github.event.inputs.keep || 30 }}
|
|
run: |
|
|
for i in `ls -t repo/org/apache/pekko/`; do
|
|
find repo/org/apache/pekko/$i -mindepth 1 -maxdepth 1 -type d -print0 \
|
|
| xargs -0 ls -t -d \
|
|
| tail -n +$((KEEP + 1)) \
|
|
| xargs rm -rf
|
|
done
|
|
|
|
- name: Show repo contents
|
|
run: tree repo
|
|
|
|
- name: Sync to Remote
|
|
if: ${{ github.repository == 'apache/incubator-pekko' }}
|
|
uses: ./.github/actions/sync-nightlies
|
|
with:
|
|
upload: true
|
|
switches: -avzh --omit-dir-times --update --delete --progress
|
|
local_path: repo
|
|
remote_path: ${{ secrets.NIGHTLIES_RSYNC_PATH }}/pekko/snapshots
|
|
remote_host: ${{ secrets.NIGHTLIES_RSYNC_HOST }}
|
|
remote_port: ${{ secrets.NIGHTLIES_RSYNC_PORT }}
|
|
remote_user: ${{ secrets.NIGHTLIES_RSYNC_USER }}
|
|
remote_key: ${{ secrets.NIGHTLIES_RSYNC_KEY }}
|