Deploy workflow: org-team-assignment.yml #41
This file contains hidden or 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: Build | |
| on: | |
| # Triggers the workflow on push events | |
| push: | |
| branches: [ develop, release/**, feature/**, master, main ] | |
| # Allows you to run this workflow manually from the Actions tab | |
| workflow_dispatch: | |
| env: | |
| REGISTRY: ghcr.io | |
| ARTIFACT_BASE_NAME: cnmSchema | |
| jobs: | |
| # First job name | |
| build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v2 | |
| with: | |
| token: ${{ secrets.GIT_PUSH_TOKEN }} | |
| - uses: actions/setup-java@v2 | |
| with: | |
| distribution: 'adopt' | |
| java-version: '8.0.232' | |
| - name: Install Python 3 | |
| uses: actions/setup-python@v2 | |
| with: | |
| python-version: 3.8 | |
| - name: Install Python dependencies | |
| run: | | |
| pip3 install -r builder/requirements.txt | |
| python3 -m pip install setuptools wheel twine | |
| - name: Get Version | |
| run: echo ::set-output name=current_version::$(python3 builder/get-version.py -f cumulus_sns_schema.json) | |
| id: get-version | |
| - name: Get Base Version | |
| run: | | |
| echo ${{ steps.get-version.outputs.current_version }} | |
| base_ver="$(python3 builder/bump-version.py -v ${{ steps.get-version.outputs.current_version }} --get-base)" | |
| echo "base_ver=$base_ver" >> $GITHUB_ENV | |
| - name: Bump pre-alpha version | |
| # If triggered by push to a feature branch | |
| if: ${{ startsWith(github.ref, 'refs/heads/feature/') }} | |
| run: | | |
| git_sha="$(git rev-parse --short ${GITHUB_SHA})" | |
| echo "git sha=$git_sha" | |
| new_ver="${base_ver}+$git_sha" | |
| echo "software_version=$new_ver" >> $GITHUB_ENV | |
| - name: Bump alpha version | |
| # If triggered by push to the develop branch | |
| if: ${{ github.ref == 'refs/heads/develop' }} | |
| run: | | |
| bump_ver="$(python3 builder/bump-version.py -v ${{ steps.get-version.outputs.current_version }})" | |
| if [[ "$bump_ver" == "None" ]]; then | |
| bump_ver='0' | |
| fi | |
| new_ver="${base_ver}-alpha.${bump_ver}" | |
| echo "software_version=$new_ver" >> $GITHUB_ENV | |
| - name: Bump rc version | |
| # If triggered by push to a release branch | |
| if: ${{ startsWith(github.ref, 'refs/heads/release/') }} | |
| run: | | |
| bump_ver="$(python3 builder/bump-version.py -v ${{ steps.get-version.outputs.current_version }})" | |
| if [[ "$bump_ver" == "None" ]]; then | |
| bump_ver='0' | |
| fi | |
| new_ver="${base_ver}-rc.${bump_ver}" | |
| echo "software_version=$new_ver" >> $GITHUB_ENV | |
| - name: Release version | |
| # If triggered by push to the master branch | |
| if: ${{ startsWith(github.ref, 'refs/heads/master') }} | |
| run: | | |
| new_ver="${base_ver}" | |
| echo "software_version=$new_ver" >> $GITHUB_ENV | |
| - name: Update Version | |
| run: | | |
| python3 builder/update-version.py -f cumulus_sns_schema.json -v ${{ env.software_version }} | |
| - name: Build new version | |
| run: | | |
| echo "New Version is: ${{ env.software_version }}" | |
| python3 builder/update-version.py -f cumulus_sns_schema.json -v ${{ env.software_version }} | |
| python3 builder/builder.py -d . -a ${{env.ARTIFACT_BASE_NAME}} | |
| - name: Build Python package | |
| run: | | |
| python3 setup.py sdist bdist_wheel | |
| - name: Prepare Artifacts | |
| run: | | |
| artifact_file_name="${{ env.ARTIFACT_BASE_NAME }}-${{ env.software_version }}.zip" | |
| echo "ARTIFACT_FILE=$artifact_file_name" >> $GITHUB_ENV | |
| cp ${{env.ARTIFACT_BASE_NAME}}.zip $artifact_file_name | |
| - name: Create Release | |
| id: create_release | |
| if: ${{ contains(github.ref, 'master') }} | |
| uses: actions/create-release@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token | |
| with: | |
| tag_name: "v${{ env.software_version }}" | |
| release_name: "Release v${{ env.software_version }} - ${{ github.ref }}" | |
| body: | | |
| Changes in this release: | |
| ${{ github.event.head_commit.message }} | |
| body_path: release.md | |
| draft: false | |
| prerelease: false | |
| - name: Create PreRelease | |
| id: create_prerelease | |
| if: ${{ !contains(github.ref, 'master') }} | |
| uses: actions/create-release@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token | |
| with: | |
| tag_name: "v${{ env.software_version }}" | |
| release_name: "Release v${{ env.software_version }} - ${{ github.ref }}" | |
| body: | | |
| Changes in this release: | |
| ${{ github.event.head_commit.message }} | |
| draft: false | |
| prerelease: true | |
| - name: Upload PreRelease Asset | |
| id: upload-prerelease-asset | |
| if: ${{ !contains(github.ref, 'master') }} | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_prerelease.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps | |
| asset_path: "${{ env.ARTIFACT_FILE }}" | |
| asset_name: "${{ env.ARTIFACT_FILE }}" | |
| asset_content_type: application/zip | |
| - name: Upload Release Asset | |
| id: upload-release-asset | |
| if: ${{ contains(github.ref, 'master') }} | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps | |
| asset_path: "${{ env.ARTIFACT_FILE }}" | |
| asset_name: "${{ env.ARTIFACT_FILE }}" | |
| asset_content_type: application/zip | |
| - name: Publish to PyPI | |
| if: ${{ !startsWith(github.ref, 'refs/heads/feature/') }} | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| user: __token__ | |
| password: ${{ secrets.PYPI_API_TOKEN }} | |
| - name: Commit Version Bump | |
| # If building develop, a release branch, or master then we commit the version bump back to the repo | |
| if: | | |
| github.ref == 'refs/heads/develop' || | |
| github.ref == 'refs/heads/master' || | |
| startsWith(github.ref, 'refs/heads/release') | |
| run: | | |
| git config --global user.name 'podaac-cloud-IandA' | |
| git config --global user.email 'podaac-cloud-IandA@jpl.nasa.gov' | |
| git commit -m "/version ${{ env.software_version }} [skip actions]" cumulus_sns_schema.json | |
| git push |