| # 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. |
| |
| name: Publish Storm SNAPSHOTs |
| |
| on: |
| workflow_dispatch: { } |
| schedule: |
| # every day 5min after midnight, UTC. |
| - cron: "5 0 * * *" |
| |
| jobs: |
| upload_to_nightlies: |
| if: github.repository == 'apache/storm' |
| name: Publish Snapshots |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 |
| - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 |
| with: |
| path: ~/.m2/repository |
| key: snapshots-maven-${{ hashFiles('**/pom.xml') }} |
| restore-keys: | |
| snapshots-maven- |
| - name: Set up Python |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 |
| with: |
| python-version: '3.10' |
| - name: Set up Node |
| uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 |
| with: |
| node-version: 16 |
| - name: Set up Ruby |
| uses: ruby/setup-ruby@3ff19f5e2baf30647122352b96108b1fbe250c64 # v1.299.0 |
| with: |
| ruby-version: '2.7' |
| - name: Set up JDK ${{ matrix.java }} |
| uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 |
| with: |
| distribution: temurin |
| java-version: 20 |
| - id: extract_version |
| name: Extract project version |
| shell: bash |
| run: | |
| VERSION=$(mvn exec:exec -Dexec.executable='echo' -Dexec.args='${project.version}' --non-recursive -q) |
| if [[ "$VERSION" == *"SNAPSHOT"* ]]; then |
| echo "snapshot=SNAPSHOT" >> $GITHUB_OUTPUT |
| fi |
| - name: Ensure a clean state without storm artifacts |
| if: steps.extract_version.outputs.snapshot == 'SNAPSHOT' |
| run: rm -rf ~/.m2/repository/org/apache/storm |
| - name: Set up project dependencies |
| if: steps.extract_version.outputs.snapshot == 'SNAPSHOT' |
| run: /bin/bash ./dev-tools/gitact/gitact-install.sh `pwd` |
| - name: Deploy Maven snapshots |
| if: steps.extract_version.outputs.snapshot == 'SNAPSHOT' |
| env: |
| ASF_USERNAME: ${{ secrets.NEXUS_USER }} |
| ASF_PASSWORD: ${{ secrets.NEXUS_PW }} |
| run: | |
| echo "<settings><servers><server><id>apache.snapshots.https</id><username>$ASF_USERNAME</username><password>$ASF_PASSWORD</password></server></servers></settings>" > settings.xml |
| mvn --settings settings.xml -U -B -e -fae -ntp -DskipTests -P !examples deploy |