ci: migrate deployment to gitea actions
Deploy FileDrop / deploy (push) Successful in 3m21s
Deploy FileDrop / deploy (push) Successful in 3m21s
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import { expect, test } from 'bun:test';
|
||||
|
||||
const repoRoot = new URL('../', import.meta.url);
|
||||
const deployScript = Bun.file(new URL('../deploy.sh', import.meta.url));
|
||||
|
||||
test('deploy script is provider-neutral', async () => {
|
||||
const text = await deployScript.text();
|
||||
|
||||
expect(text).not.toContain('GITLAB_PROJECT');
|
||||
expect(text).not.toContain('fetch_ci_var');
|
||||
expect(text).not.toContain('glab');
|
||||
expect(text).not.toContain('GitLab CI');
|
||||
expect(text).toContain('Gitea Actions secrets');
|
||||
});
|
||||
|
||||
test('deploy check mode does not require an SSH key file', async () => {
|
||||
const proc = Bun.spawn(['bash', 'deploy.sh', '--check'], {
|
||||
cwd: repoRoot.pathname,
|
||||
env: {
|
||||
...Bun.env,
|
||||
VPS_HOST: '203.0.113.10',
|
||||
VPS_USER: 'deploy',
|
||||
VPS_SSH_KEY: '/tmp/nonexistent-teleuploader-key',
|
||||
},
|
||||
});
|
||||
|
||||
const [stdout, stderr, exitCode] = await Promise.all([
|
||||
new Response(proc.stdout).text(),
|
||||
new Response(proc.stderr).text(),
|
||||
proc.exited,
|
||||
]);
|
||||
|
||||
expect(exitCode).toBe(0);
|
||||
expect(stdout).toContain('App name:');
|
||||
expect(stdout).toContain('VPS_HOST:');
|
||||
expect(stdout).toContain('VPS_USER:');
|
||||
expect(stdout).toContain('VPS_SSH_KEY:');
|
||||
expect(stderr).toBe('');
|
||||
});
|
||||
|
||||
const workflowFile = Bun.file(new URL('../.gitea/workflows/deploy.yml', import.meta.url));
|
||||
|
||||
test('gitea workflow deploys pushes to main through deploy script', async () => {
|
||||
const text = await workflowFile.text();
|
||||
|
||||
expect(text).toContain('name: Deploy FileDrop');
|
||||
expect(text).toContain('branches:\n - main');
|
||||
expect(text).toContain('uses: actions/checkout@v4');
|
||||
expect(text).toContain('uses: oven-sh/setup-bun@v2');
|
||||
expect(text).toContain('bun install --frozen-lockfile');
|
||||
expect(text).toContain('bun run lint');
|
||||
expect(text).toContain('bun run build');
|
||||
expect(text).toContain('secrets.VPS_HOST');
|
||||
expect(text).toContain('secrets.VPS_USER');
|
||||
expect(text).toContain('secrets.VPS_SSH_KEY');
|
||||
expect(text).toContain('secrets.PRODUCTION_ENV');
|
||||
expect(text).toContain('./deploy.sh --no-build');
|
||||
});
|
||||
Reference in New Issue
Block a user