diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..a5309dc --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,72 @@ +# This is a basic workflow to help you get started with Actions + +name: Upload to the upload server + +# Controls when the workflow will run +on: + push: + branches: [develop, main] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + - name: getting owner-repo name + shell: bash + run: echo "##[set-output name=owner-repo;]$(echo ${GITHUB_REPOSITORY})" + id: owner-repo_name + - name: get all tags + uses: octokit/request-action@v2.x + id: get_all_tags + with: + route: GET /repos/${{ steps.owner-repo_name.outputs.owner-repo }}/git/matching-refs/tags + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: generate tags file + uses: "finnp/create-file-action@master" + env: + FILE_NAME: "tags.json" + FILE_DATA: "${{ steps.get_all_tags.outputs.data }}" + - name: getting branch name + shell: bash + run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" + id: branch_name + - name: getting tag name + shell: bash + run: echo "##[set-output name=tag;]$(echo ${GITHUB_REF_NAME})" + id: tag_name + - name: zipping files + run: zip -r ${{ github.event.repository.name }}_${{ steps.tag_name.outputs.tag }}.zip . -x '*.git*' '*.idea*' + - name: echo-step + run: echo "${{ github.event.release.target_commitish }}" + - name: uploading archive to prod + if: ${{ steps.branch_name.outputs.branch == 'main' || github.event.release.target_commitish == 'main'}} + uses: wlixcc/SFTP-Deploy-Action@v1.0 + with: + username: ${{ secrets.USERNAME }} + server: ${{ secrets.SERVER }} + ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }} + local_path: ${{ github.event.repository.name }}_${{ steps.tag_name.outputs.tag }}.zip + remote_path: '${{ secrets.PROD_UPLOAD_URL }}' + args: '-o ConnectTimeout=5' + - name: uploading archive to staging + if: ${{ steps.branch_name.outputs.branch == 'develop' || github.event.release.target_commitish == 'develop' }} + uses: wlixcc/SFTP-Deploy-Action@v1.0 + with: + username: ${{ secrets.USERNAME }} + server: ${{ secrets.SERVER }} + ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }} + local_path: ${{ github.event.repository.name }}_${{ steps.tag_name.outputs.tag }}.zip + remote_path: '${{ secrets.STG_UPLOAD_URL }}' + args: '-o ConnectTimeout=5'