name: release on: push: tags: - 'v*' jobs: binaries: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - run: make binaries - uses: actions/upload-artifact@v3 with: name: binaries path: binaries github: needs: binaries runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - uses: actions/download-artifact@v3 with: name: binaries path: binaries - uses: actions/github-script@v6 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | const fs = require('fs').promises; const { repo: { owner, repo } } = context; const currentRelease = context.ref.split('/')[2]; const res = await github.rest.repos.createRelease({ owner, repo, tag_name: currentRelease, name: currentRelease, }); const release_id = res.data.id; for (const name of await fs.readdir('./binaries/')) { await github.rest.repos.uploadReleaseAsset({ owner, repo, release_id, name, data: await fs.readFile(`./binaries/${name}`), }); } dockerhub: needs: binaries runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - uses: actions/download-artifact@v3 with: name: binaries path: binaries - run: make dockerhub env: DOCKER_USER: ${{ secrets.DOCKER_USER }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} dockerhub_legacy: needs: dockerhub runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - run: make dockerhub-legacy env: DOCKER_USER_LEGACY: ${{ secrets.DOCKER_USER_LEGACY }} DOCKER_PASSWORD_LEGACY: ${{ secrets.DOCKER_PASSWORD_LEGACY }} apidocs: needs: binaries runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - run: make apidocs-gen - run: mv apidocs/*.html apidocs/index.html - uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./apidocs